I have come across onto DeflOpt (http://www.walbeehm.com/download/), and it seems to further reduce the size of PNG files once PNGOutWin has run onto it. Probably the trick used is removing non-mandatory PNG chunks, but could be a nice feature to have on PNGOutWin too, in order to get a more agressive size reduction.
Awesoken at
Re: DeflOpt: Further reduce PNGOutWin files
PNGOUT and PNGOUTWin remove all unnecessary chunks by default. Please browse these threads for information on how DeflOpt actually works: http://www.jonof.id.au/forum/index.php?topic=1064.0 http://www.jonof.id.au/forum/index.php?topic=1018.15
nikkho at
I do not thing PNGOUTWin are removing all unnecessary chunks, because if so, it will not be possible to further reduce with DeflOpt a PNGOUTWined files, and in fact, it is.
Awesoken at
Did you look through those 2 threads?
There is a simple way to test your theory. Download TweakPNG to view all chunks of a PNG file. With this, you can tell what chunks are being removed by the programs, by comparing before and after.
nikkho at
Did it, and seems that the difference is in a smaller IDAT block after DeflOpting a PNGOutwined image.
Original image (sample.png in TweakPNG distro): 13479 bytes http://img17.imageshack.us/img17/9126/56294597.png
Any idea why DeflOpt is being able to further reduce the data compression of PNGOutWin?
Awesoken at
I believe the main trick Ben Jos is using in DeflOpt is to find and remove any Huffman symbols that do not occur at all in the data stream. He may be doing other tricks, but you would have to ask Ben Jos about them. I could implement this as an extra pass in PNGOUT, but I have not done so because I am lazy.
nikkho at
Since PNGOutWin is the lead tool in optimizing PNG files, it would be very nice if you could implement this extra optimization. No matter if you are lazy, it is not urgent at all, but would be nice to improve the leadership!
caveman at
Hello, if you could add this optimisation it would be specially nice for Linux and Mac OS X users, since DeflOpt is a Windows only tool and running it with Wine is a weird solution. I think that there are rare cases where the best output produced by pngout followed by deflopt would not produce the smallest overall file if for instance deflopt is able to further reduce the second best output.
Say sample.png could be reduced to: 1500 bytes (pngout -f5 switch) deflopt -2 bytes: final 1498 bytes 1501 bytes (pngout -f1 switch) deflopt -4 bytes: final 1497 bytes
Since most of the scripts do not run deflopt on each pngout output but only as a final stage on its smallest output we could miss a few opportunities to get a smaller final file.
BTW http://www.walbeehm.com/download/ does not respond any more. I have send 2 emails to Ben Jos Walbeehm (closely following the instructions given in the readme file) asking him if he would be interested in a Mac OS X port of DeflOpt, still no answer today... I hope he is still alive and kicking.