Return to Digital Photography Articles

Comparing JPEG Quality

Use this page to compare the quality of JPEG image compression used in various sources, including both digital SLR / digicams (Canon, Nikon, Sony, etc.) and image editing software (such as Photoshop). Note that this is a comparison on each camera's JPEG output — with RAW output you can bypass the compression quantization "error" step. The data points for Photoshop and IrfanView are useful to determine how the final output quality compares.

This interactive page is very new and will be improved over time. Please leave any feedback or suggestions below. Do you want to see data about a camera that is not listed below? Let me know and I'll add it.

Variable Compression / Quantization

Note that there are a growing number of digicams that use variable quantization tables to produce their JPEG output. As a result, it is possible that a camera may generate photos that use a dozen different quantization tables, meaning that the effective compression quality can, in fact, cover quite a large range. For this reason, I have omitted many of these digital cameras from the list below.

Important note about Quality Factors

It is extremely important that the reader understand that compression quality cannot truly be represented by a single value. JPEG compression quality is actually defined by a pair of quantization tables (each with an array of 64 values). Trying to make a comparison between a pair of matrices is not at all straightforward (or always possible).

So, then why are "quality" numbers listed for each camera/software source? Many programs encode their JPEG images using quantization tables that are generated by scaling the coefficients in a "standard" table that is provided in the ITU-T specification.

The IJG group has proposed a method of scaling these coefficients according to a "quality factor" scale. This is NOT a percentage! It is merely a number from 1-100 representing the scaling factor used in generating the table. A quality factor of 100 does not mean Lossless compression! Instead, it generally represents the quality factor that will generate the highest quality compressed image with the provided scaling algorithm.

That said, many software programs and some digicams are indeed using scaled versions of this standard table. If we know that a given program has used the IJG scaling method, then we can indeed make a comparison, because all numbers in the matrices will move according to the algorithm in a similar manner.

So, what about other digicams / software editors that didn't use the IJG scaling method? People always love to make comparisons, and comparing multiple 64-element matrices is not intuitive to the average person. Therefore, as an incredibly rough approximation, a calculation has been made for each source to derive the closest / approximate IJG quality factor for a given table. If the quantization tables follow the standard trend of limited compression in the low-frequency components rising to moderate compression in the high-frequency components, then the approximate quality factor may indeed give one an idea as to how the overall quality may appear.

How to Compare Matrices

When you use the comparison tool below, an assessment is done between the sets of 64 coefficients that make up a quantization table. In order to come up with a better than / worse than assessment, the tables are simplified into high frequency coefficients and low frequency coefficients. If the high frequency coefficients in table A are nearly always greater than the high frequency components in table B, then we can indeed state that digicam A's high frequency content will be compressed more poorly than digicam B. In cases where there is not enough of a clear difference, the comparison will report this accordingly.

Select Source #1Select Source #2
Compare the selected sources:

JPEG Comparison List of all Cameras & Sources

The following is a sorted summary of the JPEG Quality factor comparisons between all cameras and other sources including Adobe Photoshop and IrfanView. The list is ordered by the approximate luminance quality factor (please see above!). This is only a very rough comparison as the quality factor is not necessarily a good comparison as it doesn't discern between low and high frequency component differences in the same way that the Human Visual System does. Thus, it is only a starting point -- consult the quantization tables themselves for a more accurate comparison. It also provides a loose guide as to the quality settings in Photoshop Save As when coming from various digicams.

The other very important point is the chroma subsampling being used in the chrominance channel. Note that a camera with a subsampling of 1x1 (i.e. none) and lower chrominance quality factor may appear better than an image compressed with a subsampling factor of 2x1 and a higher chrominance quality factor. Note such a changeover in the Photoshop quality factors, where the subsampling is automatically chosen depending on the quality level.

Lastly, sources with the same quantization tables have been grouped together, as they should all have equivalent JPEG compression quality. Of course the following does not take into account any of the differences in optics quality, CMOS/CCD sensor resolution or quality derived from a RAW->JPEG workflow..

NOTE: The following is not an accurate comparison of quality (as it is just listing the approximate quality factor, which only truly applies if the IJG tables were used). Direct quantization table comparisons (using the drop boxes above) will provide a more accurate comparison. The list below can only be used as a rough ballpark comparison chart in light of the limitations of "approximate quality factor" described earlier.

