_ Photo CD Home | Basics | Advanced | Software | Make Your Own | Links email me!

Image Pac compression and JPEG compression: What's the Difference?


The answer to that question could really get long winded! Here are some key differences (with some additional explanation below):

The JPEG image compression scheme uses mathematical algorithms based on a function called DCT (Discrete Cosine Transform). The DCT defines a mathematical relationship between pixel values in 8 by 8 pixel blocks. The data that represents the DCT relationship is compressed by using a quantizing function (giving away a little accuracy). The resulting quantized data can be very efficiently compressed. A decoding scheme follows the mathematical steps in reverse order to rebuild the image, resulting in a file that is nearly the same as the original (but NOT really).

The amount of compression can be varied by the fineness or coarseness of the DCT coefficient quantization. There's a "catch-22" in the use of DCT based compression: you can get a lot of compression, but be left with an image that shows degradation, or you can minimize degradation, but not get a much less compressed image. JPEG provides the user an opportunity to trade off file size for image quality, or vice-versa.

JPEG introduces perceivable, and potentially undesirable artifacts that relate to the 8 by 8 pixel quadrants used in the DCT algorithm. There may be applications where JPEG compression is not desirable because of this. The Image Pac approach avoids noticeable loss, and so may be a more desired method in applications where artifacting is likely to be noticed.

On the other hand, JPEG can very efficiently compress an image with minimal loss, and there are applications where this is acceptable. Using a small data file to represent a large image on a computer screen (e.g., the Base files in our Image Offering) is a perfect use of JPEG compression. The small file size insures rapid delivery across a network. Viewing the unenlarged file on a computer screen will not display artifacting to any noticeable extent.

Image data loss (and resulting artifacting) may not be noticeable at first display, but may be magnified upon further image processing. That's why it is a good rule of thumb to reserve JPEG only for use in compressing a finalized file for transmission or storage, and not as an interim format for successive versions of a manipulated image.

If you'd like to learn more about JPEG compression, check out the JPEG image compression FAQ.

The Image Pac file format

The Image Pac format was developed before JPEG was a standard, and uses a different approach to compression. It is not just timing that resulted in different approaches to image compression though. We developed the Image Pac format to meet specific needs that a straightforward DCT based approach would not. Kodak has been working with DCT based algorithms long before the establishment of the JPEG compression standard.

The Image Pac approach incorporates a hierarchical decimation (reducing the number of pixels used to represent the image) and interpolation function (restoring the number of pixels in the image), used to insure that image files can be efficiently rebuilt in varying resolutions. The same data is used to build differing image resolutions from the Image Pac file-- the data from the Base image is used to construct the Base*4 image, and the data from the Base*4 image is used to construct the Base*16 image.

Several characteristics distinguish the Image Pac approach:

A couple of key aspects to avoiding the loss of image detail:

  1. Luminance data is compressed less than chrominance data because it has a much higher impact on noticeable detail
  2. "Residual" files are used to help rebuild the compressed image files in a more exacting way

Residual files are generated by comparing the original, uncompressed file and the file that has been interpolated (restored to original size following decimation). The residual represents the data lost in the decimation-interpolation process. The residual file is the key component to rebuilding a more exact representation of the original. Take the decimated file (smaller by a factor of four), interpolate it up to original size, and you have a representation of the original that suffers from data loss-- data was thrown away in the decimation process. But if you add to that interpolated file the residual data, you end up with what is essentially a fully restored original!

The Image Pac compression process uses quantizing to compress the residual data, and so there is some data lost that is not restored. It is very little, and not visually noticeable, but it is not accurate to say it is zero.

A rough sketch of the steps in the KODAK Photo CD Image Pac compression scheme:

  1. Complete high resolution scan (Base*16)
  2. Convert pixel data into luminance and chrominance data (YCC)
  3. Decimate the Base*16 files (represent the image with 1/4 as many pixels) to end up with a smaller file (Base*4)
  4. Interpolate the file back out to high resolution, or Base*16, size
  5. Compare the difference between the original Base*16 file and the interpolated Base*4 file, and save the difference (the residual)
  6. Repeat the decimation process to get a Base file and residuals from a Base*4 file
  7. Repeat the decimation process to get a Base/4 file from a base, and a Base/16 file from a Base/4 (these "thumbnails" are stored without residuals)
  8. Repeat the entire process for the chrominance channels
  9. Store the uncompressed Base, Base/4, and Base/16 files, and the quantized (compressed) residuals for the Base*4 and Base*16 files
  10. Store the data in a way that allows it to be rebuilt using Photo CD enabled software

Because the residuals are quantized, the resulting Image Pac file rebuilds high resolution files that have "lost" some data. The loss is not visually perceivable though. For all practical purposes, the compressed and original files look the same.