skip to main content

What are 'Clipped Colors' from ICC Profile Conversions?

You've been told that converting an image from one color space to another can result in clipped colors, but how, why, and where does the clipping actually happen? This article shows you a real-world example of clipped colors in the image itself, in the image color gamut as seen from inside the CieLAB reference color space, and in the image's individual red, blue, and green channels.

Written September 2013. Updated February 2015.

Page Contents

  1. Source and destination color spaces and conversion intents (providing the necessary minimum of technical terminology in two really short paragraphs)
  2. Clipped colors when converting a bright red flower from ProPhotoRGB to sRGB
    1. Clipping after converting from ProPhotoRGB to sRGB caused an obvious loss of detail in the petal highlights
    2. How small is sRGB? sRGB and ProPhotoRGB inside CieLAB
    3. The flower color gamut in CieLAB before and after converting from ProPhotoRGB to sRGB
    4. Clipped colors means lost channel detail
  3. Conclusion and other examples of clipped colors

Source and destination color spaces and conversion intents

When you convert an image from one color space to another, the image's original color space is called the source color space and the color space to which the image is converted is called the destination color space. In the example below, the source color space is the very large ProPhotoRGB color space and the destination color space is the much smaller sRGB color space. Because the destination color space isn't big enough to hold all the colors in the original image, some of the image colors will be clipped upon conversion (unless you soft proof first).

Unfortunately, the often-repeated mantra that "perceptual intent preserves colors" is simply not true for most standard RGB working spaces. Here's why: Perceptual intent requires that the destination profile have a perceptual intent table. Most of the standard RGB working spaces such as ProPhotoRGB and sRGB are matrix profiles, and matrix profiles don't have tables. When you convert an image to a matrix profile, if you ask for perceptual intent, what you actually get is relative colorimetric intent, which clips.

You might think, well, why doesn't the software warn you? and you would be right, on this point all imaging software I've ever seen is downright misleading. You might also think you really want that perceptual intent table, but perceptual intent ICC profile conversions have their own problems, which will be a topic for another article.

Clipped colors when converting a bright red flower from ProPhotoRGB to sRGB

Clipping after converting from ProPhotoRGB to sRGB caused an obvious loss of detail in the petal highlights

I wanted to show you the original ProPhotoRGB image. But some of you aren't using color-managed browsers and some of you aren't using monitors that are capable of showing reds that are more saturated than the reddest sRGB reds (no monitor that I know of can show the reddest ProPhotoRGB reds!). So both flowers in Figure 1 are already in the sRGB color space. The difference is that the flower on the left was soft proofed to look as much as possible like the original image before the conversion to sRGB. The flower on the right demonstrates what happens when you allow your image editing program to automatically convert a bright, saturated image like this flower image from ProPhotoRGB to sRGB without the benefit of soft proofing.

A bright red flower that was converted from ProPhotoRGB to sRGB. The flower on the left was soft proofed upon converting to sRGB in order to retain details in the bright red petals. The flower on the right is the result of a simple straight-up conversion to sRGB such as would happen if you opened the ProPhotoRGB flower with Showfoto after you had chosen sRGB as your default working space, and also chosen the "Settings for Color Management" option to "Convert the image to the working color space". The white outline shows areas where details were lost by the straight-up color conversion.

Two notes about Figure 1: First, unlike the old CRT monitors, many consumer-grade LCD monitors can't display even the more saturated sRGB reds (much less reds that are more saturated than the reddest possible sRGB red). So whether you can actually see the veining details in the flower on the left depends, alas, as much on your monitor as on the actual image. Feel free to download the images and eye-dropper around — the red channel in the image on the left has full detail in the petal highlights.

Second, the point is to show you what clipped colors look like, not to convince you that clipped colors are always a bad thing, so which flower you like the best isn't really relevant (to my surprise, I somewhat prefer the version with the clipped colors). This flower example demonstrates a fundamental truth about converting to a color space that can't contain all of the original image's color gamut: Artistic trade-offs must be made, often between preserving details (the flower on the left) and maintaining bright saturated colors (the flower on the right).

How small is sRGB? sRGB and ProPhotoRGB inside CieLAB

Just how small is sRGB compared to ProPhotoRGB? Figure 2 tells the tale:

Color spaces like sRGB, ProPhotoRGB, and the CieLAB reference color space are three-dimensional. The image above shows sRGB (the gray blob) and ProPhotoRGB (the multicolored wire-frame) as seen from different viewing angles inside the CieLAB reference color space.

Figure 2 shows that sRGB is much smaller than and completely surrounded by ProPhotoRGB. What this means in the digital darkroom is that the very large ProPhotoRGB color space can hold colors that are much brighter and more saturated than the colors that fit inside the very small sRGB color space.

However, the relative sizes of ProPhotoRGB and sRGB aren't the whole story when it comes to color clipping upon converting from ProPhotoRGB to sRGB: First, no real-world image that's in the ProPhotoRGB color space actually has colors that take advantage of all that extra room! And second, when converting to a matrix RGB profile such as sRGB, it's the color gamut of the image itself (and not the color gamut of the source profile) that determines what colors will be clipped upon converting to a smaller color space.