MakeModelQuality ModeChroma SubsampQuality Factor
Quality Factor

PENTAXPENTAX Optio S5i 2x2100100
IrfanView 1001x1100100
MS OfficeMS Office Picture Manager 2x1100100
CASIO COMPUTER CO.,LTD.EX-S500fine2x2100100

KONICA MINOLTAMAXXUM 5D 2x198.479899.1842
KONICA MINOLTAMAXXUM 7D 2x198.479899.1842
SONYDSLR-A700 2x198.479899.1842

CanonCanon EOS-1Ds Mark IIfine2x198.324698.829
NIKONNIKON D2XFINE2x198.324698.829
SIGMASIGMA SD10Qual:121x198.324698.829
SIGMASIGMA SD10Qual:121x198.324698.829
SIGMASIGMA SD9 1x198.324698.829
OLYMPUS IMAGING CORP.FE240/X795shq2x198.324698.829
NIKONNIKON D3FINE2x198.324698.829

FUJIFILMFinePix S9500fine2x198.292299.0936

OLYMPUS CORPORATIONE-1 2x198.290998.8054

CanonCanon EOS-1D Mark IIfine2x198.254398.7342

Photoshop Save For Web 1001x198.24998.3854

Photoshop Save As 121x198.105398.3557

OLYMPUS OPTICAL CO.,LTDE-20,E-20N,E-20PSHQ2x198.04998.4029

FUJIFILMFinePix S9000FINE2x198.024398.2769

NIKONNIKON D50FINE2x198.023798.389
NIKONNIKON D70sFINE2x198.023798.389
NIKONNIKON D80FINE2x198.023798.389
NIKONNIKON D300FINE2x198.023798.389

SONYDSC-F88 2x197.962198.389
SONYDSC-F828 2x197.962198.389

NIKONNIKON D200FINE2x197.912898.389

FUJIFILMFinePix E550fine2x197.860898.265

OLYMPUS IMAGING CORP.E-410SHQ2x197.832598.3557

NIKONNIKON D1HFINE2x197.828898.3557
NIKONNIKON D2HFINE2x197.828898.3557
NIKONNIKON D100FINE2x197.828898.3557
NIKONNIKON D80FINE2x197.828898.3557

CanonCanon PowerShot G1superfine2x197.791497.4087

NIKONCOOLPIX P2FINE2x197.681697.9296
PENTAXPENTAX Optio 750Z 2x197.681697.9296
SONYDSC-P200 2x197.681697.9296

FUJIFILMFinePix S3Profine2x197.61797.8154

OLYMPUS IMAGING CORP.E-330 2x197.534697.9296
OLYMPUS CORPORATIONu30D,S410D,u410Dvariable2x197.534697.9296

FUJIFILMFinePix S20Profine2x197.499297.8035


CanonCanon EOS 5Dfine2x197.293397.5132
CanonCanon EOS 40Dfine2x197.293397.5132
CanonCanon EOS-1D Mark II Nfine2x197.293397.5132
CanonCanon EOS-1D Mark IIIfine2x197.293397.5132

CanonCanon EOS 10Dfine2x197.289497.5132
CanonCanon EOS 20Dfine2x197.289497.5132
CanonCanon EOS 30Dfine2x197.289497.5132
CanonCanon EOS 300D DIGITALfine2x197.289497.5132
CanonCanon EOS DIGITAL REBEL XTfine2x197.289497.5132
CanonCanon EOS 350D DIGITALfine2x197.289497.5132
CanonCanon EOS DIGITAL REBEL XTifine2x197.289497.5132
CanonCanon EOS D60fine2x197.289497.5132
CanonCanon EOS 300D DIGITAL 2x197.289497.5132

