NAS の PNG を速く見る 〜 静止画可逆圧縮まとめ
20MB の PNG ファイルを Atom プロセッサで展開すると 30 秒もかかって話にならんわけですよ。そこで低性能 CPU でも高速に展開できる静止画可逆圧縮方式を求める旅に出たわけですな。
要求仕様
評価方法
Leeyes でサムネイルキャッシュを無効にし、14 枚のファイルが入ったフォルダを開き、すべてのサムネイルが表示されるまでの時間を計測する。
方針1: PNG にこだわる
I/O 時間と CPU 時間の両面から攻めてみようか。
ファイルを最適化してみる
元のファイル*1 (original) と、BlastPNG*2 で最適化したファイル (optimized) を用意した。BlastPNG は複数の最適化ツールを一括実行するフロントエンドである。今回は pngrewrite, OptiPNG, PNGOut, cPNGC を使用し、他のパラメータはデフォルトのままとした。14 枚のファイルの合計サイズは original が 115MB、optimized が 105MB である。
展開プラグインを変えてみる
PNG を展開できる Susie プラグインは私が知るかぎり 7 種類ある。*3
作者 | ファイル | 配布元 | |
---|---|---|---|
A | 宮坂賢さん | IFPNG.SPI 0.25L | http://hp.vector.co.jp/authors/VA010446/ |
B | BAROQUE さん | bqpng.spi 0.07 | 消滅? |
C | 渡辺裕朗さん | ifPNG.spi 0.6.1 | http://www.asahi-net.or.jp/~DS8H-WTNB/ |
D | K'z さん | ifpng.spi 0.08 | http://www.asahi-net.or.jp/~gv9k-setg/ |
E | wai emu さん | InPng.spi 0.7.7 | http://wai-emu-web.hp.infoseek.co.jp/ |
F | Makito Miyano さん | ifgdip.spi 0.8 | http://miyano.s53.xrea.com/ |
G | nilpo さん | ifwic.spi 100105 | http://nilpo.sitemix.jp/susie-plugin |
F, G は自前で展開するのではなく Windows の画像処理コンポーネント (F は GDI+、G は WIC) を利用しているものと思われる。今回は A, C, E, F, G の 5 種類を比較した。
結果
original | optimized | |
---|---|---|
A | 3分15秒 | 3分15秒 |
C | 2分30秒 | 2分10秒 |
E | 3分00秒 | 3分03秒 |
F | 2分38秒 | 3分23秒 |
G | 4分12秒 | 2分17秒 |
方針2: PNG を見捨てる
他のフォーマットも試してみようか。
フォーマット | 仕様 | エンコーダ | デコーダ | |
---|---|---|---|---|
H | HD Photo | 仕様書 | Paint.NET プラグイン | Susie プラグイン |
J, K | TLG | 解説 | コンバータ | Susie プラグイン |
L | ERI | 開発元 | コンバータ | Susie プラグイン |
結果
フォーマット | 圧縮時間 | サイズ | 展開プラグイン | ノート (ネットワーク) | ノート (ローカル) | デスクトップ (参考) | |
---|---|---|---|---|---|---|---|
C | PNG (original) | ― | 115MB | ifPNG.spi ver 0.6.1 | 2分30秒 | 46.8秒 | 8.6秒 |
G | PNG (optimized) | すごく長い | 105MB | ifwic.spi 100105 | 2分17秒 | 37.2秒 | 6.6秒 |
H | HD Photo (100%) | 短い | 113MB | ifwic.spi 100105 | 4分35秒 | 1分28秒 | 11.5秒 |
J | TLG5 | かなり長い | 137MB | if_tlg.spi 0.03 | 2分14秒 | 37.8秒 | 4.8秒 |
K | TLG6 | とても長い | 88MB | if_tlg.spi 0.03 | 1分56秒 | 43.7秒 | 7.5秒 |
L | ERI | 短い | 115MB | iferigls.spi | N/A | N/A | N/A |
M | BMP (参考) | ― | 398MB | ― | 5分09秒 | 50.6秒 | 3.0秒 |
考察
圧縮率は TLG6 が 1 位。ただし圧縮にえらい時間がかかるうえ、コンバータがイケてないのがタマにキズ *4。HD Photo と ERI は PNG と大差なし、ただし速い。ちなみに HD Photo は一括コンバータを見つけられなかった*5。
ノート (ネットワーク) の総合タイムは、転送時間の短い TLG6 が 1 位。 HD Photo は展開が遅くてダメぽ。ERI は「読み込めません」と言われて読み込めず、しょぼーん。
ノート (ローカル) はローカル micro SD から読み込んだ場合。総合タイムで PNG (optimized) と TLG5 がほぼ 1 位タイ、TLG6 は 3 位に転落した。I/O がボトルネックとならない場面では TLG の優位性は失われると言えそうだ。
デスクトップはローカル HDD でディスクキャッシュに載った状態から読み込んだ場合。環境は Core 2 Duo 3.0GHz + Windows Vista SP2 + Leeyes 2.6.1β + Susie プラグイン。これぐらい速ければストレス感じないんだけどなー。
結論
もうリモートデスクトップでいいや (´Д`;)