米Facebook、拡張性に優れたリアルタイム圧縮アルゴリズム「Zstandard 1.0」を発表
米Facebookは8月31日、新しい圧縮アルゴリズム「Zstandard(zstd) 1.0」を発表、オープンソースで公開した。モダンなハードウェアに合わせた拡張性を持ち、既存の「Deflate」に代わる存在となることを目指すという。
Zstandardは高速なロスレス圧縮アルゴリズム。「Finite State Entropy」と性能優先の設計を組み合わせており、モダンなハードウェアに合わせた拡張性を特徴とする。
速度と圧縮のトレードオフを設定でき、より小さく、高速に圧縮できるという。汎用のデータ圧縮技術と比較して5~10%の効率化が図れ、データ処理速度は2倍~3倍と報告している。展開速度はzlib 1.2.8と比較して2倍以上(Zstandard 0.8)とのことだ。
拡張性は、メモリ、ブランチレス設計などさまざまな面でzlibを改良することで実現した。たとえば、zlibのチャンクサイズは32KBが上限だが、Zstandardでは上限を設けない。また、リアルタイムデータ圧縮の「Huff0」など並列実行向けのフォーマットを利用することで、単一のコアで複数のシンボルを同時に展開でき、マルチコアを使ったマルチスレッド化も導入した。
zipやgzipが採用する圧縮アルゴリズム「Deflate」は20年以上前に開発された技術だが、スピードと容量のバランスという点で優れており、「これまで圧縮の品質や速度の面でDeflateを上回るものはほとんど登場しなかった」という。Facebookはこれに挑戦するとしている。
ZstandardはBSDライセンスのCライブラリとして提供する。JavaやC#、Rust、Go、Node.js、Ruby、PHPなどの言語向けのバインディングもコミュニティから用意されている。
開発チームによると、バージョン1.0となったことで運用環境でも利用できるとしている。今後は、マルチスレッドコマンドライン圧縮などの強化を加えていくとしている。
Zstandard
http://facebook.github.io/zstd/