CanonCanon PowerShot A40superfine2x197.239595.1671
CanonCanon PowerShot A70superfine2x197.239595.1671
CanonCanon PowerShot A430superfine2x197.239595.1671
CanonCanon PowerShot A700superfine2x197.239595.1671
CanonCanon PowerShot S3 ISsuperfine2x197.239595.1671
CanonCanon PowerShot S40superfine2x197.239595.1671
CanonCanon PowerShot S45superfine2x197.239595.1671
CanonCanon PowerShot S50superfine2x197.239595.1671
CanonCanon PowerShot S60superfine2x197.239595.1671
CanonCanon PowerShot S70superfine2x197.239595.1671
CanonCanon PowerShot S80superfine2x197.239595.1671
CanonCanon DIGITAL IXUS 800 ISsuperfine2x197.239595.1671
CanonCanon DIGITAL IXUS 850 ISsuperfine2x197.239595.1671
CanonCanon DIGITAL IXUS 900Tisuperfine2x197.239595.1671
CanonCanon PowerShot SD1000superfine2x197.239595.1671
CanonCanon PowerShot G3superfine2x197.239595.1671
CanonCanon PowerShot G5superfine2x197.239595.1671
CanonCanon PowerShot A510superfine2x197.239595.1671
CanonCanon PowerShot A520superfine2x197.239595.1671
CanonCanon PowerShot TX1superfine2x197.239595.1671
CanonCanon DIGITAL IXUS 55superfine2x197.239595.1671
CanonCanon DIGITAL IXUS 40superfine2x197.239595.1671
CanonCanon PowerShot S5 ISsuperfine2x197.239595.1671
CanonCanon PowerShot SD40superfine2x197.239595.1671
CanonCanon PowerShot SD600superfine2x197.239595.1671
CanonCanon PowerShot SD800 ISsuperfine2x197.239595.1671
CanonCanon PowerShot SD20superfine2x197.239595.1671
CanonCanon PowerShot G6superfine2x197.239595.1671

CanonCanon EOS D30fine2x197.219497.5132

PENTAXPENTAX *ist D 2x197.182697.5132
PENTAXPENTAX *ist DS 2x197.182697.5132
PENTAXPENTAX *ist DL 2x197.182697.5132
PENTAXPENTAX *ist DS2 2x197.182697.5132
PENTAXPENTAX K100D 2x197.182697.5132
SAMSUNG TECHWINGX-1L 2x197.182697.5132

CanonCanon PowerShot Pro1 2x197.167195.1671
CanonCanon DIGITAL IXUS II 2x197.167195.1671

OLYMPUS IMAGING CORP.E-300 2x197.149697.3547
OLYMPUS CORPORATIONu30D,S410D,u410Dvariable2x197.149697.3547

Samsung Techwinsuperfine2x197.134397.087


FUJIFILMFinePix A700fine2x197.004396.961

OLYMPUS CORPORATIONu30D,S410D,u410Dvariable2x196.999897.331

NIKONNIKON D1XFINE2x196.969396.9937
NIKONNIKON D70FINE2x196.969396.9937

FUJIFILMFinePix E900fine2x196.946696.961



CanonCanon PowerShot S1 ISsuperfine2x196.837594.4437

Photoshop Save For Web 0901x196.754395.938

PENTAXPENTAX Optio M40 2x196.72296.9146


OLYMPUS IMAGING CORP.E-500 2x196.598996.8774
OLYMPUS IMAGING CORP.uD800,S800SHQ2x196.598996.8774
OLYMPUS CORPORATIONu30D,S410D,u410Dvariable2x196.598996.8774

CanonCanon EOS-1DSfine2x196.591896.5122
CanonCanon EOS-1Dfine2x196.591896.5122

OLYMPUS CORPORATIONu30D,S410D,u410Dvariable2x196.442696.7906

NIKONNIKON D1FINE2x196.15196.0156

SIGMASIGMA SD9 2x296.063696.0156

OLYMPUS IMAGING CORP.uD800,S800variable2x195.56995.8689

Photoshop Save As 111x195.47995.4894

SONYDSLR-A100 2x195.297194.0658

NIKONCOOLPIX P3FINE2x195.211295.1022

Sony EricssonK800ivariable2x195.141994.9469

PENTAXPENTAX K10D 2x195.037194.9093

PENTAXPENTAX Optio A10 2x194.846996.3367

NIKONCOOLPIX P4 2x194.781194.5068

FUJIFILMFinePix F810normal2x194.575794.0125

KONICA MINOLTADiMAGE X1fine2x194.369994.0972

NIKONCOOLPIX P4FINE2x194.189293.9684

FUJIFILMFinePix S7000fine2x194.14793.8883

Photoshop Save For Web 0801x194.126993.0311

FUJIFILMFinePix S5000normal2x194.122193.8883

NIKONCOOLPIX L12FINE2x194.016193.9312
NIKONCOOLPIX P5000FINE2x194.016193.9312