The flower color gamut in CieLAB before and after converting from ProPhotoRGB to sRGB

As you can see from Figure 2, sRGB is much, much smaller than ProPhotoRGB. In fact, it's far too small to hold the reddest reds in the original ProPhotoRGB flower image. So when you convert the image from ProPhotoRGB to sRGB, the colors in the original ProPhotorRGB flower image that are too bright or saturated to fit inside the sRGB color space are simply clipped to the boundaries of the sRGB color space. Figure 3 shows you what color gamut clipping looks like inside the CieLAB reference color space:

On the left is the flower image color gamut (the irregular pink blobs) before the conversion from ProPhotoRGB to sRGB, as seen from inside the CieLAB reference color space. On the right is what's left of the flower's original color gamut after converting to sRGB. All colors in the original image that don't fit inside sRGB are clipped to the boundaries of the sRGB color space.

Color spaces and color gamuts are three-dimensional. The top row of Figure 3 shows you the view looking down the CieLAB L-axis. The botton row shows you the view looking along the CieLAB a-b plane.The gray shapes represent the outer hull of the very small sRGB color space. The left column shows you that many of the colors in the original flower image in the ProPhotoRGB color space greatly exceed the very small sRGB color gamut. On the right is what's left of the original color gamut after the conversion from ProPhotoRGB to sRGB. The colors that exceeded the sRGB color gamut are simply sheared right off at the boundaries of the sRGB color gamut. And now you know why it's called "clipping"!

Remember, when doing a relative colorimetric conversion from a larger to a smaller color space, what matters is the color gamut of the actual image compared to the color gamut of the destination color space. The fact that the source color space holds colors that the image itself isn't using, simply doesn't matter (as an aside, the opposite is true when using perceptual intent).

I didn't show the ProPhoto wire frame because it would have obscured your view of the flower's color gamut. But look at the relative sizes of the ProPhotoRGB and sRGB color gamuts in Figure 2 and see if you can imagine the ProPhotoRGB color gamut wrapped around the image color gamut — as bright and saturated as the original flower image is, it doesn't even come close to filling up the ProPhotoRGB color gamut.

Looking at Figure 3, you can see that after the conversion from ProPhotoRGB to sRGB, a lot of the flower's brighter, more saturated reds were clipped to the boundaries of the sRGB color space. The next section explains where clipping is located when you examine an image in your digital darkroom.

Clipped colors means lost channel detail

Detail in an RGB image is actually channel detail, that is, detail is carried in an RGB image's red, green, and/or blue channels. When colors in an RGB image are clipped upon converting from a larger to a smaller color space, the image looses detail in one or more channels, which means portions of one or more channels have been clipped to either solid white or solid black.

Channel detail for a red flower that was originally in the ProPhotoRGB color space (on the left) and then converted to sRGB (on the right). From top to bottom, the three rows show respectively the Red, Green, and Blue channels before (left) and after (right) the non-soft-proofed conversion from ProPhotoRGB to sRGB.

Figure 4 shows that in the ProPhotoRGB color space (left column), all three channels of the red flower image are fully detailed. After converting to sRGB (right column), the red channel was clipped to solid white in the petal highlights (the areas outlined in black) and the green channel was clipped to solid black over all portions of the red petals.

By comparing Figure 4 with Figure 1, you can see that the visible loss of details in the image after the conversion to sRGB is confined to areas where the red channel was clipped to white. Places where the green channel was clipped to black but the red channel retained detail (wasn't clipped to white) don't show any visible loss of detail.

Red is the dominant color for the flower petals and green is the dominant color for the background foliage. On the one hand, as the red flower example suggests, a large area of clipped color in the dominant channel of a given color (eg the red channel of the red flower petals) usually results in a visible and obvious loss of detail in the image itself. On the other hand, large areas of clipped color in a non-dominant channel (eg the flower petals' green channel) can sometimes be completely lost without any visible loss of detail in the actual image.

What you can't really see from Figure 4 is that the blue channel suffered almost no clipping after the conversion to sRGB. It got brighter in some places (in the magenta portions of the petals — red and blue make magenta) and darker in other places (in the deep red portions of the petals and in the areas of green foliage). But almost none of the blue channel clipped to solid black or white. What this means to you, in your digital darkroom, is that if someone handed you the clipped red flower and said "put detail back into the red flower", you could pull the detail from the blue channel and blend it into the red channel. But that is a topic for another article.

Conclusion and other examples of clipped colors

Well, that's it for an example showing you what color clipping looks like, and I hope you enjoyed this pictorial tour of color gamut clipping during relative colorimetric ICC profile conversions (giving those technical terms introduced at the beginning of the article a little exercise). For additional examples of clipped colors during ICC profile conversions, see Photographic colors that exceed the very small sRGB color gamut, which shows which colors from an interpolated digital camera raw files are likely to be clipped upon conversion to sRGB.