はじめに
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 画像の大規模なコレクションから取得されています。
各テストは、一連のコマンドを実行することで構成されます。一般公開のコマンドライン ツールのみを使用して、テストを他者により再現可能にする。このテストに使用したコマンドライン ツールは次のとおりです。
identify
とconvert
は、ImageMagick の一部であるコマンドライン ツールです。この分析ではバージョン 6.5.7 を使用しました。convert
を使用して、PNG 形式と PPM 形式を変換しました。identify
を使用して、画像の幅と高さの情報を抽出しました。cwebp
とdwebp
は 2011 年第 1 四半期にリリースされたlibwebp
ライブラリの一部であるコマンドライン ツールです。バージョン 0.1.2 のライブラリを使用しました。cwebp
とdwebp
を使用して、WebP 画像のエンコードとデコードを行いました。これらのツールでは、デフォルトのエンコード パラメータとデコード パラメータを使用しました。cjpeg
とdjpeg
は、libjpeg
ライブラリの一部であるコマンドライン ツールです。ライブラリのバージョン 6b を使用しました。cjpeg
とdjpeg
を使用して、JPEG 画像のエンコードとデコードを行いました。ファイルサイズを最適化するために、cjpeg
と-optimize
フラグを使用しました。その他のパラメータはすべてデフォルト値に設定します。
画像の品質は SSIM を使用して測定しました。前述のように、SSIM は一般的に、PSNR よりも優れた品質指標として受け入れられます。SSIM インデックスの計算には、C++ で一般公開されている実装を使用しました。参考までに、テストで使用した Python スクリプトをコード リポジトリからダウンロードできます。
画像データセット
Google は、標準的なテスト画像コレクションだけでなく、大量の画像セットも評価するために、このデータセットを選択しました。テストに使用したデータセットのリストは次のとおりです。
Lenna: 広く使用されている Lenna 画像(512 x 512 ピクセル)。
Kodak: Kodak のトゥルー カラー画像スイートの画像 24 枚。
Tecnick: Tecnick.com で入手可能なコレクションから 100 枚の画像。元のサイズの RGB カラー画像 100 枚を使用しました。
Image_Crawl: 多数の画像をテストするために、Google 画像検索のウェブクロール データベースから PNG 画像のサンプルをランダムに収集しました。クロールされた PNG 画像のほとんどは、アイコン、グラフィック、グラフ、スキャン ドキュメントなどです。ただし、標準的なテスト コレクションの画像のほとんどは、コンピュータが生成した画像ではなく写真のようなものです。このデータセットの性質を標準のテストスイートと本質的に似ているものにするために、Google はこれらの PNG 画像に対して顔検出アルゴリズムを実行し、この検出テストに合格した画像(約 11,000 個)のみを検証しました。
テスト 1: WebP と JPEG の等価性指数における JPEG の比較
このテストでは、同等の SSIM 値で JPEG 画像と WebP 画像を生成し、ファイルサイズの比率を測定します。テストの手順は次のとおりです。
固定の品質パラメータ Q を使用してソース PNG 画像を JPEG に圧縮し、ソース PNG 画像と圧縮 JPEG 画像の間の SSIM を記録します。
先ほど記録された 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 の比較
図 2: Kodak データセットの kodim19.png の SSIM と BPP
図 3: Tecnick データセットの RGB_OR_1200x1200_061.png に対する SSIM と BPP
さらに、Kodak と Tecnick のデータセットに対する SSIM と bpp のプロットの平均的な動作についても学習しました。平均動作をプロットするために、WebP と JPEG を使用して、データセット内のすべての画像を 100 種類の画質で圧縮します。次に、各品質値について SSIM と bpp の平均をプロットします。画像のクロール データセットは、このデータ集計に適さない異種の画像で構成されています。次のプロットは、Kodak データセットと Tecnick データセットに対する SSIM と bpp の平均的な動作を示しています。
図 4: Kodak データセットの SSIM と BPP
図 5: 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 年。