OLYMPUS IMAGING CORP.uD800,S800variable2x193.617593.8444
OLYMPUS IMAGING CORP.u700,S700 2x193.617593.8444

OLYMPUS IMAGING CORP.E-410 2x193.604993.8444

CanonCanon PowerShot A640fine2x192.960588.2376
CanonCanon PowerShot G6fine2x192.960588.2376
CanonCanon PowerShot S2 ISfine2x192.960588.2376
CanonCanon PowerShot SD400fine2x192.960588.2376
CanonCanon PowerShot A520fine2x192.960588.2376
CanonCanon DIGITAL IXUS 700fine2x192.960588.2376
CanonCanon PowerShot A630fine2x192.960588.2376
CanonCanon PowerShot S30fine2x192.960588.2376
CanonCanon PowerShot SD700 ISfine2x192.960588.2376
CanonCanon DIGITAL IXUS 60fine2x192.960588.2376

CanonCanon PowerShot G1fine2x192.960583.5027

SONYDSC-W70 2x192.957692.9085
OLYMPUS IMAGING CORP.u1000/S1000SHQ2x192.957692.9085

PENTAXPENTAX Optio A30 2x192.761595.4061

OLYMPUS IMAGING CORP.u700,S700variable2x192.451892.7738

OLYMPUS IMAGING CORP.uD800,S800variable2x192.291192.7738
OLYMPUS IMAGING CORP.u700,S700variable2x192.291192.7738

NIKONCOOLPIX S10FINE2x191.860891.898

Photoshop Save As 101x191.643192.5731

SONYDSC-T100 2x190.962290.9581

PENTAXPENTAX Optio S 2x290.925990.9347

OLYMPUS IMAGING CORP.u700,S700variable2x190.772791.2087

FUJIFILMFinePix S5000normal2x190.562990.5001

Samsung ElectronicsAnycall SPH-B4100 2x190.544290.4434

Photoshop Save For Web 0701x190.417188.9253

CanonCanon EOS 10Dnorm2x190.09990.4197

Sony EricssonK800ivariable2x190.059689.9304
IrfanView 0902x290.059689.9304
SONYDSC-W1 2x190.059689.9304

OLYMPUS IMAGING CORP.u700,S700variable2x190.02490.2869

OLYMPUS IMAGING CORP.uD800,S800variable2x189.112289.3138

NIKONNIKON D40FINE2x188.366688.3729

Sony EricssonK800ivariable2x188.067287.9468


Photoshop Save As 091x188.036690.9342

AppleiPhone 2x287.968887.9329

OLYMPUS IMAGING CORP.uD800,S800variable2x187.761388.2625

FUJIFILMFinePix F700normal2x187.463187.1065

Photoshop Save For Web 0601x185.587882.8867

Photoshop Save As 081x183.878789.1117

FUJIFILMFinePix S5000normal2x182.719782.5478

Photoshop Save For Web 0511x182.516279.0152

Sony EricssonK800ivariable2x182.007681.878

Photoshop Save For Web 0502x281.588186.9581


Photoshop Save As 062x280.718790.6277

IrfanView 0802x279.937979.8685
FUJIFILMFinePix F40fd 2x279.937979.8685

Photoshop Save As 071x177.393887.1517


Photoshop Save As 052x274.823788.8975

MS PaintMS Paint 2x274.746974.7406

Photoshop Save For Web 0402x272.90180.8121

CanonCanon PowerShot S30video2x172.210269.9584

Photoshop Save As 042x270.457187.3217

IrfanView 0702x270.062170.1315

Photoshop Save As 032x265.855485.9507

Photoshop Save For Web 0302x265.678376.0281

Photoshop Save As 022x262.496785.1483

IrfanView 0602x259.940460.0696

Photoshop Save For Web 0202x258.450171.3408

Photoshop Save As 012x251.502681.9067

IrfanView 0501x15050
JPEG Standard  2x15050

Photoshop Save As 002x246.021480.8089

Photoshop Save For Web 0102x240.203363.3071

IrfanView 0402x239.862539.8893

Related background material


Reader's Comments:

Please leave your comments or suggestions below!

