3 ポイント 投稿者 GN⁺ 2025-02-03 | 1件のコメント | WhatsAppで共有
  • BZip3はBZip2の後継として、より高い圧縮率と性能を提供する。
  • Order-0コンテキスト混合エントロピーコーダー、高速なBurrows-Wheeler変換コード、LZ77スタイルの文字列マッチングとPPMスタイルのコンテキストモデリングに基づくRLEおよびLempel Ziv+Predictionパスを使用している。
  • テキストやコードの圧縮に優れている。
  • Perlソースコードのベンチマーク
    • Perl5のすべてのバージョンをダウンロードして展開した後、さまざまな圧縮ツールを使って.tarファイルの圧縮テストを実施
    • BZip3はさまざまな設定で、他の圧縮ツールと比較してより優れた圧縮性能を示した。
    • 展開時間においても、BZip3は並列処理によって優れた性能を示した。
  • 免責事項
    • BZip3の使用によるデータ損失については責任を負わない。
    • BZip3の性能はコンパイラに大きく依存し、x64 Linux clang13ビルドではスレッドあたり最大17MiB/sの圧縮および23MiB/sの展開を達成できる。
    • x86、x86_64、armv6、armv7、aarch64、mips、sparcなど、さまざまなアーキテクチャでテスト済み
  • ライセンス
    • BZip3はLGPLv3でライセンスされている。
    • Burrows-Wheeler変換とLZPコードはApache 2.0ライセンス。
    • その他のコンパイル時およびランタイムのコンポーネントは、それぞれのライセンスに従う。

1件のコメント

 
GN⁺ 2025-02-03
Hacker News の意見
  • Burrows-Wheeler Transform を何度も実装したことがあるが、なぜ動作するのかという直感はいまだにつかみにくい
    • このアルゴリズムはいつも印象的
  • Perl ソースコードの圧縮ベンチマーク結果を共有
    • xzbzip2bzip3zstd の圧縮・展開時間とメモリ使用量を比較
    • メモリ使用量の差が注目に値する: 8M 対 18301M
  • Malbolge という難解なプログラミング言語でプログラムを書いた作者は本当にすごい
  • 過去に bzip でデータを再圧縮したことがあるが、後になってこのフォーマットが時代遅れになり、展開が難しくなっていたことに気づいた
    • 今では長く残りそうな非効率なフォーマットを使っている
  • BWT の改善は素晴らしい
    • 「長距離」圧縮の改善に大きな可能性があると思う
    • マルチ GB のデータセットで類似性を効率よく見つけることが必要
  • 圧縮効率を記録するヘッダーまたはテイルブロックを書いてほしいという小さな要望がある
    • bzip2 はそうではないが、gzip はそうしている
  • bzip3 がまだ大規模テキスト圧縮ベンチマークに載っていないのは奇妙
  • BWT ベースの圧縮器との比較についての質問がある
  • 入力中の長い繰り返しを先に圧縮し、リテラルブロックだけを BWT に通すというアイデアが提案されている
    • この方法は PPM や Brotli の基本的なコンテキストモデリングより劣るかもしれない
  • 高圧縮アルゴリズムは非常に専門的な分野
    • zstd や brotli を低い設定で使うことで、ネットワークやストレージ転送を減らし、速度を高められる可能性がある
    • 現代の RAM 容量により、zstd と brotli は長距離一致を活用できる