ファイルサーバ用にMac miniを購入しました。昨晩届いたばかりでメモリは2GBのまま、しばらくSafariを使っているとページングが始まるというやるせなさ……とりあえず8GBに増設してみます。

さて、今回は「WebP」について。Googleが開発を進める高圧縮率の画像フォーマットで、現在Chromeなど一部のWebブラウザにしかサポートされていないが、「Webの高速化」という高邁な理想のもと、JPEGやGIFなど既存の画像フォーマットを代替すべく改良が進められている。そのWebPの最新状況と、OS Xへの導入方法を解説してみよう。

What's WebP?

WebP(ウェッピー)は、高圧縮率が特徴の画像フォーマット。2009年にGoogleが買収したOn2社のビデオコーデック「VP8」の技術を利用し、その高圧縮率を静止画でも実現すべくオープンソースでの開発がスタートした。その圧縮効率は高く、同画質のJPEGと比較してファイルサイズは10%から80%ほどだ。

WebPの開発動機は、「Webのトラフィックにおける画像データの比率を低減する」ことにある。Googleの説明によれば、画像ファイルはWebトラフィックの約65%を占めており、ネットワーク帯域を圧迫しユーザビリティを低下させているという。それらをより効率的な(圧縮率の高い)フォーマットに置き換えることができれば、トラフィックを減らせるというわけだ。

これはともすると、Googleが世界のWeb利用者に向けた壮大な慈善事業のようにも受け取れるが、検索などのサービスを収益源とする同社にとって、Webの高速化/帯域確保は検索回数の増加など「Webサービスの回転率アップ」につながり、結果として収益増に貢献する。誰のためでもない、WebPの推進はGoogle自身の利益につながることなのだ。

ただし、現状WebPをネイティブサポートするのはGoogle ChromeとOperaのみ。そのシェアからすると、トラフィック削減に貢献できる機会は少なく、しかも現状WebPを使用するWebサイトはごくわずか。JPEGやGIF、PNGをいつ、どのようなタイミングで置き換えようというのか。Googleというガリバーだからこそ許される、なんともスケールの大きい話ではある。

最新版Google Chrome(v15)で表示したWebPのイメージ。オプションに「filetype:webp」と指定するとGoogleで検索できる

Googleの画像検索オプション画面から「WebP」を指定することもできる

最新のWebPをOS X Lionで試す

そのWebPが先日アップデートされ、可逆圧縮(ロスレス)モードをサポートした。同じく可逆圧縮のPNGと比較すると、WebPの可逆圧縮モードは平均して45%ファイルサイズが減少するという。Googleによれば、圧縮率最適化ツールを利用したPNGと比較しても、平均28%小さくなったそうだ。

アルファチャンネルが利用できる透過モードもサポートされた。可逆圧縮と不可逆圧縮どちらのモードでも利用でき、「可逆圧縮/アルファチャンネルあり」を「不可逆圧縮/アルファチャンネルなし」に比べても22%の容量増ですむという。

WebPをOS Xで使う近道は、やはりGoogle Chromeを使うことだ。プラグイン「Weppy」を導入してSafariで表示、という手もあるが、最新版のSafariはプラグインの仕様が変更されたため、Lionでは利用できない。

どうしてもGoogle Chromeに頼らずLionでWebPを扱いたい、しかも可逆圧縮/透過モードをサポートした最新版を……という場合には、コマンドラインツールを使うしかない。本稿執筆時点の最新版「libwebp-experimental-mac-10.6.tar.gz」をサイトから入手し、試してほしい。

そのテストだが、アーカイブに含まれるスクリプト「png2webp_opt.sh」を利用する。「-i」オプションに続けてPNGファイル、その後に非可逆圧縮のWebPイメージを生成するため「-lossless」オプションを指定すれば、「.webpll」と「.webpll.png」が生成されるはずだ。

$ ./png2webp_opt.sh -i about.png -lossless

なお、エンコードの負荷は高く、Core i5搭載のMac mini(Mid 2011)でも、「このMacについて」のスクリーンショットという小さな画像の処理に24秒もの時間を要した。しかも、オリジナル(*.png)と*.webpllをPNGに再変換したもの(*.webpll.png)のファイルサイズが若干異なるという、素直に非可逆圧縮とは思えない結果を確認している。いずれにせよ、開発初期段階であるため、今後の改良に期待したい。

非可逆圧縮型WebP(*.webpll)のエンコード/デコードには、かなりの負荷がかかる

非可逆圧縮型WebPを再変換したPNG画像。一見したかぎりではオリジナルとの差は確認できない

関連記事