I discovered your application (Thanks for it!) recently and experimented a bit with various jpeg files. I was curious to know what JPEG chroma sub-sampling rates are used in digital cameras and in the photo processing applications that I use. As I expected jpeg files from Nikon D70s and D3100 were displayed as using 2x1 jpeg chroma sub-sampling. What came as a surprise though was the fact that JPEGsnoop indicated that the highest quality jpegs generated from Nikon RAW (NEF) files using Nikon ViewNX2 application and CaptureNX2 application are using 2x2 jpeg chroma sub-sampling.

How this can be explained? Are Nikon software indeed discarding that much of color information from jpeg images by using 2x2 chroma subsampling, or something is recorded in/extracted from ViewNX2/CaptureNX2 generated jpeg's incorrectly?

After looking on the Internet I found claims that CaptureNX2 uses 1x1 chroma sub-sampling in its highest quality jpegs.
Please see the following link for this:

However JPEGsnoop and Jeffrey's EXIF viewer both indicate that 2x2 jpeg chroma sub-sampling is used.

I am confused about this. It would be really interesting to know what is going on with the jpeg files generated by Nikon RAW processing software.

The software versions used were as follows:
ViewNX2 v.2.1.2
CNX2 v.2.4.5 (trial version).
2013-04-11chen c
 Dear Sir:
I have tried "NIKON D50" and its quality mode is fine. I get several different quantization tables. So, I think "NIKON D50" uses variable quantization tables .
However,In you blog, it seems that it has just one table.
Can you explain the difference for me?
Thank you
2013-04-10chen chao
 Today, there are many kinds of cameras which use variable quantization tables such as sumXing PL120 . Do you know how the manufacturers make the different tables ? If there is a base table like the table in MATLAB or not .
Thank you for your help.
 When manufacturers generate the variable quantization tables, it is likely that they are using their own base table and then multiplying it by another scaling factor/matrix. I have not tried to reverse engineer the algorithms, but expect that each manufacturer will probably have its own method.
 How about the quantization and quality for ACDSee Pro?
2012-01-30dave bassett
 Hi Kevin,

i know this is an oddballl question, but i design cameras and have a micron 1.3MP sensor feeding a jpeg compressor IC, and the IC tells me things are fine. it outputs a standard JFIF header and then outputs a quadword of bytes with a byte count to the end of the image. i get my 0xFFD8 and count the appropriate byte count looking for the 0xFFD9, which never shows up, nor is in any previous byte, nor is it following. i am not sure what could produce this type of behaviour except possibly that the BT656 front end is counting bytes per line and then a number of lines, but never sees the VSYNC so just keeps going. i know the reason is highly dependant on the unknown internals of the IC, but i was wondering what your thoughts or insights might be on this. FYI, things work fine on an eval board, and there is some noise on my traces because i have 2 boards wired together on the 656 interface. i have color bars, and the byte count reported is very high (40K) vs. 11.5K on the working eval board. in all probability, the noise is being DCT'd as a ton of pixel variance. i also have seen tv encoders work with this amount of noise on the 656 interface before, and they do ok - noise on the monitor, but SOI and EOI are o.k.


dave bassett

you have given more than one quality factor for same camera name and model what is its mean if we want to create a quantization table with the help of quality factor for that which factor we will use for clearity of image.For sony K800i you gave quality factor 95.14 for lum which do not give clear image and snoop gives 96.15 which give clear image. I am using standered quantization table to create the any quantization table with the help of quality factor.

thanks & regards,
roopa saini
 Hello Calvin,
I'm trying to get the jpg quality based on this code:
The results look good for high quality images but low quality I get obvious wrong results like something negative or otherwise unrealistic compared to the results of your tool. So I'm asking how you get the jpg quality, could you please point me to the right direction or give me a hint?

Best regards,
 Hi Kevin -- the formula presented in that code is based on an average of the AC coefficients; there are many different ways that "quality" can be calculated. Since lower-frequency DQT coefficients tend to have a greater impact on quality than higher-frequency coefficients, it is often useful to compare against the distribution seen in the ITU-T standard tables. JPEGsnoop uses an algorithm that is based on the reverse of the IJG quality scale factor, and is described in my comment on 2009-12-11 on the JPEGsnoop page comments. Hope that helps!

i used below 60% quantization table and got the image

Q-table for 60%

13 9 8 13 19 32 41 49
10 10 11 15 21 46 48 44
11 10 13 19 32 46 55 45
11 14 18 23 41 70 64 50
14 18 30 45 54 87 82 62
19 28 44 51 65 83 90 74
39 51 62 70 82 97 96 81
58 74 76 78 90 80 82 79

