WebP 圧縮の研究

はじめに

Google では、libwebp でリリースした新しいエンコーダに基づいて、WebP と JPEG の画像圧縮の比較評価を行います。目標は、一般公開されているツールを使用して簡単に再現可能な一連のテストを実行し、WebP と JPEG で達成された画像圧縮を比較することです。

以前の WebP の比較研究は、多数の画像の評価に重点を置き、ウェブからクロールされた JPEG ソースで実施されました。JPEG は非可逆圧縮形式で、ソースに圧縮のアーティファクトをもたらします。さらに、当初品質指標としてピーク信号対雑音比(PSNR)を使用していました。PSNR には、画像の品質指標として使用する場合の欠点があります。Google はコミュニティからのフィードバックに基づいて、いくつかの標準的なテストスイートで利用可能な画像を含む PNG 画像に関するテストを実施しています。この調査では、品質指標として構造類似度(SSIM)を使用します。SSIM は画質の指標として優れています

分析手法

ここでは 2 種類の評価について説明します。最初のケースでは、同じ品質レベルの JPEG で WebP によって達成される追加圧縮を調べます。具体的には、JPEG 画像と同じ品質(SSIM インデックスによる)の WebP 画像を生成し、WebP 画像と JPEG 画像のファイルサイズを比較します。2 番目のケースでは、WebP と JPEG の SSIM とピクセルあたりのビット数(bpp)のプロットを分析します。これらのプロットは、WebP と JPEG のレートと歪みのトレードオフを示しています。

実験のデータセットは PNG 画像で構成されています。これらの画像は、一般公開されている標準のテスト画像スイートと、ウェブからクロールされた PNG 画像の大規模なコレクションから入手したものです。

各テストは、一連のコマンドの実行で構成されます。公開されているコマンドライン ツールのみを使用して、他者がテストを合理的に再現可能な状態に維持します。このテストで使用したコマンドライン ツールは次のとおりです。

  • identifyconvert は、ImageMagick の一部であるコマンドライン ツールです。この分析にはバージョン 6.5.7 を使用しました。PNG 形式と PPM 形式を変換するために、convert を使用しました。identify を使用して、画像の幅と高さの情報を抽出します。

  • cwebpdwebp は、2011 年第 1 四半期にリリースした libwebp ライブラリの一部であるコマンドライン ツールです。ここでは、バージョン 0.1.2 のライブラリを使用しました。cwebpdwebp を使用して、WebP 画像のエンコードとデコードを行いました。これらのツールのデフォルトのエンコード パラメータとデコード パラメータを使用しています。

  • cjpegdjpeg は、libjpeg ライブラリの一部であるコマンドライン ツールです。ここでは、バージョン 6b のライブラリを使用しました。cjpegdjpeg を使用して、JPEG 画像のエンコードとデコードを行いました。cjpeg-optimize フラグを使用し、ファイルサイズを最適化しました。その他のパラメータはすべてデフォルト値に設定します。

画像の品質は SSIM で測定しました。前述のように、SSIM は PSNR よりも品質指標として一般的に受け入れられています。SSIM インデックス計算には、C++ で一般公開されている実装を使用しました。読者は、参照用に実験で使用した Python スクリプトをコード リポジトリからダウンロードできます。

画像データセット

データセットは、標準的なテスト画像コレクションと多数の画像セットを評価するために選択したものです。テストで使用されるデータセットは次のとおりです。

  1. Lenna: 広く使用されている Lenna の画像(512 x 512 ピクセル)。

  2. Kodak: Kodak のトゥルーカラー画像スイートの 24 枚の画像。

  3. Tecnick: Tecnick.com で入手できるコレクションから 100 枚の画像。オリジナル サイズの RGB カラー画像 100 枚を使用しました。

  4. Image_crawl: 大量の画像をテストするため、Google は Google 画像検索のウェブクロール データベースから PNG 画像のサンプルをランダムに収集しました。クロールされる PNG 画像のほとんどは、アイコン、グラフィック、グラフ、スキャンされたドキュメントなどです。ただし、標準テスト コレクション内のほとんどの画像は、コンピュータで生成された画像というよりも写真に似ています。このデータセットを標準的なテストスイートに類似させるため、これらの PNG 画像に対して顔検出アルゴリズムを実行し、今回のテストではこの検出テストに合格した画像(約 11,000 枚)のみを考慮しました。

テスト 1: Equal SSIM Index での WebP と JPEG の比較

このテストでは、同等の SSIM 値で JPEG と WebP の画像を生成し、ファイルサイズの比率を測定しました。テストの手順は次のとおりです。

  1. 固定品質パラメータ Q を使用してソース PNG 画像を JPEG に圧縮し、ソース PNG 画像と圧縮 JPEG 画像の間の SSIM を記録します。

  2. 上記で記録された SSIM をできるだけ近く達成する品質パラメータを使用して、同じソース画像を WebP に圧縮します。

データセット内のすべての画像に対して上記の 2 つのステップを実行し、JPEG 画像と WebP 画像の平均ファイルサイズと SSIM を測定しました。

