Understanding Rendering
Intents
Background
Let's take a break from print driver settings
this month and talk about rendering intents. Rendering intents are
an often misunderstood concept of color management that can affect how
you use your ICC profiles. As usual, I'll try to keep things as
simple as possible in order to assist in the understanding of how
rendering intents affect results when you select perceptual, relative
colorimetric, saturation, and absolute colorimetric intents when using
ICC profiles. That said, it is impossible to discuss this subject
accurately without getting into some technical detail so if you feel
like you are getting lost, stick with it and we'll summarize it in the
end to hopefully put some meaning into the tech talk. If you've
read information on other sites regarding rendering intents and you
think you know all there is to know about them, please read on as there
is an abundance of inaccurate information on the web regarding rendering
intents and how they actually work.
Why are rendering intents needed in the
first place?
Color management (the use of ICC profiles) is a
game of give and take and involves many compromises. The main
reason that we make compromises in color management is because the gamut
(range of colors available) on one device is often very different from
another. A bright saturated blue color displayed on your monitor
for example may not be reproducible on your printer because your printer
simply cannot make that color. In this case, we would say that the
example blue color is in the monitor's color gamut but outside the
printer's color gamut. Trying to reproduce a reasonable visual
representation for colors that are out of range on a device is what
rendering intents are all about. For example, we may use tricks
like reducing the saturation of the entire print so that a color that is
out of range still appears a bit more vibrant than ones that are in
range. Rendering intents simply use different methods to
"trick" the eye into believing that the print can reproduce
irreproducible colors.
Visual representation of color gamuts
The above represents the gamut of colors
available in the Adobe RGB color space (red wire frame) and the gamut of
the Canon i9900 printer using Canon Photo Paper Pro (solid color
gradient). The hue and saturation of the color (red, green, blue,
orange, etc.) is represented in the 2 dimensional X/Y axes while the
luminance (brightness) is on the Z axis. The red wire frame shows
the range of all possible colors available in your image if your image
is stored in Adobe RGB color space. The solid gradient indicates
the range of all possible colors reproducible by your printer. As
you can see, most of the printer's color gamut is contained within the
Adobe RGB wire frame but small sections like the bright yellow peak that
protrudes through the Adobe RGB gamut (middle-left) indicate that there
are some colors that the printer can reproduce that cannot be captured
in the image. There are also large sections of the Adobe RGB color
space like the empty space in the wire frame on the bottom-right that
indicate colors that might be present in your original image that cannot
be reproduced by your printer. It is the handling of these "out of
range" colors that we'll refer to in discussing the rendering intents
below.
Relative Colorimetric Intent
If we look at the 3D gamut representation above,
we can see that our Adobe RGB images might have colors (lower right of
the red wire frame) that cannot be reproduced by our printer and that
same image might also have colors that are inside both the solid
gradient and the wire frame, indicating that those colors are in our
image and they are reproducible on the printer. One way to handle
the mismatch of gamuts is to: (a) render all colors that are present in
the image and are directly reproducible by the printer to
the proper color and (b) render all colors that are outside
the printer gamut to the nearest color on the edge of its gamut (called
the "gamut hull"). The gamut hull, visible in the above graphic,
simply represents the extremes of what the color space or device can
reproduce and usually represents colors that are bright and saturated.
Other colors inside the hull (not on the surface) are simply colors that
are less vibrant so that they are not as close to the extremes of what
the color space or device can reproduce.
Looking at the gamuts above, all colors that are
inside both the solid gradient and also the red wire frame are not a
problem: we can render those directly from the image color to the same
color on the print. Colors that lie inside the wire frame but are
outside the solid gradient are colors that are in your image but are not
reproducible on the printer. For those, we look at the gamut hull
(solid gradient above) and we pick the point on its surface that is
closest in distance to the color we are trying to make in the wire
frame. This method obviously has some drawbacks. Since there
are many colors inside the image gamut that can map to the same point on
the printer gamut hull, it means that we may see banding in our prints
as a particular gradient (like blue sky for example) might all map to
the same spot on the hull of the printer's gamut. On the positive
side, at least all of the colors that are reproducible by the printer
are reproduced accurately.
Note that the small section
of yellow that protrudes through the wire frame indicates colors that
the printer can reproduce but cannot be contained within
our original image. Since the image cannot contain those colors,
we need not worry about trying to reproduce them in the context of
rendering intents because they cannot be present in the image.
Perceptual Intent
As mentioned above,
relative colorimetric intent has the benefit of being able to reproduce
all colors that are reproducible. That is, if the printer can
reproduce the color, it will... accurately. The down side to
relative colorimetric intent is that we often have images that exceed
the printer's gamut and when this happens, we may see banding (sometimes
called posterization) of color in the prints.
Perceptual intent is a
rendering method that tries to get around the fact that out-of-range
colors might result in banding. With perceptual intent, we
compress or "squash" the gamut of the image down a bit so that not as
much of the wire frame sticks out beyond the solid gradient of our
printer's gamut. If we squash the gamut of the image so that the
wire frame is smaller, there won't be as many colors in the image that
can't be reproduced on the printer. This will eliminate or at
least reduce the amount of banding in the prints because more colors (in
our image) are now in range of the printer.
When we artificially squash the image gamut down
to try to fit more of it inside the printer's smaller gamut, we
generally end up with a print that has reduced saturation. If we
reduce saturation by only a little, our eyes may not notice the
difference on the print other than the colors not being quite as vibrant
as those under the non-squashed relative colorimetric intent. All
things being relative, the print can look better because although it is
a bit less vibrant in color, the banding present in the relative
colorimetric rendering is gone or at least reduced substantially.
Other than reduced color
vibrancy, there is another down side to perceptual intent. The
current ICC CMM (color management model) is not a "smart" model meaning
that it cannot and does not examine the gamut of the actual image
before trying to compress it to fit in the printer's gamut. While
the gamut available to your original image (the red wire frame) is
large, your actual image may only contain a few dull colors like some
green foliage and people wearing light pastel clothing. All colors
in your image in this case may be reproducible by the printer. A
"smart CMM" might be able to look at the original image and determine
that it doesn't need any squashing to be printed.
Unfortunately, the CMM does not have any knowledge about the image being
rendered and must perform a sort of "blind rendering" that assumes that
all possible colors must be taken into account whether or not they
actually exist in your image!
Some misinformation on the
web would lead you to believe that because the CMM cannot account for
image gamut, that it simply compresses the entire gamut of
the color space used by the image so that it fits inside the printer's
gamut. This is, however, also not true. Squashing the entire
color space where the image resides into the printer's color space would
amount to taking the entire wire frame above and shrinking it in size so
that no corners protrude through the printer's solid gamut in the
diagram. As you may be able to see by the graphic, that would be
an extreme amount of compression that would result in noticeable color
desaturation. In addition, it would mean that the same image
encoded in two different color spaces of different sizes (say sRGB and
Adobe RGB) would result in two different prints with different amounts
of desaturation even though the original images should appear the same
as they both have all the same colors: they are just encoded
differently.
What all this amounts to is
the fact that perceptual intent basically uses an arbitrary amount of
gamut compression (squashing) in order to reduce the banding effects
that might be present in relative colorimetric intent. The amount
of compression, which will show up in the printer's ICC profile, is
really up to the creator of the printer profile. What is normally
done is that when creating a printer profile, the available gamut of the
printer is taken into account and a level of compression is chosen so
that most colors that are likely to be seen in a photograph will be
"pulled back" into the printer's gamut. If it sounds "wishy
washy", that's because it is! Many web sites point out the
original concept of rendering intents and point out that relative
colorimetric intent clips the gamut while perceptual compresses it, but
these "ideal" concepts are not what is ultimately going on behind the
scenes in the CMM.
What does
all this mean?
By now you are probably either kicking yourself
for even reading this article because it seemed so simple before, or
you're getting close to deciding to just use perceptual intent and not
worry about the whole subject of rendering intents. :-) My
purpose, however, is not to confuse but to inform. I want people
to understand the limitations of color management as it exists today and
to understand what is really going on not just the high level concepts.
If I were to try to put all of the above as simply as possible, I'd say:
Perceptual Intent:
Use this method for most of your work especially if you intend to just
set it and leave it alone. Perceptual intent will produce prints
with accurate hue and while overall saturation levels may be a bit less,
you are unlikely no notice this by just examining the print by itself.
In addition, this method reduces artifacts like banding in blue skies.
Relative Colorimetric
Intent: Use this rendering method in certain cases where reproducing
accurate colors is paramount. This rendering intent is often used
when your original image contains only a narrow range of colors.
As an example, if you are reproducing an image of the Grand Canyon and
there are only rust colored Earth tones in the scene, perceptual intent
may take some of the clarity out of the photo because of the compressed
color gamut and because there aren't a variety of other colors present
for our brains to get a relative "lock" on the entire scene. Using
relative colorimetric intent in this case should make the texture of the
rock look more realistic and more defined because all of the colors in
the photo are likely to be within the gamut of the printer due to the
fact that they are not bright, saturated colors.
What about the other intents?
We have two intents left, but I won't spend much
time on those since they are of little/no value when reproducing
photographs.
Absolute Colorimetric
Intent: Absolute colorimetric tries to reproduce the exact colors
recorded in the original scene. Sounds even better than relative
colorimetric until you realize that absolute colorimetric intent
reproduces these colors with no regard (no adaption) for the illuminant
or light source. Simply put, using absolute colorimetric intent
will usually result in awful color shifts because our eyes will try to
adapt to the illuminant (white of the paper, color temperature of the
monitor, etc.) and the same color may look different under different
lighting. As such, absolute colorimetric is used mainly for
reproduction of specific colors like reproductions of fabric or logo
colors.
Saturation Intent: With
perceptual rendering intent, we may sometimes notice that colors have
been a bit desaturated to fit bigger gamuts into smaller ones. To
overcome this sense of desaturation, the saturation rendering intent
tries to keep accurate saturation while shifting other factors like the
hue of the color. This intent can be useful for things like screen
captures, bar graphs, and other images where the hue of the color is
less important than the overall "pop" of the image. Simply put, in
photographs, people are more likely to notice that a stop sign looks too
magenta than the stop sign not being vibrant enough. The converse
is true when displaying a pie chart where people are much less likely to
care that the red in the pie chart looks a little shifted toward magenta
but the presentation may have less "impact" if the entire pie chart
looks dull!
Summary
These are the games we play when trying to fool
our eyes into believing that a print or an image on the monitor looks
the same as it did when it was recorded/captured and what is really
going on behind the scenes when we make the decision about which
rendering intent to use. Hopefully the information in this article
has given you a bit more solid a foundation to stand on when dropping
down that often misunderstood selection called "rendering intent".
Mike Chaney