But when i use photoshop then the 60% compression factor result using photoshop looks significantly better than the result which i get while using the above mentioned Q table . Any reason for this ?
 Photoshop's "Quality 60" is not based on the IJG scale-factored "default" table in the JPEG standard annex. Instead, if you look at the DQT for the Photoshop's Save As (60), you'll see that most coefficients are in the range 4-31, whereas the range you show is 10-97.
2009-05-16Hannes Mayer
 Many thanks for the really good and detailed information. Now I know much more about jpeg.

I am on the way of buying a new digi cam - Canon Digital IXUS 990 IS or similar. I am now wondering that they only support FINE as quality setting which results in

  Precision=8 bits
Destination ID=0 (Luminance) DQT, Row #0: 1 1 1 2 3 6 8 10 DQT, Row #1: 1 1 2 3 4 8 9 8 DQT, Row #2: 2 2 2 3 6 8 10 8 DQT, Row #3: 2 2 3 4 7 12 11 9 DQT, Row #4: 3 3 8 11 10 16 15 11 DQT, Row #5: 3 5 8 10 12 15 16 13 DQT, Row #6: 7 10 11 12 15 17 17 14 DQT, Row #7: 14 13 13 15 15 14 14 14 Approx quality factor = 92.96 (scaling=14.08 variance=5.28) ---- Precision=8 bits Destination ID=1 (Chrominance) DQT, Row #0: 4 4 5 9 15 26 26 26 DQT, Row #1: 4 4 5 10 19 26 26 26 DQT, Row #2: 5 5 8 9 26 26 26 26 DQT, Row #3: 9 10 9 13 26 26 26 26 DQT, Row #4: 15 19 26 26 26 26 26 26 DQT, Row #5: 26 26 26 26 26 26 26 26 DQT, Row #6: 26 26 26 26 26 26 26 26 DQT, Row #7: 26 26 26 26 26 26 26 26 Approx quality factor = 88.24 (scaling=23.52 variance=21.42)

whereas I currently use a casio EX-S880

with this tables

  Precision=8 bits
Destination ID=0 (Luminance) DQT, Row #0: 1 1 1 1 1 1 1 2 DQT, Row #1: 1 1 1 1 1 2 2 1 DQT, Row #2: 1 1 1 1 1 2 2 2 DQT, Row #3: 1 1 1 1 1 2 2 2 DQT, Row #4: 1 1 1 2 2 3 3 2 DQT, Row #5: 1 1 1 2 2 3 3 2 DQT, Row #6: 1 2 2 2 3 3 3 3 DQT, Row #7: 2 2 3 3 3 3 3 3 Approx quality factor = 98.07 (scaling=3.86 variance=3.79) ---- Precision=8 bits Destination ID=1 (Chrominance) DQT, Row #0: 1 1 1 1 3 3 3 3 DQT, Row #1: 1 1 1 2 3 3 3 3 DQT, Row #2: 1 1 2 3 3 3 3 3 DQT, Row #3: 1 2 3 3 3 3 3 3 DQT, Row #4: 3 3 3 3 3 3 3 3 DQT, Row #5: 3 3 3 3 3 3 3 3 DQT, Row #6: 3 3 3 3 3 3 3 3 DQT, Row #7: 3 3 3 3 3 3 3 3 Approx quality factor = 98.39 (scaling=3.22 variance=0.43)

Is it worth to switch from 8 MPixel to 12MPixel with that bad quality settings?

Thanks for your advice.
 Interesting question -- from a pure compression quality perspective, it does appear that the Casio presents less compression than the Canon (presuming that the Canon does only offer the fine quality mode). But the compression quality is only one factor in comparing image quality -- the quality of the image entering the compression stage is usually more important. This is dictated by the lens quality, sensor noise characteristics and software processing. Theoretically, the Casio may be able to retain more detail out of the capture (following the other stages mentioned here), but that doesn't mean much if the Canon's lens and sensor characteristics are far better (for example). There is also the moderate difference in resolution: with a 12 MP capture, it is possible that some compression quality was traded off to ensure that file sizes remained manageable. There are many online debates that discuss the merits of extra resolution vs compression and image quality.
