Managing gamut: judgment day
All color spaces are not created equal; the primary difference between them is the size of their gamut. Gamut refers to the number of colors a color space is capable of defining—as I mentioned earlier, its "vocabulary" of colors. More colors, wider gamut; fewer colors, narrower gamut. In the typical RGB-to-CMYK workflow, we will continually be converting from a larger RGB working space to a smaller CMYK output space. This brings up a dilemma: if the source space (RGB) is larger than the destination space (CMYK), how do we deal with the colors in our source space that don't exist in our destination space?
Managing this difference in gamut is the primary issue as we convert from RGB to CMYK. If the gamuts were the same size in all color spaces, it would be a simple matter of matching color in one space to color in another space. However, since larger color spaces will have more colors—a larger gamut—than smaller color spaces, some of the colors in the larger gamut will not exist in the smaller one and are said to be out of gamut. Because the average CMYK output space is smaller than the optimal RGB working space, we have to make judgments about how to handle colors from the source file that are out of gamut for the destination space.
As an illustration, let's look at a typical scenario in the RGB-to-CMYK workflow in which we convert from a larger RGB working space (Adobe RGB [1998]) to a smaller CMYK output space (SWOP2006_Coated3v2).
The Source-to-Lab-to-Destination conversion looks like this: Adobe RGB (1998)-to-Lab-to-SWOP2006_Coated3v2.
A three-dimensional graphic representation comparing the color gamut of each of these two color spaces is shown in Figure 4.5. The larger space (shown in gray) is the RGB working space. The smaller space is the CMYK output space. Another, more analogous illustration is shown in Figure 4.6. The bigger box of crayons is RGB; the smaller box is CMYK. Both graphics illustrate the fact that our RGB working space has more colors available than our CMYK output space.
Figure 4.5 The Colorsync Utility is a good way to compare relative sizes of two color spaces. Here, we see that Adobe RGB (1998), shown in gray, fully encompasses our intended CMYK output space, SWOP2006_Coated3v2, shown in color.
Figure 4.6 Larger gamuts contain colors that smaller gamuts simply do not contain. It is impossible to reproduce those colors in the smaller color space.
This is typical of most RGB-to-CMYK conversions, and is an issue we face every day. So, if we edit an image in our RGB working space that contains colors not available in the CMYK output space (for example, saturated blues and oranges), how do we reproduce those colors on press? The cold, hard truth is that we cannot reproduce colors in a particular color space if those colors are out of gamut of that color space; it's a physical impossibility. It's like reaching for that deep blue crayon in the CMYK crayon box; it's simply not there.
There are two ways of dealing with this gamut imbalance:
- When creating or editing in the RGB working space, simply avoid the problem by making sure that you don't introduce any colors that are out of gamut for the ultimate CMYK destination space. Using our crayons analogy, don't use any of those bright oranges or blues that don't exist in the CMYK space. We'll be discussing how to do this in Chapter 6, The Steps.
- Instruct the CMS on what to do with the out-of-gamut colors when making the conversion. Those instructions to the CMS are contained in the profile's rendering intents.
Rendering intents
There are four rendering intents built into every profile, each one providing a different way for out-of-gamut colors to be handled. The process of reassigning colors from one color space to another is called gamut mapping. When we convert from one color space to another, one of the judgments we exercise is how to map those colors via a choice of rendering intent. That choice is made in the Convert to Profile dialog box, where a pop-up menu offers us four options: Perceptual, Relative Colorimetric, Absolute Colorimetric, and Saturation.
- Perceptual: The larger gamut of the source space (RGB) is compressed to match the smaller gamut of the destination space (CMYK). Essentially, this takes the most saturated colors in the source space and maps them to the most saturated colors in the destination space and scales everything else accordingly. The tonal relationships are maintained, but overall color may shift because, in the scaling process, even colors that are in gamut will move as well. In plain English, Perceptual saves detail at the expense of hue and saturation.
- Relative Colorimetric: The gamut of the source space and the destination space are compared and in-gamut colors are mapped unchanged (i.e., colors both color spaces share) and out-of-gamut colors are clipped (compressed), remapping them to the closest color in the gamut of the destination space. In-gamut colors are accurately and exactly converted, maintaining their original saturation and tone; only out-of-gamut colors will be changed. This is the rendering intent used most often for converting images from RGB to CMYK. In plain English, Relative saves saturation and hue at the expense of detail in the clipped areas.
- Absolute Colorimetric: This option is very similar to Relative Colorimetric, except for the fact that the white point of the source space is not scaled to the white point of the destination space. We'll never use this intent in performing actual RGB-to-CMYK conversions. It is used in the proofing process. More on this later when we discuss proofing in Chapter 6, The Steps.
- Saturation: We won't use this at all in our RGB-to-CMYK workflow. It's designed for giving punchy color to on-screen business graphics where "punch" is important and "color" is not.
The two rendering intents we'll be dealing with primarily are Perceptual and Relative Colorimetric. The choice depends on the content of the image.
Which One?
When converting from RGB to CMYK, we're almost always going from a larger color space to a smaller color space, so some amount of gamut compression will be taking place every time. Our choice of rendering intent will affect how accurately the colors from the larger source space will be mapped to the smaller destination space, and depends on the nature of the image being converted.
For the majority of images, Relative Colorimetric will give the best results because in-gamut colors will be accurately mapped; the color in the destination space will match exactly the colors in the source space. While it's true that out-of-gamut colors will be clipped, most out-of-gamut colors in the RGB-to-CMYK conversion are in deep shadow areas where the saturation clipping will not be noticed, or they are in areas that lack detail such as a blue sky. However, if the image contains important saturated areas where detail needs to be retained, such as a red flower, Perceptual is the better option. In Relative Colorimetric, the red petals mash all the detail into a flat tone with no detail; in Perceptual, subtle tonal variations will be saved (see Figures 4.8 and 4.9). This will be covered in more detail in Chapter 6, The Steps.
Figure 4.8 This file was converted using the Relative Colorimetric rendering intent. The in-gamut colors were mapped exactly color for color, but the out-of-gamut colors were clipped. Notice the lack of detail in the saturated areas of the flower petals.
Figure 4.9 This file was converted using the Perceptual rendering intent. All colors are remapped. The outer limits of the larger source space are remapped to the outer limits of the destination space. All other colors are scaled to fit. Saturation and hue are sacrificed to save detail. Perceptual is the correct rendering intent for this image because it saves detail in the flower petals. Saturation can be reintroduced by editing the file once it is in the CMYK space.
The decision about which rendering intent to use is made at the time of conversion. Once the file is converted, saved, and passed along to the next partner in the workflow, the rendering decision is irreversible. If a new conversion needs to made using a different rendering intent, you must return to the original RGB file and re-convert.