強火で進め

このブログではプログラム関連の記事を中心に書いてます。

Pixelmatorで変換したWebPとJPEGを比較してみた

WebPは簡単に説明するとJPEGよりファイルサイズの小さい静止画フォーマットを作り、ネット上を流れるトラフィックの削減とブラウザでの画像表示の高速化を目的にGoogleが動画フォーマットWebMを元に作成した画像フォーマットです。ちなみに「うぇぶぴー」では無く「うぇっぴー」と読むみたいです。

JPEGと同様、ロスレスやアルファチャンネルには未対応のフォーマットと成っています。

詳しくはこちらを参照下さい。

WebP - Wikipedia
http://ja.wikipedia.org/wiki/WebP

そのWebPがChrome 9でサポートされたとの話を聞いたので以前からやろうやろうと思いながらも先送りにしていたWebPとJPEGの画質とファイルサイズ比較をしてみました。

デジカメで撮影した画像で比較

デジカメで撮影した画像を一度、Pixelmator(画像編集ソフトです)でPNG形式のファイルに変換後、JPEGとWebP形式のファイルとして書き出しました。書き出しの「画質」はJPEGの時のデフォルト値(だったはず(^_^;))の85%と100%で出力してみました。

元画像はこちら。

評価は元の画像と変換後の画像のRGB値の差で行いました。例えば元の画像のピクセルのRGBの値が(100, 100, 100)だったときに変換後のピクセルのRGB値が(110, 95, 100)だった場合は差の値は15として計算しています。

この様にして検証し、1ピクセルで発生した差の最大値、全体での合計値、平均値( ピクセルの差の合計/(画像の横サイズx画像の縦サイズ) )などの情報をまとめてみました。

なお、自分の作った検証プログラムはWebPのファイル読み込みには対応していないのでWebPに変えた後、PNG形式に変更して比較を行いました。

結果はこちら。

【デジカメで撮影した画像(一部を切り取り、320x240にしたもの)】

フォーマット(画質設定) 最大値 合計値 平均値 ファイルサイズ
オリジナルのPNG 193KB(192223byte)
WebP(100%) 116 876946 11.418568 60KB(61736byte)
JPEG(100%) 8 58390 0.760286 170KB(174258byte)
WebP(85%) 123 1221516 15.905156 35KB(35468byte)
JPEG(85%) 116 910206 11.851641 67KB(68630byte)
結果の分析

確かにWebPはJPEGに比べるとサイズは小さく成っている様です。しかし、画質の面で見てみるとWebP(100%)の時の画質がJPEG(85%)の時と同等という事が読み取れます。この2つで比較するとサイズは60KBと67KB。ちょっと期待していたほどは小さくならないみたいです。

まぁ、実はこのパターンでは始めからWebPの方が分が悪いだろうなぁ?とは思っていました。自分は画像フォーマットについてそんなに詳しくは無いですがそれでも、元々はJPEGだった画像なので既にJPEGに有利な並びに成っている画像を再度、JPEGにするとなるとJPEGが有利だろうと思っていました。

プログラムで生成した画像(グラデーション)で比較

と言う事で次はプログラムに生成させたグラデーション画像で比較して見ることしました。

元画像はこちら。

【グラデーションの画像(640x480)】

フォーマット(画質設定) 最大値 合計値 平均値 ファイルサイズ
オリジナルのPNG 6.0KB(6161byte)
WebP(100%) 8 799785 2.603467 3.8KB(3879byte)
JPEG(100%) 6 603520 1.964583 28KB(28427byte)
WebP(85%) 13 1143816 3.723359 1.7KB(1747byte)
JPEG(85%) 7 631680 2.056250 28KB(28577byte)
結果の分析

WebPのサイズがかなり小さいです。画質の面ではWebP(100%)がJPEG(85%)より悪い様です。

後、そもそもJPEGはオリジナルのPNGよりファイルサイズで負けています。これはJPEGにする意味が無いですね。

こういうタイプの画像はJPEGは苦手な様です。まぁ、写真の画像とは程遠い画像なのでちょっと選択ミスだった様です。

プログラムで生成した画像(スライドの画像)

よく考えたらあそこまで綺麗なグラデーションの画像ってのもそうそう使うものでは無いなと思い、もう少し複雑な内容の画像でもテストしてみました。

