India Point Park

India Point Park
by matt-ball                

Submit your Photo
Hall of Fame

Please participate in Meta
and help us grow.

Photography Stack Exchange is a question and answer site for professional, enthusiast and amateur photographers. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Can someone explain to me, what's the difference between those to terms. I mean the space encoding I understand it as given the color space we define the depth (in bits) and value ranges that color space will have. But I don't get the idea behind the image encoding.

I've reading and sometimes both Color Image Encoding and Color Space Encoding use the same color space so I cannot see the difference, I guess it is more subtle.

share|improve this question

From "Color Management: Understanding and Using ICC Profiles", edited by Phil Green :

  • Color image encoding: digital encoding of the color values for a digital image (Derived from: ISO 12231)
  • Color space: geometric representation of colors in space [...] (CIE)
  • Color space encoding: digital encoding of a color space, including the specification of a digital encoding method and a color space value range (ISO 12231)


  • we have colors, what we perceive with our eyes (native colors). These colors are somehow mapped into space, let's say a plane. See this chart. All the colors supposed to be on this chart (not on your monitor, because your monitor is limited to reproduce colors as well, but theoretically).
  • Now, we would like to somehow describe points on this chart, points of this color space. Notice that there are infinite many points here, and we would like to use bits and bytes to describe those points (colors).
  • If we could use hundreds of bits to describe the colors, we could just use the X and Y coordinates, and we would have a very good color reproduction system. However, we want to use only a few bits, maybe a few bytes to describe a color. From this, we get different approaches for color space encoding - some go for better color reproducibility, others go for smaller amount of data to be used.
  • If you compare (sRGB)[] and (Adobe RGB)[] - these are two color space encodings -, you will see that the triangle on these charts is different - that triangle shows which colors can be reproduced using the encoding. This is called the gamut.
  • The color space encoding not only describes the gamut, but also how fine the resolution is between color points.

Okay, so far this was about colors. There was no mention of any image, or video frame, or printed picture, etc.

So when you create a photo, your camera maps the native colors to a color space your camera uses (AdobeRGB, sRGB, ProPhoto, etc). Then, you have pixels, and those are described with bits/bytes, e.g. 3 bytes per pixel for your photo describing the color of each pixel.

Now, if we just take all the pixels as a raw image, there is no color image encoding - the image is just a representation of color points (in the color space encoding), as is.

However, if you create your photos in e.g. JPEG, there are additional transformations from the raw pixel-color data to another format. This is called image encoding, and can include color space transformation, downsampling, and all kinds of data manipulation. (For the full list for JPEG, see this page.)

So to sum this up:

  • color space encoding: handles the problem of native color representation in digital format, and ends up with bits and bytes describing a color.
  • color image encoding: handles the problem of having bits or bytes of color as pixels, and ends up with pixel data transformed into a more space-efficient (or whatever more usable) other format.

I hope this is clear :-).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.