jpegoptim is a utility for optimizing JPEG files. It provides lossless optimization (based on optimizing the Huffman tables) and "lossy" optimization based on setting a maximum quality factor.
| Tags | multimedia Graphics Graphics Conversion |
|---|---|
| Licenses | GPL |
| Operating Systems | POSIX IRIX Linux Solaris Darwin Mac OS X Windows (Cygwin/MinGW) |
Recent releases


Release Notes: Support for progressive JPEGs has been added (fixes a long standing "bug" of progressive JPEGs becoming non-progressive during optimization). New options --all-normal and --all-progressive for converting JPEGs to non-progressive and progressive. A new -S / --size option to set the target size for the output file.


Release Notes: Safer temp file handling (if mkstemps() is available, and a patch to make "quiet mode" (-q) be quiet.


Release Notes: The -T/--threshold option was added to set the minimum optimization gain needed before a file is optimized. The default is to optimize if gain is even just one byte. Some minor fixes were also done.


Release Notes: Additional support was added for IPTC and ICC markers. Minor fixes were made.


No changes have been submitted for this release.
Recent comments
15 Sep 2011 09:45
Hi Timo Kokkonen,
I'd like to suggest a new option to jpegoptim: the adaptive (dynamic) Huffman coding.
After reading this paper:
it turns out that the usual custom Huffman table (also called optimized JPEG) yields on average a reduction of 1.38% of image's size, but the use of dynamic Huffman coding (which builds an even better Huffman table) almost doubles this figure by yielding on average a further reduction of 1.01%.
An implementation of Vitter's algorithm (an improved version of the algorithm mentioned in the previous paper and which yields even better reductions) is released in the public domain and can be found here :
Given all this, would it be possible to add this new option to jpegoptim to optimize baseline and progressive JPEGs?