User-Agent: Mozilla/5.0 (Windows NT 6.0; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
File location in source:
Ends up here:
original: 26756 bytes
optimized: 21309 bytes
saved: 5447 bytes (more than 20%)
Created attachment 528516 [details]
Created attachment 606473 [details] [diff] [review]
Bug 653038 - Patch 1
Update the .png with the optimized version.
Comment on attachment 606473 [details] [diff] [review]
Bug 653038 - Patch 1
Out of interest, which application did you use to optimise this .png file?
(In reply to firstname.lastname@example.org from comment #6)
> Out of interest, which application did you use to optimise this .png file?
It was probably pngout (ran in random mode dozens of time and trying many different block count).
Pngout is based on Ken Silverman's own deflate engine -kflate- most of the time, if not always, it produces smaller Deflate streams than Zlib and 7-Zip Deflate implementation but it's slow, very slow...
Since I have proposed this file have written a small tool called Huffmix that is able to pick the smallest Deflate blocks out of different Pngout random runs.
Applied to sync-bg.png it gets even smaller... 21051 bytes.
To have a closer look at what's going on inside Deflate streams found in PNG or GZip files you can try Defdb.
PngWolf is also an interesting tool to improve multi-filter (f5) selection:
Pngwolf output can be recompressed using pngout -f6 (it will keep the filter selected for each scan-line).
State of the art PNG optimization has become a sort of black magic, since it takes 5 or 6 tools and a lot of time to get the best results:
- cryopng (to clear alpha, only for RGB+Alpha files)
- pngwolf (to get the best filters)
- pngout (best deflate engine)
- deflopt & defluff (to reduce Huffman tables)
- huffmix (to get the best out of pngout "random" mode)
(pngout -r, deflopt, defluff, huffmix can be run in a loop hundreds of time)
Created attachment 607104 [details]
sync-bg.png Huffmix+Pngout+Deflopt+Defluff optimized
I don't know if it's worth reopening the bug, this new file is only 258 bytes smaller.