WebPがTechcrunchに取り上げられて盛り上がっているようなので、WebPとは何かについて書いてみることにします。元記事はこちら:Googleの画像フォーマットWebPはJPEGよりも軽くて鮮明

そもそも、今、一番使われている静止画像圧縮であるJPEGというのは、1992年に標準化された技術です。この進歩の早いコンピュータ業界で20年近く前の技術がまだ現役で使われているわけですね。なぜ最新の技術に置き換わっていかなかったかというと、

(1)PCのネット回線の帯域が拡大して静止画像はあまり圧縮できなくても困らなくなった
(2)高画質が要求されるカメラなどのプロフェッショナル用途はRAW画像など無圧縮に行ってしまった
(3)JPEG2000が普及しなかったことを受けて積極的に新技術を導入していこうという流れが無くなってしまった

という三点が大きいですね。そんな感じで最近は、静止画像圧縮単独での研究というのはあまりなされなくなりました。

対して、動画の世界では、TVのフルHD化などに見られるコンテンツの高解像度化に伴い、ディスクメディアや放送回線の容量が足りなくなってきたため、より高圧縮の技術が求められ続けてきました。動画は、過去にデコードした画像を参照することで圧縮率を高めていますが、初期状態では参照できる画像が無いのと、シークができないといけないということで、デコードした画像を参照しないモードもあります。専門的には、過去の画像を参照しないフレームをIピクチャ、過去にデコードした画像を参照するフレームをPピクチャと呼びます。そして、動画像圧縮の世界では、JPEG相当の技術であるMPEG1から、MPEG2、H.264という流れで、IピクチャおよびPピクチャの圧縮技術は順調に進化してきました。そうです、このIピクチャというのは過去のフレームを全く参照しない、つまり静止画像圧縮と全く同じなんですね。

そしてここに来て、モバイル端末の普及によって低速な回線を使わざるを得ない環境ができ、その上、スマートフォンの登場によって画面の高解像度化が進み、静止画像であってもできるだけ高い圧縮率が求められるようになってきました。

そして、今、起こっているのは、動画像圧縮を静止画像圧縮として使おうという流れです。具体的に、WebPは、WebMのIピクチャそのものですし、ACCESSはH.264のIピクチャをミドルウェア化してビジネスをしようとしているわけです。JPEGから比べればH.264のIピクチャは2倍〜3倍の圧縮率を持ちます。これを使うことで一気に圧縮率が改善するわけです。

具体的に、JPEGと、WebPやH.264がどう違うのかというと、まず、JPEGは8x8ピクセルブロック単位で独立してDCTを行います。つまり、大きな画像があったとしても、圧縮は8x8ブロック単位で独立してやってしまって、8x8ブロック間の相関は全く使わないわけです。こうすると、どうしてもブロック間にブロックノイズが出ます。そこで、WebPやH.264では、イントラ予測を使ってこの問題を回避しています。つまり、8x8ブロックをそのままDCTするのではなくて、周辺の画像から予測画像を作って、元画像と予測画像との差分をDCTすることで、圧縮率を向上させています。例えば、JPEGで超高圧縮にして、特定のブロックの情報量を0にした場合、そのブロックの画素値は真っ黒になりますが、WebPやH.264では差分値が0となっても予測画像は残るので、JPEGのように全く絵として成立していない状態にはなりません。また、エントロピー符号化においても、JPEGのような単純な二次元ハフマンではなく、従来のデコードシンボルに応じて動的にテーブルを切り替えていくコンテキストベースのバイナリ算術符号化になっているなど、総合的に圧縮率が向上しています。

そういう意味では、WebPは新に画期的なものではなく、動画像圧縮で培われたIピクチャの技術を、静止画像圧縮のフォーマットとして転用したものなんですね。

ちなみに、イントラ予測では左と上と右上の処理済みブロックを参照しますが、JPEG2000になると、階層化によって右と下も予測に使えます。これによってより綺麗に予測できるのですが、その分、使用メモリ量が増大するのと、Pピクチャにおけるブロック単位の動き補償との相性が悪いせいで、動画像圧縮の世界ではウェーブレット変換はあまりメジャーにはなっていません。

WebPは、もし、Androidにネイティブ搭載されて、iOS用のライブラリとかも提供されるようになれば、それなりに普及しそうな気がしています。ただ、iOSのSafariには採用されなそうな気がしていて、そうすると検索に誘導するというGoogleのビジネス的にはメリットが薄くなるため、Googleがどれぐらい投資し続けるかという判断は難しそうな気はしています。また、やはりDCTベースなのでアニメ画像とかとの相性はそこまで高くないというのも注意しておく必要がありますね。何にしろ、ついに静止画像圧縮もJPEGから次のステップに入っていくのかなと思うと楽しいです。