Multicrush

Project Summary

Multicrush is a wrapper around pngcrush that distributes the work of brute-force compressing a single image over several pngcrush processes. This gets you a slightly less than a linear speedup, caused by different compression methods having slightly different durations. For example, I have measured a speedup of 1.92 on a 2-core Intel T5300, and 3.86 on a 4-core Intel Q6600.

The only requirements are a copy of pngcrush and at least Python 2.4. If you have version 2.6 or higher, multicrush can automatically detect how many CPUs to use.

Usage is easy. Put multicrush options, an input file, and an output file before the double dash (--), and pngcrush options to pass through directly after it. For example:

multicrush.py -j4 input.png output.png -- -q

This will compress input.png to output.png using four parallel jobs, passing along the -q argument to make pngcrush quiet.