強火で進め

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

モバイル向けの画像圧縮ツール「Image Crushr」が凄い

Image Crushr for OSX | kode80
http://kode80.com/2010/06/08/image-crushr-for-osx/

こちらのツールでは色数を減らしデータサイズを少なくしつつ、しかも画像の品質はなるべく落とさないという一見両立が不可能に思える事を実現しています。

その秘密は昔ながらの手法、ディザリングです。昔は同時に使用可能な色数に制限が有ったため、例えば灰色を使うときには黒と白を市松模様の様に交互に配置してその中間色の灰色を表現していました。この様に使用可能な色を組み合わせて希望する色を再現する手法をディザリングと言います。

現在では同時に使用可能な色数に制限が有る事はほとんど無くなったために今ではGIFファイルくらいでしか見かける事の無くなった手法です。

しかし、このツールではその手法をJPEGPNGファイル向けに使用し、データサイズの縮小と画像品質の維持の両立を行っています。

テスト

このツールではディザリングのアルゴリズムを複数のものの中から選択出来る様です。
今回はPNGファイルをBit DepthをR、G、Bいずれも3にして全てのアルゴリズムで変換してみました。

【元画像】

【None】

【Floyd & Steinberg

【Fan】

【Jarvis,Judice & Ninke】

【Stucki】

さすがにグラデーションの部分では品質低下が目立ちますが花の部分などはじっくり観ないと違いが分からないくらいです。画像の種類によってはこのくらいBit Depthを落としても行けそうな気がします。

画像サイズについては以下の様になりました。
ちなみに元の画像のサイズは47,500byteです。

アルゴリズム サイズ(byte) 圧縮率
None 16,175 34.1%
Floyd & Steinberg 32,392 68.2%
Fan 27,241 57.3%
Jarvis,Judice & Ninke 30,429 64.1%
Stucki 31,030 65.3%

ちなみ画像ファイルをドラッグするだけでお手軽に画像を圧縮する事ができるツール「ImageOptim」でも同じ画像を変換してみたところ。2回圧縮可能で最終的に47,500byteだったファイルサイズが41,123byteになり、圧縮率は86.6%となりました。

ImageOptim – a PNG/JPEG/GIF optimizer for Mac OS X
http://imageoptim.pornel.net/

画像のピクセルデータそのものに変更が無い状態でこのデータ削減量は素晴らしいですが品質を多少犠牲にしてもデータサイズを減らしたいときは「Image Crushr」はとても重宝しそうです。

なお、「Image Crushr」ではRGBそれぞれのBit Depthが設定可能なので例えば緑のグラデーションが有る場合はGのBit Depthを高めのままにするなど画像に合わせた設定が可能です。