6

データを保存するプロジェクトを書いているので、圧縮する必要があります。zlib を試しましたが、プロジェクトのボトルネックです。だから多分もっと速い解決策があります。高い圧縮率は必要ありませんが、非常に高速な圧縮を探しています。本当に無料で、独自のソフトウェアで使用できる zlib 以外のデータ圧縮ライブラリはありますか (プロジェクト、私が取り組んでいるプロジェクトは GPL ベースではありません)。私のプロジェクトは C++ 上にあり、テキストの char* 配列を圧縮する必要があります。

4

11 に答える 11

6

非常に高速な圧縮アルゴリズムはLZOです。サイトのベンチマークは、解凍の速度がに匹敵することを示していmemcpy()ます。

LZOの無料バージョンはGPLライセンスですが、LZOProfessionalには商用バージョンのライブラリもあります。また、ドキュメントから:

GNU General Public Licenseを受け入れる意思のない商用およびその他のアプリケーションの特別ライセンスは、作成者に連絡することで入手できます。

于 2009-08-31T23:49:47.873 に答える
5

7zipはパブリックドメインだと思います。LZMA圧縮。

7-Zip

于 2009-08-31T23:53:35.463 に答える
3

迅速であるが必ずしもこれまでで最高の圧縮ではないものが必要なため、RLE(ランレングスエンコーディング)圧縮を行うライブラリを検討することをお勧めします。1つの実装はlibrleであり、これはBSDライセンスの下にあり、プロプライエタリ使用はかなり許可されています。

于 2009-08-31T23:50:31.133 に答える
3

ここにいくつかあります:

FastLZ -- GPL ライセンスで使用したい場合を除き、高速で軽量な MIT ライセンス

LZJB -- これも高速で非常に軽量で、Sun の ZFS のデフォルトの圧縮アルゴリズムとして使用されます

于 2009-11-15T05:16:43.277 に答える
3

別の回答LZOでは、デフォルトの「より高速な(解凍)圧縮が必要」ソリューションの一種である について既に言及しています。

私が見つけた別のものはliblzfです。LZO速度と圧縮率の点でかなり近いです。LZOGPLライセンスを持っていますliblzfが、BSDライセンスを持っています(これは私見ですが、利点です)。

于 2009-09-01T03:38:33.097 に答える
3

LZO ライセンスの問題により、BSD/MIT ライセンスであり、LZO に非常に似ており (統合が容易なため)、ローエンド ハードウェア (Pentium2 ではなく安価な 32 ビット MCU を考えてください) での実行に適している、このスレッドの提案を評価することにしました。 .

LZ4、LZF、FastLZ をテストし、結果を LZO と比較しました。グラフィックデータを圧縮しました。正確な結果を投稿することはできませんが、サイズ (LZF-LZ4-LZO の場合は 5-2-2 勝、マージン小さかった)。

于 2012-06-12T08:06:33.847 に答える
3

私は 2 番目の lz4です。BSD ライセンスを持っています。

于 2013-05-14T05:09:54.807 に答える
3

Google は、C++ で書かれた BSD ライセンスの圧縮ライブラリである "Snappy" をリリースしました (C のバインディングが含まれています)。

http://code.google.com/p/snappy/

ソースの README によると:

私たちのテストでは、Snappy は通常、同じクラスのアルゴリズム (LZO、LZF、FastLZ、QuickLZ など) よりも高速であり、同等の圧縮率を達成しています。

于 2011-09-22T08:42:15.083 に答える
2

Intel Integrated Performance Primitivesには、さまざまな圧縮を実装するサンプルがあります。

  • bzip2 互換ライブラリー ipp_bzip2 サンプルは、インテル IPP データ圧縮ドメイン関数を使用して bzip2/libbzip2 を実装する方法を示しています (ロスレスのブロックソート・データ圧縮および bzip のスレッド最適化の新しい改善のためのプログラムおよびライブラリー)。
  • GZIP 互換ライブラリー IPP_GZIP サンプルは、インテル® IPP データ圧縮ドメイン API を使用して効果的な無損失データ圧縮ソリューションを実装する方法を示しています。さらに、このサンプルでは、​​OpenMP やその他の方法を使用してアプリケーションを並列化し、マルチコア環境で高度なメリットを得る方法を示します。
  • zlib 互換ライブラリー (新規!) このコードサンプルは、最適化された LZ77 およびインテル® IPP のハフマンコーディング関数を使用して、zlib 互換のデータ圧縮ライブラリーを構築する方法を示しています。
  • 一般的なデータ圧縮の例 インテル IPP データ圧縮ドメインが提供する関数の使用方法を示します。ハフマン エンコーディング/デコーディング、RLE エンコーディング/デコーディング、MoveToFront (MTF)、Burrows-Wheeler Transformations (BWT)、General Interval Transform (GIT)、および Lempel-Ziv-Storer-Szymanski (LZSS) 関数が含まれます。

IPP は無料ではありませんが、非常に高速です。Windows と Linux をサポートしています。

于 2009-09-01T04:38:04.490 に答える
2

Haruhiko OkumuraのLZSS 実装を使用しました。ライセンスは彼のサイトからは明らかではありませんが、一部のバージョンは「このプログラムを自由に使用、配布、変更する」という行が含まれてリリースされており、コードは商用ベンダーによって自由に使用されています。

もう 1 つのオプションは、LZFを実装する lzfx ライブラリです。BSD ライセンスの下でリリースされています。

于 2010-09-22T11:42:09.990 に答える
1

はい、bzip2にはBSDライセンスがあります。

于 2009-08-31T23:50:42.430 に答える