2009-03-05rajat rastogi
 I want to get Luminance 90%, Crominance 90%, for that I used the quantization table for fuji. But when I analysed the output image using jpegsnoop, it showed me the image quality i.e. luminance and chrominance to 82%.

Please suggest me some accurate quantization tables to get 90% Y & 90% chrm.
 First, it's important to understand that JPEG quality factors do not represent a percentage (ie. 100 should not be read as 100% or perfect quality, etc.). The "Approximate quality factor" displayed by JPEGsnoop represents the closest (statistically-speaking) quantization matrix produced by scaling the JPEG Standard's sample tables (using the IJG scaling formula). If you want to produce an image that matches "Approx quality factor: 90", then you should be able to copy IrfanView's quality 90 tables, for example. Good luck!
 Would it be possible to add jpeg quality information for FastStone Image Viewer.
Just as a small test I converted a 24bit BMP file into JPEG with both FastStone (FS) and IrfanView (IV) at 90 and 100% quality settings. On-screen, the two FS files are almost indiscernable from the original BMP, but the two IV files appear to be 'brighter'.
Also the file sizes are very different:
90% FS 300kB IV 400kB
100% FS 750kB IV 1800kB

I'm keen to know the process or formula of calculating the Quality level based on the quantization table. I understand (based on JPEGSnoop documentation) that it is based on comparing the quantization table to a known table from the JPEG standard but eagerly looking for more information.
 Funny enough, a short paper (2004?) on using the matrix for forensics:
Digital Image Ballistics (PDF)
They note getting samples from dpreview .
 Yes, Hany Farid has authored a number of very interesting articles in this field. This is one of the few analyses that are objective and straightforward enough to implement in software -- hence the reason I added it to JPEGsnoop. However, the part that is far more involved than one might expect, is the method to "eliminate entries from images that have been edited"! To accomplish this, I had to develop quite an extensive set of heuristics to filter out the edited photos. If you have an interest in image forensics, it is well worth having a look at Hany's other articles.

As for sourcing images from dpreview or other websites, it became apparent quite quickly that a significant number of images on these review sites (and manufacturer's sites) have been edited, even though one would have expected them to be original images!
 The above approach may be subtly flawed. I think some camera makers may use a size-priority scheme to create a quantization matrix for each image. I don't know why they would do this, maybe more accurate frame-remaining count? Anyway, I see this on my fujifilm s6000fd where normal is always around 1.5mb and the matrix changes around a bit. I know nikon has a size-priority setting on some slrs. Curiously, they also have an optimized quality setting, which may be the reverse of size-priority (more difficult to compress material actually compressed less?). Anyway, I should get around to playing w/ jpegsnoop on some cameras. Thanks for the great tool for the inquisitive mind.
 You're right in that there are quite a few digicams that are beginning to use variable quantization matrices (which I've been calling variable compression).

I ran into this early on in compiling the list of compression tables that I've posted online. As a result, I generally decided to omit quality values from cameras that appear to use such a variable scheme. One plan I had was to later augment the list to show the upper and lower bound of these compression quality ranges. Some digicams exhibit huge ranges in compression quality -- enough so that it can become an issue.

Interestingly enough, a file-size priority is generally a poor choice if overall image quality is a concern. Images with finely detailed content (at low ISO/noise) will not be as "compressible" as low-detail images. Therefore, these should result in larger file sizes. Conversely, a bland, flat image will compress easily, allowing for much small file sizes with the same quantization table.

Unfortunately, restricting all JPEG image output to a target file size will generally go against the goal of preserving image quality. For detailed images, you are artificially reducing the compression quality, making JPEG artifacts visible. For low-detail images, you unnecessarily increase file size with little gain in image quality. This is why I'm not particularly keen on the idea of file size priority for general shooting, unless you are trying to keep image sizes to some maximum for some reason (email, etc.)

The other approach, optimal quality priority, does seem to serve a reasonably good purpose, as it should shift the compression quality higher if it detects that the image content necessitates it. My guess is that it works the other way around: starts with the highest compression quality allowed (e.g "fine" level), and if the image content appears to be not particularly complex, it reduces the compression quality (increasing the DQT coefficients) until a compromise is reached.

In developing JPEGsnoop, I have seen thousands of user-submitted compression signatures. From these, I have been able to quickly identify the types of cameras that are using such variable compression scheme (certainly common among Fuji digicams) and the ranges selected for each model.

