アナログ
RSS  

punypngをためしてみた2009/09/11 23:41

ASCII.jp:30分でできる!Webサイトを高速化する6大原則
の画像最適化でpunypngが紹介されていて、他のツールとの比較で圧倒的すぎるので、ちょっと試してみました。

先ずは元画像も手に入るButterfly

Butterfly105,332
PNGOut97,10692.2%
OptPNG102,27797.1%
punypng62,33159.2%

確かにこりゃ圧倒的だ。

次はASCII.jpのサンプル
余談ですが、圧縮前の画像(004_304x100.png)と圧縮後の画像(005_304x100.png)が全く同じもので、しかも圧縮前の18,356バイトでもなく圧縮後の14,888バイトでもない16,188バイトと何をどうしたのかさっぱり分からないサンプルで、仕方ないのでそれを使いました。

004_304x100.png16,188
PNGOut+cPNGC15,92298.4%
OptPNG+cPNGC15,38095.0%
punypng14,98692.6%

こちらは大きな差はつきませんでしたが、確かに一番優秀です。
ちなみにどちらのテストでも、OptPNGは「-zc1-9 -zm1-9 -zs0-3 -f0-5」(1080通り)のオプションを指定してます。

驚きなのが処理速度で、Webアプリにも関わらずpunypngはPNGOutとほとんど処理時間が変わりませんでした。一方でOptPNGは(1080通り)のオプション指定のせいもあって4倍くらい時間がかかりました。

ついでにJpegも以前テストした画像で試してみましたが、自動的に最小サイズになるように選択されるのかプログレッシブで返ってきました。ベースラインかプログレッシブかを選べないのは残念です。

サイズは101,933バイトで、JTBの方が18バイト小さいという結果になりました。
Jpegに関してはベースラインを選べないというのもありますし、手持ちのツールでいいかなと。

私はGifの最適化ツールは持ってないのですが、どうせなのでGif画像(1)も試してみました。
結果は23,402バイトが20,178バイトに。
<追記>
Gifsicle(-O2)と比較してみました。(画像(2)、(3)は公開していません)

OPTPiXpunypngGifsicle
画像(1)23,40220,17820,178
画像(2)80,09878,92178,921
画像(3)112,660109,864109,864
以上、punypngとGifsicleでサイズに違いはみられませんでした。

ということで、punypngはPNG画像の最適化のみ利用価値があると考えます。
ただし、ファイルサイズの上限があるのでなんでもというわけにはいきませんけれどね。
</追記>


こりゃ参った。速いし、よく縮むし、Webサービスでなく通常のアプリケーションにしてリリースして欲しいです。


参考
 Webで使用する画像ファイルの最適化 - maruko2 Note.