次の表は、JPEG 品質パラメータ Q を 3 種類の値(50、75、95)で行ったテストの結果を示しています。品質パラメータ 50 と 95 は、それぞれ低ビットレートと高ビットレートでの画像圧縮を表します。また、JPEG 品質パラメータ 75 も追加しています。これは、一般に、JPEG 画像で推奨される品質レベルです。

表 1: JPEG Q=50 に対応する同じ SSIM インデックスに対する WebP と JPEG の平均ファイルサイズ

レナ Kodak テクニク Image_crawl
WebP: 平均ファイルサイズ
(平均 SSIM)
17.4 KB
(0.841)
31.0 KB
(0.898)
92.4 KB
(0.917)
6.5 KB
(0.901)
JPEG: 平均ファイルサイズ
(平均 SSIM)
23.5 KB
(0.840)
42.7 KB
(0.897)
124.6 KB
(0.916)
9.9 KB
(0.899)
WebP と JPEG のファイルサイズ比 0.74 0.72 0.74 0.66

表 2: JPEG Q=75 に対応する同じ SSIM インデックスに対する WebP と JPEG の平均ファイルサイズ

レナ Kodak テクニク Image_crawl
WebP: 平均ファイルサイズ
(平均 SSIM)
26.7 KB
(0.864)
46.5 KB
(0.932)
139.0 KB
(0.939)
9.9 KB
(0.930)
JPEG: 平均ファイルサイズ
(平均 SSIM)
37.0 KB
(0.863)
66.0 KB
(0.931)
191.0 KB
(0.938)
14.4 KB
(0.929)
WebP と JPEG のファイルサイズ比 0.72 0.70 0.73 0.69

表 3: JPEG Q=95 に対応する同じ SSIM インデックスに対する WebP と JPEG の平均ファイルサイズ

レナ Kodak テクニク Image_crawl
WebP: 平均ファイルサイズ
(平均 SSIM)
74.3 KB
(0.910)
118.0 KB
(0.978)
356.0 KB
(0.970)
23.4 KB
(0.969)
JPEG: 平均ファイルサイズ
(平均 SSIM)
104 KB
(0.907)
162 KB
(0.976)
492 KB
(0.970)
31.3 KB
(0.968)
WebP と JPEG のファイルサイズ比 0.71 0.73 0.72 0.75

上の表から、WebP では SSIM インデックスが JPEG と比較して 25%~ 34% 圧縮増幅されていることがわかります。

テスト 2: WebP と JPEG の SSIM と BPP のプロット

Google では、JPEG と WebP のレート歪みのトレードオフを研究しています。特に、JPEG と WebP の SSIM とピクセルあたりのビット数(bpp)のプロットを調べます。元の PNG 画像を取得し、使用可能なすべての品質値(0 ~ 100)を使用して、JPEG と WebP に圧縮します。次に、品質値ごとに、JPEG と WebP で達成された SSIM と bpp をプロットします。次の図は、使用した 3 つの一般公開データセットから選択した 3 つの画像についての SSIM と bpp のプロットを示しています。

図 1: Lenna の SSIM と BPP の比較

Lenna のシミュレーションと bpp

図 2: Kodak データセットの kodim19.png の SSIM と BPP の比較

Kodim19 の SIM と bpp

図 3: Tecnick データセットの RGB_OR_1200x1200_061.png の SSIM と BPP の比較

RGB_OR_1200x1200 の ssim と bpp

さらに、Kodak と Tecnick のデータセットについて、SSIM と bpp のプロットの平均動作を調べました。平均的な動作をプロットするために、WebP と JPEG を使用して 100 の異なる品質値でデータセット内のすべての画像を圧縮します。次に、品質値ごとに SSIM と bpp の平均をプロットします。画像のクロール データセットは、このデータ集約に適さない異種画像で構成されています。次のプロットは、Kodak データセットと Tecnick データセットそれぞれについて、SSIM と bpp の平均動作を示しています。

図 4: Kodak データセットの SSIM と BPP の比較

Kodak のシミュレーションと bpp

図 5: Tecnick データセットの SSIM と BPP の比較

Tecnick データセットのシミュレーションと bpp

全体として、上記のグラフから、WebP では同じ SSIM インデックスを実現するために JPEG よりも常に 1 ピクセルあたりのビット数が少ないことがわかります。

まとめ

この研究では、JPEG と比較して WebP 圧縮を評価しました。平均 WebP ファイルサイズは、同等の SSIM インデックスでの JPEG ファイルサイズと比べて 25%~ 34% 小さくなっていました。SSIM と bpp のプロットから、同じ SSIM インデックスについて、WebP では JPEG よりも 1 ピクセルあたりのビット数が一貫して少ないことがわかりました。この結果は、WebP の方が JPEG よりも圧縮率が大幅に向上していることを示しています。


1 Huynh-Thu, Q.、Ghanbari、M. (2008 年)。「画像や動画の品質評価における PSNR の有効性の範囲」Electronics Letters 44: 800-801.doi:10.1049/el:20080522。

2 Z. Wang、A. C. Bovik、H. R. Sheikh、E. P.Simoncelli 著「Image Quality Assessment: From error measurement to structural 類似 ity」、画像処理、IEEE Transactions、Volume 13、Issue 4、600 ~ 612、2004 年