Profiles and Color Spaces

One of the most important functions of Color management is to provide a link from easily manipulated device dependent values from modes like RGB to clearly defined device independent colors such as those described by Lab. Color management accomplishes this with look-up tables that translate device dependent and independent color values. The first type of look-up table we will discuss is called a color “profile.” Profiles are created by sending a wide variety of signals from a device dependent color mode to a specific device and measuring what real colors result. In the case of a typical inkjet printer, profiling software sends a file with several hundred or thousand RGB (or CMYK, which is also device dependent) values to the printer. The resulting printed patches are read back into the profiling software as Lab values by an instrument called a spectrophotometer. The profiling software then generates the look-up table that converts Lab to the exact signal “recipe” that will produce that color on that printer.


An automated spectrophotometer reads
thousands of patches to create an ICC profile.

Similarly, monitor profiling applications send many RGB signals to a monitor to catalog the resulting color via spectrophotometer (or in some cases a colorimeter). With a monitor and printer that are accurately profiled, the ICC color management system can take a given color, defined by it’s device independent Lab value, and display it on the monitor and print it on the printer so that they appear to “match” under a specific controlled lighting situation. Note that in these scenarios both digital devices are using RGB mode profiles, but it is very unlikely that the actual RGB values that they are displaying (or printing) are the same. So a Lab color of L30 a15 b25 might generate an RGB value of R137 G95 B71 on a printer but R94 G61 B35 on a monitor. ICC color management uses different device profiles to change the RGB signal numbers to produce the same perceived color on different devices.


A colorimeter reads monitor color signals to create an ICC profile.

Accuracy is the most important attribute of a profile. Each profile describes the state of a device at the time the profile was created. Making changes to the device, such as switching to a new paper or ink set on a printer, will require a new profile to be generated. Several things can go wrong in the creation of a profile so testing them is essential. There are many ways to test a profile and one of the easiest begins by collecting a group of files that represent a wide range of typical image color signals. When a new monitor or printer profile is created the test files can be printed or displayed. Comparison with known good samples can help to point out discrepancies in the newly created profile. While this method will show the most obvious problems with a profile, it can sometimes be difficult to determine whether the new profile or the control is giving a more accurate representation of the color data in the file.


A group of images from one output device (monitor)
is used to verify color accuracy on another (printer),
but which rendering is "correct"?

A more precise way of checking profile accuracy is to make a perfect digital version of a physical standard in a device independent color mode. One example would be to create a digital version of a GretagMacbeth ColorChecker chart based on Lab readings of the actual chart. You can then compare the profile’s representation of the digital chart to the original to determine its accuracy. Finally there are a variety of complicated electronic comparison tests that can be performed, but these are not commonly necessary for the average user. Simple but thorough image testing will reveal most accuracy problems and alert you that the device needs to be re-profiled



A monitor profile's accuracy is checked
against a physical sample.


Inkjet prints compared to actual samples
to evaluate profile output accuracy

The second type of look up table-used by ICC color management is the color space. Color spaces can be thought of as very large profiles that include all the colors reproducible by a large group of generic output devices. Color spaces are not based on measurements like profiles, but instead assign a large theoretical region of device independent color to the full range of a device dependent color mode such as RGB. Color spaces are designed as “working palettes” to include any color that may be needed by a particular type of user. They almost always contain a wider range of color than a profile, and allow users to manipulate color outside of the constraints of a particular device. Because of the many different types of user, there are always several very different color spaces for each device dependent color mode. Color spaces therefore differ primarily in the exact range of colors that they contain. Thus they are often described in terms of their relative “size.” Spaces that contain a wide range of color are said to be “large” color spaces. To use some popular RGB color spaces as examples, sRGB is a “small” color space that attempts to only include those colors that the average PC monitor can accurately reproduce. On the other hand, Adobe 98 is a larger RGB space designed to include colors from a wide variety of scanners, monitors, printers and presses. Some color spaces, such as ProPhoto RGB, encompass even more colors including some that no digital devices can accurately reproduce.


Three dimensional graph illustrating the difference in
size (range of colors) between sRGB (green/yellow)
and Adobe1998RGB (red).

So how does one choose which color space to use as a primary working space in graphics programs? It is tempting to believe that bigger color spaces are always better because they allow you access to a wider range of colors. It should be pointed out though that large color spaces do have some disadvantages. For instance, all color spaces use the same number of coordinates to describe their entire color range. So a large color space uses the same number of steps to cover a wider range of color. This means that the differences from one coordinate to the next may be too extreme in an especially large space. In these situations smooth color transitions can be difficult in 8-bit encoding. Users who wish to take advantage of the so-called wide gamut spaces such as ProPhoto must use 16 bit file formats to avoid these potential problems. This approach takes a little more computing power, but offers the highest quality and maximum possible color range available from an RGB color space.

Even for those of us who utilize 8-bit workflows however, choosing a space that is larger than PhotoShop’s default of sRGB would be an improvement. Adobe 98 has been used sucessfully for years by graphics and imaging professionals, so it is a difficult choice with which to argue. Using Adobe 98 as a working space is a reasonable compromise for those unwilling to use 16 bit encoding. Assuming that you are using Adobe Photoshop for your digital imaging, this can be accomplished globally though PhotoShop’s color settings or on an image by image basis. If you choose to change it at the Photoshop level, your choice of working space will also affect how RGB color information is handled by such things as the color picker and fill patterns. Of greater importance than which color space you use for a given file is making sure that whatever color space is used gets communicated to a device or user that the file is sent to.

Because each RGB color space and profile are different, the same coordinate will have a different color meaning depending on which color space or profile it comes from. We stated earlier that RGB numbers by themselves do not specify a particular color. The additional piece needed to define RGB color is knowledge of which RGB color space or profile was being used when the color was created or modified. Getting RGB colors without this information is a little like finding out that you have to catch a plane which leaves at 8:00. If you don’t know whether that is 8:00 AM or 8:00 PM, you could find yourself either very early or very late. It is therefore essential to specify information about color space whenever color values from a device dependent color mode such as RGB are communicated.

Ideally this information would exist as part of the file itself so that the person or device receiving the file would not have to guess or assign the color space manually. ICC color management has provided a way of doing this that is compatible with common image formats such as tiff and jpeg called an ICC “tag.” The act of attaching the tag to the file is called “embedding” or simply “tagging.” Advanced imaging applications allow you to choose to do this as part of saving the file. For example, in Adobe’s PhotoShop you need only check the box marked “embed color profile” when saving to communicate your color space information in the saved file. This allows other ICC aware applications to correctly interpret the file’s color information, often automatically.


While ICC color management is not a magic fix that eliminates the need for color manipulation, it is currently the only solution capable of keeping color representation reasonably close across almost any digital device or operating system. Using color management techniques can radically streamline the digital imaging process. Understanding the strengths and limitations of device dependent color models promotes efficient workflows. Working in a color space that is large enough to contain all of the colors in an image will guarantee that reproducible colors are not eliminated unnecessarily. Creating accurate profiles will help to ensure that prints and monitor representations remain reasonably consistent. Embedding profile/color space tags allows color meaning to be communicated to a file’s future recipient. Armed with an understanding of these basic ICC color management concepts, keeping color consistent becomes a more manageable challenge.


Back to articles main page