元画像は以前、WebGL勉強会で使ったスライドの1枚。これであれば「テキスト+図」ですし、結構実際に使用するシチュエーションに近い様な気がします。

画像は「keynoteの画像をPDFで出力→その1枚をPNGで保存→WebPとJPEGに変換」という形で作成しました。

元画像はこちら。

【スライドの画像(320x240)】

フォーマット(画質設定) 最大値 合計値 平均値 ファイルサイズ
オリジナルのPNG 72KB(73846byte)
WebP(100%) 110 258137 3.361159 12KB(12560byte)
JPEG(100%) 7 77586 1.010234 58KB(58932byte)
WebP(85%) 138 373672 4.865521 6.4KB(6589byte)
JPEG(85%) 128 277334 3.611120 21KB(21461byte)

WebP(85%)、確かにサイズはJPEGに比べサイズはかなり小さいのですがJPEGより元画像からの変化が大きいですね。
そこでJPEG(85%)の平均値を下回るまでWebPの画質を上げてみました。

フォーマット(画質設定) 最大値 合計値 平均値 ファイルサイズ
WebP(90%) 116 327420 4.263281 7.7KB(7866byte)
WebP(95%) 113 282644 3.680260 9.8KB(10072byte)
WebP(96%) 113 282644 3.680260 9.8KB(10072byte)
WebP(97%) 112 276074 3.594714 10KB(10571byteKB)

95%と96%は何故か結果が変わりませんでした。

平均値がJPEG(85%)を下回ったのは97%にした時でした。この時点で比較するとJPEGのファイルサイズに比べ、WebPは約半分になっています。

見た目での比較

「花」

黄色の部分が変化しているのが目立ちます。

以下に元画像、WebP(85%)、JPEG(85%)の順で画像を貼っておきます。WebPについては一度、WebPに出力したものを再度、PNGに変換しています。以降の2種類の比較でも同じ設定で貼っておきます。

並んだ状態では分り辛いと思いますので詳しく見比べたい方は画像ファイルをDLして交互に切り替えて比較して見て下さい。



「グラデーション」

他のものに比べるとそんなに変化している印象は無いですがそれでも元画像とWebPの画像を交互に切り替えて比較するとWebPの画像だと帯状な描画に成っている部分が増えていました。



「スライドの画像」

これは目立って変化が発生していました。赤い部分と指の肌色の変化が大きいです。



まとめ

JPEGに比べると確かにファイルサイズは小さく成るようです。しかし、スライドの画像などの様に元画像から大きく変化してしまう画像も有るみたいです。

しかし、グラデーションの画像では画質面、ファイルサイズともに良好な結果だった様に思えます。用途によっては適したシチュエーションが有るかもしれません。

今回の比較で一番気になったのは実は最初のデジカメで撮影した画像の比較です。WebP(100%)とJPEG(85%)のサイズが60KBと67KBとなったヤツです。

確かにこれは最初の解析でも言った様にJPEGに有利な条件では有ります。しかし、デジカメで撮影した画像をWebPに変換して使うというのはJPEGの置き換えを意図するフォーマットで有るWebPではかなり使われるであろうと思われるシチュエーションでも有ります。

そのシチュエーションでこの位しかファイルサイズが削減されない様だとまだまだ閲覧可能なユーザが少ない状態で採用するのは難しいのでは無いかという印象を受けました。
※もちろん、今回比較したのは小さい画像だったのでかなり大きい画像を扱う様なサイトだとまた話は変わってくると思います。

今回はこの様な結果となってしまいましたが注目しているプロジェクトでは有るのでWebPに大きなバージョンアップがされた時などにまた比較検討してみようと思います。


※今回使用した画像ファイルはこちらにアップしておきました。

WebPの画像サンプル
http://tsuyobi.heteml.jp/html/webp/

関連サイト

WebP Home
http://code.google.com/intl/ja/speed/webp/

Chrome 9登場、画像フォーマットWebP初対応 | エンタープライズ | マイコミジャーナル
http://journal.mycom.co.jp/news/2011/02/04/080/index.html

グーグル、画像サイズの小さな「WebP」フォーマットを提唱 : Googleウォッチ - Computerworld.jp
http://www.computerworld.jp/topics/google/189371.html