Zopfli

データ圧縮ソフトウェア From Wikipedia, the free encyclopedia

Zopfliは、Deflategzipzlib形式でのデータ圧縮を行うソフトウェアである[2]。他のDeflate・zlibの実装よりも高い圧縮率となるが、圧縮時により多くの時間が必要となる[3]。2013年2月にGoogleよってライブラリとしてApache 2.0の下で自由ソフトウェアとしてリリースされた[4]。"Zöpfli"という名前は甘くない種類のヘーフェツォプフ英語版であるツオップ英語版に、スイスドイツ語指小辞である"li"を付けたものである。

初版 2013年2月 (13年前) (2013-02)
最新版
1.0.3 / 2019年11月27日 (6年前) (2019-11-27)[1]
プログラミング
言語
C言語
概要 初版, 最新版 ...
Zopfli
初版 2013年2月 (13年前) (2013-02)
最新版
1.0.3 / 2019年11月27日 (6年前) (2019-11-27)[1]
リポジトリ ウィキデータを編集
プログラミング
言語
C言語
対応OS クロスプラットフォーム
種別 データ圧縮
ライセンス Apache 2.0
公式サイト github.com/google/zopfli ウィキデータを編集
テンプレートを表示
閉じる

特性と用例

Zopfliは生のDeflateデータストリームか、gzipかzlib形式でカプセルされたDeflateデータを出力することができる。デフォルトでは15回処理が繰り返されるが、これを変更することで処理時間と圧縮率のどちらを優先するかを選ぶことができる。

デフォルトの設定ではZopfliの出力はzlibの最大圧縮のものより一般的に3 - 8%小さくなるが、圧縮処理には80倍の時間が必要となる[3][4]。伸長速度はzlibの出力と殆ど同じである。

Zopfliの圧縮速度は非常に遅いのでオンザフライ圧縮にはあまり適しておらず、一般的に静的なコンテンツを1回だけ圧縮するのに使用されている[5][6]。これは一般的にDeflateベースのHTTP圧縮英語版で配信されるウェブコンテンツか、PNGWOFFなどのDeflateベースのファイルフォーマットのウェブコンテンツに当てはまる。別の使用例はAPKJARなどのZIPベースのソフトウェアパッケージを使用したソフトウェアのアップデートやダウンロードをする場合である。これは特にモバイル通信で当てはまる。

技術

Zopfliの高い圧縮率はより徹底して圧縮処理を行うことによって達成されている。この方法はエントロピーモデルの反復と最短経路アルゴリズムを繰り返し使用し、全ての可能なDeflate表現のグラフからビットコストの低いパスを見つけるものである[7]

実装

Googleによるリファレンス実装C言語で書かれており、ライブラリとしてリリースされた。これはApache 2.0の下で自由ソフトウェアとして配布されている[2]

ラッパーはPHP用に作成された。

C#によるZopfliの実装は"CompressSharper"ライブラリの"ZopfliDeflater.cs"で見られる[8]

歴史

ZopfliはJyrki Alakuijalaによるアルゴリズムに基づいている。Zopfliのリファレンス実装はGoogleの従業員であるJyrki AlakuijalaとLode Vandevenneによって書かれた。2013年2月に初めて公開され、4月25日にバージョン1.0.0がリリースされた[9]。PNG圧縮のためのZopfliの幾つかの改良がGitHubに登場した後、ZopfliPNGは5月にリファレンス実装にコミットされた[10]

PNGの最適化

PNGはDeflateを使用するので、Zopfliを使用して圧縮することができる。Zopfliの作者によるZopfliPNGというPNG最適化ツールがある。ZopfliアルゴリズムはAdvanceCOMP英語版advpngような他のPNG最適化ツールにも統合されている[11]

脚注

関連項目

外部リンク

Related Articles

Wikiwand AI