WebP 圧縮調査

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

はじめに

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

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

分析手法

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

テストのデータセットは PNG 画像で構成されています。これらの画像は、一般公開されている標準的なテスト画像スイートに加えて、ウェブからクロールされた PNG 画像の大規模なコレクションから取得されています。

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

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

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

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

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

画像データセット

Google は、標準的なテスト画像コレクションだけでなく、大量の画像セットも評価するために、このデータセットを選択しました。テストに使用したデータセットのリストは次のとおりです。

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

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

  3. Tecnick: Tecnick.com で入手可能なコレクションから 100 枚の画像。元のサイズの RGB カラー画像 100 枚を使用しました。

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

テスト 1: WebP と JPEG の等価性指数における 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 テクニク 画像クロール
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 テクニク 画像クロール
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 テクニク 画像クロール
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 では、JPEG と比べて 25%~ 34% の圧縮ゲインが得られ、SSIM インデックスは同等以上となることがわかります。

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

JPEG と WebP のレート歪みのトレードオフについて研究しています。特に、SSIM と JPEG および WebP のピクセル数(bpp)プロットを比較しました。ソースの PNG 画像を取得し、有効なすべての値(0 ~ 100)を使用して JPEG と WebP に圧縮します。次に、JPEG と WebP で達成された SSIM と bpp を品質値ごとにプロットします。次の図は、Google が使用している 3 つの公開データセットから選択した 3 つの画像に対する SSIM と bpp のプロットを示しています。

図 1: Lenna における SSIM と BPP の比較

ssim と bpp(Lenna)

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

simim と bpp(Kidim19)

図 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

simim と bpp(Kodak)

図 5: TECnick データセットの SSIM と BPP

Tecnick データセットの ssim と bpp

上の図を見ると、WebP では一貫して、同じ SSIM インデックスを達成するために、JPEG よりもピクセルあたりのビット数が少ないことがわかります。

おわりに

この調査では、JPEG と比較した WebP 圧縮を評価しました。同等の SSIM インデックスの場合、WebP ファイルのサイズは JPEG ファイルのサイズと比べて 25%~ 34% 小さくなります。SSIM と bpp のプロットでは、WebP で同じ SSIM インデックスのピクセルあたりのビット数が JPEG よりも一貫して少ないことがわかります。これらの結果は、WebP が JPEG よりも圧縮を大幅に改善できることを示しています。


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

2 Z. Wang、A. C. Bovik、H. R. Sheikh、および E. P.Simoncelli、「画質評価: エラー測定から構造的類似性まで」画像処理、IEEE トランザクション、第 13 巻、第 4 巻、600 ~ 612 巻、2004 年。