Google は、Web ダウンロードを高速化するために使用できる Zopfli と呼ばれる新しい汎用データ圧縮ライブラリをオープンソース化しています。
スイスのパンのレシピにちなんで名付けられた Zopfli 圧縮アルゴリズムは、従来の技術に比べて出力サイズが小さい Deflate 圧縮アルゴリズムの実装であると、Google の圧縮チームのソフトウェア エンジニアである Lode Vandevenne 氏が先週、Google オープンソース ブログに書いています。

「圧縮サイズが小さくなることで、スペースの利用効率が向上し、データ転送速度が速くなり、ウェブページの読み込み遅延が短縮されます。さらに、圧縮サイズが小さくなることで、モバイルでの使用においても、データ転送料金の削減やバッテリー消費の低減など、さらなるメリットがあります」とヴァンデヴェンヌ氏は記している。
より徹底的な圧縮技術を用いることでデータ密度は向上しますが、圧縮速度は大幅に低下します。ただし、これは解凍速度には影響しないとヴァンデン氏は記しています。
Zopfliは圧縮専用のライブラリであり、既存のソフトウェアを使ってデータを解凍できると彼は述べた。ZopfliはZip、PNG、gzip、HTTPリクエストなどに対応しているとヴァンデヴェンヌ氏は付け加えた。
特に動画ダウンロードの急増に伴い、Googleをはじめとするサービスは圧縮率向上の研究を進めています。Googleは2009年にデータ圧縮技術企業のOn2を買収しました。ブラウザメーカーのOperaも圧縮機能の改良に取り組んでいます。
リソースは必要だが効果的
ヴァンデヴェンヌ氏によると、Zopfliの出力は、Deflate圧縮アルゴリズムに基づく別の圧縮ライブラリであるzlibと比較して、一般的に3~8%小さくなります。「ZopfliはDeflate互換圧縮において最先端の技術であると考えています」とヴァンデヴェンヌ氏は述べています。
GoogleはZopfliのGoogle Codeページで、「この圧縮プログラムは時間がかかります(約100倍遅い)が、zlibよりも約5%、そして私たちがこれまでに発見した他のzlib互換の圧縮プログラムよりも圧縮率が高い」と述べています。このコードはApache License 2.0に基づいて利用可能です。
しかし、新しい圧縮ライブラリは、最高品質で実行するとzlibの2~3倍のCPU時間を必要とします。そのため、Webの静的コンテンツなど、一度圧縮されたデータがネットワーク経由で何度も送信されるアプリケーションに最適だとVandevenne氏は述べています。
ヴァンデヴェンヌ氏と、同じくこのプロジェクトに携わったGoogleのソフトウェアエンジニアである同僚のユルキ・アラクイジャラ氏は、研究論文の中で「静的コンテンツや、CPU時間の増加よりもデータ転送やストレージのコストの方が大きいコンテンツの圧縮には」Zopfliを使用することを推奨している。
「Zopfliをオープンソース化することで、ウェブマスターが頻繁にアクセスされる静的コンテンツのサイズをより適切に最適化できるようになり、私たち全員にとってインターネットが少し速くなることを願っています」とヴァンデヴェンヌ氏は語った。