What I find interesting is how the camera makes the decision about what scaling factor to use to produce the alternate compression tables, and whether the user has any choice in this selection process.
2007-07-19Brian Szymanski
 Well, I'll be. I am using the "fine" setting.

I'll have to play with the menus to see if I can find the setting in question and then I'll re-submit.


PS - Yeah, it is kind of scandalous that their images were touched in photoshop.

Ok here's the complete table for the 3 settings (now that I found them!) ===normal===
... snipped ...
approx quality factor = 72.21
approx quality factor = 69.96

... snipped ...
approx quality factor = 92.96
Approx quality factor = 88.24

.. snipped ...
Approx quality factor = 97.24
Approx quality factor = 95.17
 Thanks Brian!
2007-07-19Brian Szymanski
 By the way, if you want to add to your table:
Canon SD800 IS uses this table:

 1  1  1  2  3  6  8 10
 1  1  2  3  4  8  9  8
 2  2  2  3  6  8 10  8
 2  2  3  4  7 12 11  9
 3  3  8 11 10 16 15 11
 3  5  8 10 12 15 16 13
 7 10 11 12 15 17 17 14
14 13 13 15 15 14 14 14
approx quality factor = 92.96

 4  4  5  9 15 26 26 26
 4  4  5 10 19 26 26 26
 5  5  8  9 26 26 26 26
 9 10  9 13 26 26 26 26
15 19 26 26 26 26 26 26
26 26 26 26 26 26 26 26
26 26 26 26 26 26 26 26
26 26 26 26 26 26 26 26
Approx quality factor = 88.24
 Thanks... I have looked at samples from the Canon SD800 IS and I am seeing better quality than what the tables you've included would suggest. Is it possible that you are using a quality setting other than "Super Fine"? If so, let me know what setting you're on (in JPEGsnoop you can turn on MakerNotes and you'll see it under Canon.CameraSettings1 in the parameter "Canon.Cs1.Quality". My guess is that you're using the "Fine" setting. In general, I try to publish the highest quality setting available, but it would be nice to add other quality settings to show the difference.

Interestingly enough, when I was searching for examples photos from the Canon SD800 IS, I had a look at Canon's official sample gallery for this camera. What really surprised me is that Canon's provided sample photos have actually been edited in Photoshop! Of all sources, this is one that I would have expected to provide the original, unmodified photos. Perhaps they used Photoshop simply to resize the images (and sharpen?), but I think this is pretty misleading.
2007-05-07Charlie Davis
 This is one of the most informative sites that I have found in ages! Thanks for creating it and the little JPEGsnoop program.
 Thanks Charlie!
 That really great info

If possible i would like to ask ... is there any know equation between the quality factor and compression ratio
(For example if quality factor = 50 >> you have 2:1 compression ratio)
In other words how mach reduction the quality factor introduce to the image
without considering the entropy coding...:)
Thanks a lot!
 Unfortunately, not with the standard JPEG compression algorithm -- it is highly dependent on image content. This can be readily observed when one compares the file sizes of different photos from the same digital SLR. A photo of a plain blue sky with ISO 100 will result in a much smaller file size (and hence higher compression ratio) than a high-ISO photo of something very detailed. This is one area where JPEG2000 offers advantages (predictable bitrate).

In JPEG, you would generally have to perform an iterative process of multiple compression attempts to come up with a given file size or compression rate.
2006-10-19paul meusburger
 I am submitting a large tiff file to the printer (1200mm x 1786mm x 300 pixels per inch. Which jpeg compression should I tell him to use to get the best results? The picture was taken in RAW (Canon Pro1) converted to tiff with no image compression, interleaved pixel order and a byte order for IBM PC and then interpolated with Genuine Fractals Print Pro software from LizardTech (Version 4.0.1103)
 If you are submitting to a commercial printer, you should generally stick with a lossless compressed format (such as TIFF) rather than JPEG. I assume that the only reason you're asking about going to JPEG is so that you can reduce the overall file size prior to uploading to the printing service (otherwise you'd simply print directly from the TIFF). He (at the printer) shouldn't be doing any conversion to JPEG from the interpolated image.

I don't have any experience in trying to send upsampled JPEGs to an online printer, and so others might have better suggestions for you on this front. Good luck!


Leave a comment or suggestion for this page:

(Never Shown - Optional)