blob: f5ee693db8921e4aae2ffc1f85c3c44329b049bb [file] [log] [blame]
Corpus contains 1734 PNG files from mozilla hg repo
5491004 total bytes (complete PNG files)
5019516 total bytes (IDAT chunk data)
35154779 total bytes uncompressed IDATs
mogrify -strip *.png
added vpAG, bKGD, and pHYs chunks. (was old mogrify)
scooby> time q16mogrify -strip *.png
real 0m13.500s user 0m13.057s sys 0m0.424s
5061691 total bytes (complete PNG files)
Corpus divided into two parts: small, stripped PNGs less than 1024 bytes,
and large, stripped PNGs greater than or equal to 1024 bytes.
pngcrush -brute -d BF_brute *.png
CPU time decoding 35.690, encoding 255.190, other 19.960, total 310.840 seconds
4738882 total bytes (complete PNG files)
4281038 total bytes (IDAT chunk data)
6850560 2013-03-02 22:04 mozilla-corpus.tar
4995464 2013-03-02 22:04 ../mozilla-corpus.tar.xz (xz)
4994412 2013-03-02 22:04 ../mozilla-corpus.tar.xz (xz -9)
scooby> time gzip -9n *.idat
real 0m5.553s user 0m5.344s sys 0m0.200s
time gzip -d *.gz
real 0m0.778s user 0m0.552s sys 0m0.224s
scooby> time gzip -9n *.idat
real 0m5.648s user 0m5.436s sys 0m0.200s
4360009 total bytes (includes 20820 bytes of gzip overhead)
4339189 total bytes (without 20820 bytes of gzip overhead)
scooby> time gunzip *.idat.gz
real 0m0.762s user 0m0.568s sys 0m0.188s
scooby> time bzip2 *idat
real 0m3.830s user 0m3.452s sys 0m0.320s
4015342 total bytes
scooby> time bzip2 -d *bz2
real 0m1.011s user 0m0.716s sys 0m0.292s
scooby> time xz *idat
real 0m14.621s user 0m14.305s sys 0m0.236s
3813468 total bytes
scooby> time xz -d *.xz
real 0m0.716s user 0m0.452s sys 0m0.256s
scooby> nohup time zopfli --zlib *.idat &
587.24user 0.40system 9:48.10elapsed
4035633 total
pngcrush -d PC_default *.png
CPU time decoding 1.710, encoding 21.600, other 1.190, total 24.500 seconds
4757749 total bytes (complete PNG files)
4299905 total bytes (IDAT chunk data)
scooby> time gzip -9n *.idat
real 0m5.504s user 0m5.260s sys 0m0.236s
4369829 total
scooby> time gunzip *gz
real 0m0.791s user 0m0.576s sys 0m0.212s
scooby> time xz *.idat
real 0m14.481s user 0m14.145s sys 0m0.308s
3820192 total
scooby> time xz -d *.xz
real 0m0.693s user 0m0.468s sys 0m0.220s
scooby> time bzip2 -9 *.idat
real 0m3.603s user 0m3.220s sys 0m0.376s
4022529 total
scooby> time bzip2 -d *bz2
real 0m0.989s user 0m0.732s sys 0m0.252s
time zopfli --zlib *.idat
590.4 sec
4047719 total
pngcrush -m 7 -force *.png # filter 0 level 9 strategy 0
CPU time decoding 0.690, encoding 17.270, other 0.670, total 18.630 seconds
5593778 total PNG size
5136096 total IDAT size
scooby> time gzip -n9 *.idat
real 0m2.835s user 0m2.556s sys 0m0.268s
5153307 total
scooby> time gunzip *.gz
real 0m0.800s user 0m0.524s sys 0m0.272s
scooby> time gzip -n9 *.idat
real 0m7.134s user 0m6.812s sys 0m0.200s
4773010 total
scooby> time gunzip *gz
real 0m0.763s user 0m0.536s sys 0m0.224s
scooby> time bzip2 -9 *.idat
real 0m5.024s user 0m4.684s sys 0m0.308s
4614708 total
scooby> time bzip2 -d *.bz2
real 0m1.033s user 0m0.732s sys 0m0.296s
scooby> time xz *.idat
real 0m12.970s user 0m12.673s sys 0m0.280s
4138560 total
scooby> time xz -d *xz
real 0m0.758s user 0m0.476s sys 0m0.280s
zopli --zlib *.png
98.45user 0.47system 1:39.12elapsed 99%CPU (0avgtext+0avgdata 40192maxresident)k
4864938
pngcrush -m 6 -force *.png
CPU time decoding 0.430, encoding 16.090, other 0.870, total 17.390 seconds
4763290
scooby> time gzip -n9 *.idat
real 0m2.833s user 0m2.548s sys 0m0.236s
4752190
scooby> gunzip *gz
real 0m0.767s user 0m0.580s sys 0m0.184s
bzip2 -9
real 0m2.523s user 0m2.164s sys 0m0.272s
5492706 total
scooby> time xz *.idat
real 0m15.198s user 0m14.873s sys 0m0.272s
4231288 total
scooby> time xz -d *xz
real 0m0.707s user 0m0.488s sys 0m0.216s
zopfli
91.32user 0.62system 1:32.02elapsed
5153680
nohup time pngcrush -brute -reduce -force -d PC_reduced *.png&
CPU time decoding 36.160, encoding 244.460, other 16.910, total 297.530 seconds
4108911
time gzip -9n *.idat
real 0m5.315s user 0m5.068s sys 0m0.240s
4187025 total
time gunzip *.gz
real 0m0.766s user 0m0.512s sys 0m0.252s
scooby> time bzip2 -9 *.idat
real 0m3.618s user 0m3.220s sys 0m0.328s
3844856 total
scooby> time xz *.idat
real 0m14.098s user 0m13.753s sys 0m0.284s
3651752 total
zopfli
81.01user 0.45system 1:21.59elapsed
Summary:
Method time IDAT bytes
original files n/a 5019516
pngcrush -brute 310.8 4281038
gzip -9n 5.6 4339189
zopfli --zlib 596.7 4035633
bzip2 -9 3.8 4015342
xz 14.6 3813468
pngcrush default 24.5 4299905
gzip -9n 5.5 4349009
zopfli --zlib 590.4 4047719
bzip2 -9 3.6 4022529
xz 14.5 3820192
pngcrush none 18.6 5136096
zopfli --zlib 98.9 4864938
gzip -n9 2.8 5132487
bzip2 -9 3.8 4614708
xz 12.8 4138560
pngcrush adaptive 17.4 4763290
zopfli --zlib 99.0 5153680
gzip -n9 2.8 4752190
bzip2 -9 2.6 5492706
xz 15.2 4231288
pngcrush -reduce 297.5 4108911
gzip -9n 5.3 4187025
zopfli --zlib 81.5 4461661
bzip2 -9 3.6 3844856
xz 13.8 3651752
Kodak 24 test images (some rotated to portrait)
time zopfli --zlib *.idat
real 2m52.325s user 2m52.107s sys 0m0.060s
kodim*.png 15249498 total
kodim*.zdat 15246402 total
kodim*.zlib 14717411 total
Size range pngcrush zopfli z/pc
0-200 11818 11618 .9831
201-1000 140290 136015 .9695
1001-10000 1040052 1000877 .9623
10001-200000 2756452 2568988 .9320
300000-450000 332611 318047 .9562
450001-999999 15246402 14717411 .9653