圧縮方式ベンチマーク

読み込み速度のベンチマークを取ってみた。
結論だけ先に提示する。

圧縮形式 png bmp jpg ファイルサイズ 圧縮率
生ファイル 18,989 5,778 33,726 1,268,392 バイト 100%
arc.nsa 20,537 66,220 35,156 582,365 バイト 45.9%
00.ns2 19,543 5,221 33,330 1,268,442 バイト 100.00%

※数字の単位はミリ秒

圧縮率について

  • nsa形式はかなり効率がいいようだ。
  • ns2形式はさすが無圧縮だけあって、生ファイルよりも微妙ながら大きくなる。(微妙すぎるので、パーセントで言うと小数点以下2位まで影響はない)

読み込み速度について

最速だったのは、ns2形式で圧縮したbmpファイル。逆に最遅だったのが、nsa形式で圧縮したbmpファイル。10倍以上の差がある。
従来のbmpファイル形式で作る限りは、ns2形式が最速と言えるだろう。速度を気にするなら、arc.nsaは避けた方がいいことになる。

環境

OS
Vista
CPU
2.13GHz
メモリ
4gb
NScr.exe
Ver.2.95(2009/10/2更新)

テストスクリプト

00.txt

*define
nsa

numalias loop_max,1000
mov %0,100
numalias ext,%0:inc %0
numalias loop,%0:inc %0
numalias count,%0:inc %0
defsub try

game
*start
saveoff

csvopen "bench.txt","w"
try "png"
try "bmp"
try "jpg"
csvclose

end

*try
getparam $ext

resettimer

for %loop=1 to loop_max
if %loop>1 csp 0
lsp 0,":a;image."+$ext,0,0
print 1
next

gettimer %count
itoa $count,%count
csvwrite $ext,$count

return

ベンチ方式

上記スクリプトを、生ファイル・arc.nsa・00.ns2の三つの状況でそれぞれ実行した。
それぞれの形式の画像を0番スプライトに読み込み、表示し、削除する工程を1,000回ずつ繰り返し、その経過時間を計った。
なお、画像については、表示した時に同じになるものを使用した。

bmp
ひぐらしのなく頃に」の立ち絵
jpg
ひぐらしのなく頃に」体験版に含まれる無圧縮jpg
png
bmp画像を左右に分割し、http://www5.plala.or.jp/shinspsy/freesoft/freesoft.htmの「shin's PNG Editer」でアルファブレンド合成した画像。