Color Management: Rendering Intents

Of course you've seen them: Perceptual; Relative Colorimetric; Saturation; Absolute Colorimetric. But do you know what they are; what they're for; what they do?

Mikeadams10093922

Of course you've seen them: Perceptual; Relative Colorimetric; Saturation; Absolute Colorimetric. But do you know what they are; what they're for; what they do?

Well, what they are is rendering intents. What they're for is for handling situations in which you've got to convert color information from one color space to a different color space with a smaller gamut, and what they do is determine how that conversion is made.

That's also all they do, by the way. Sometimes you may get into a situation where you have an image that isn't working for you and you try anything and everything and finally you stumble across rendering intents and click through them and one happens to solve your problem on that one image. Don't assume that therefore it's magic bullet and you can use it all the time. All you've done is discover that for the particular image you're working with you've solved a particular problem in a particular way. The next problem image you have may have an entirely different underlying issue.

 

Rendering Intents--Differences

So why are there four of them and how are they different? Because depending on what your image is, or how it's going to be used, you might want to handle how you get out-of-gamut colors into gamut differently.

Incidentally, there are also only four. In some cases with some 'dumbed-down' printer drivers or applications or the like, you might see them described as "photographic" or "graphics" or some-such, but that's just ‘helpfulness’ on the part of whomever it was that wrote that particular application. Behind the scenes, there are just perceptual, relative colorimetric, saturation, and absolute colorimetric.

So for which to use and in what instances, the first thing to keep in mind is that every ICC profile or color space has as its basis point its white point. So that if you're moving from one color space to another (and just for illustrative purposes here think of any ICC profile as a color space) the first thing you've got to determine is whether or not to move from the originating color space white point to the destination color space white point.

Most times and most cases in this industry you do. Unless you're doing some very specific proofing it's almost a given that you'd want to. If you're printing an image for final sale in just about all cases you obviously want to print the entire range of colors available to you in a color space rendered accurately on the media on which you're printing.

For that reason, three of the rendering intents do make the conversion from originating white point to destination white point.

Those three are perceptual, relative colorimetric, and saturation.

So how are they different?

Well, let's just say that you've got an image with a lot of subtle green shades in it running from midtone out to deep shadow, and let's just say that your printer runs out of gamut about midway along their scale. If all you did was just compensate for the new white point and then move out of gamut colors into gamut, what would happen is that you'd lose all your detail in the green areas past the gamut boundary of the destination space (your printer.) For example, maybe where you had a leaf with some nice detail in it, you’d just wind up with a solid green blob.

So what the perceptual intent does is make a determination to move some in gamut colors--basically by lightening them--in order to keep this clipping, as it's called in the trade, from happening.

Great, right?

Maybe. But what if you've got an image that's got a corporate PMS color right on the gamut boundary and you want to nail that color, and that's really all your client cares about?

Perceptual will helpfully lighten it up for you each and every time.

So that brings up relative colorimetric. Relative because it's compensating for the new white point, colorimetric because it's just making color value moves to the destination space, and leaving in-gamut colors alone.

Saturation also makes the move from the originating white point to the destination, but what it does is make an assumption of what's the most saturated color value for out-of-gamut colors in the new gamut, and moves them there.

And finally absolute colorimetric does not make the move from originating to destination white point. It's pretty much strictly for certain proofing applications and doesn't have a whole lot of use in the business of actually reproducing images for sale.

Making Color Assumptions

So that seems pretty straightforward, right? No.

Read over the descriptions one more time and you'll see that two of the four rendering intents have to make assumptions. The ones that aren't colorimetric, that is. The colorimetrics are both making mathematical calculations based strictly on numbers fed them by the color management engine, but perceptual and saturation, they're making decisions about where to put colors based on...well, what do you suppose?

Based on whatever instructions were written into them at the time the destination profiles in which they reside were made.

And here's where it gets a little tricky. You might make an assumption that if you're converting from one color space to another using the perceptual rendering intent, that the ICC profile would use the gamut of your originating color space or of your image itself on which to base its final output.

But you'd be wrong.

What it uses is best described as an internal source gamut. And that source gamut is in the end determined either by the maker of the profile, or by the software the maker is using. It has no idea what your original image is, or what color space it was in. That's just the way it works. And what's not too well understood is that there are several profile-making engines out there, and each of them handles this process in its own way.

Some of them are pretty good at it. Some of them, not so much. Some of them give the maker of the profile a lot of flexibility to determine the limits and range of the perceptual intent at the time the profile was made, and others none at all.

Same thing holds true with saturation. It doesn’t use a source gamut, per se, since it doesn’t need to, but it does make saturation assumptions based on whatever values and determinations were written into the particular profile you’re using when that profile was written. I was reminded of this recently when I was looking at some profiles made by the profile-making engine of one of the leading RIP manufacturers. The colorimetrics looked reasonable, the perceptuals looked okay--if not exactly stellar--but the saturations were just surprisingly horrible.

The important take-away is that there aren't any hard-and-fast rules or ICC conventions that determine how perceptual or saturation rendering intents are created inside a profile.  Point of fact there isn't even a convention that requires they exist at all. It's possible in some profile-making engines to simply not make them. (And you might be surprised to find in just how many stock profiles that are floating around out there, they don’t.)

The further compounding element in determining which rendering intent to use for which images and in which situations is Black Point Compensation (BPC). The best way to think of BPC is to think of it as perceptual rendering intent for black only. BPC can be very handy for holding shadow detail in images where the maximum black of the originating image is greater than the maximum black capability of the final output device.

What BPC does—as its name suggests—is compensate for the difference in black points between one color space and another in the relative colorimetric and saturation rendering intents only. At least so Adobe tells us and for the most part I take them at their word. On some machine profiles sometimes if you look you can see some subtle shifts in shadow detail by turning BPC on and off in perceptual, but for the most part, it’s assumed that if you’re using perceptual the black point compensation has already been handled by the rendering intent itself.

Anyway many times when you’re printing a large gamut image to a large gamut  device, relative colorimetric with BPC on will achieve the best overall result. In fact many photographers have gone to this workflow as pretty much their de facto default. If you’re printing tiffs from Photoshop, it’s certainly worth considering.

However, BPC is an Adobe feature and it’s not available on any of the major RIP’s—or minor ones, to my knowledge. So if you’re printing through a RIP, relative colorimetric with BPC on is not an option.

Like so many other facets of color management, the idea of rendering intents is pretty straightforward and the basics of rendering intents do not change from one application to another. Once you’ve conquered the basics, they don’t change. However, also like so many other facets of color management, while the basics are straightforward sometimes the execution requires patience, perseverance, and an understanding that all this stuff was built by people, and like anything else, it’s only as good as the people that made it.