Progressive JPEG quality compare to normal JPEG

compressionjpeg

I'm trying to convert some BMP files into JPEG format at highest quality (Q = 100) until I realize there is a "Progressive" option here.

One of my BMP file is 2.9MB. After converting to JPEG format without progressive the new file size is 338.2KB and with progressive the new file size gets down to 283.2KB only.

I have read Wikipedia article about what this progressive JPEG is for, but my concern is comparing to normal JPEG, the quality of progressive JPEG get worse or they will be the same?

Best Answer

There are a couple of nice posts here that seem to describe why Progressive compression may be better and it seems to come down to the fact that in Progressive JPEG the compressed data is ordered more efficiently and that blocky image data and noise get separated and compressed separately.

I've highlighted the important pieces below, they describe it better than I ever could.

As a result I would expect that progressive JPEG is better compression, but not any significant change in image quality.

Progressive JPEG has two different coding features:

  1. Spectral Selection
  2. Successive Approximation

What you describe is just the first feature (first DC, then AC bands). However, it is the second feature which is the major reason for different coding efficiency of Progressive JPEG. With Successive Approximation, you first store the higher bits of the coefficients (low precision, coarse image), then the lower bits (high precision, detailed image). In usual images, the noise is concentrated in the lower bits. Therefore, the Huffman encoder can be more efficient in symbol coding in the higher bit range where less noise is. The Successive Approximation coding thus separates the noise from the image, and that is the reason for better coding efficiency (noise is hardly compressible).

The more noise (detail) the image has, the better the coding efficiency of Progressive JPEG. The less noise (blur) the image has, the better the coding efficiency of Sequential (Non-progressive) JPEG.

Note that most Progressive JPEG coders use a mixture of Spectral Selection coding and Successive Approximation coding. For better coding efficiency, mainly Successive Approximation is relevant, and you can try to find optimal Successive Approximation paramters (the point where to separate the precision - Ah/Al in the JPEG standard) for your class of images. For example, I sometimes found an optimal point Al=4 for my images (4 lower bits separately coded).

Related Question