In digital imaging systems,
color management is the controlled conversion between the
color representations of various devices, such as
image scanners,
digital cameras, monitors, TV screens, film printers,
computer printers, offset presses, and corresponding media.
The primary goal of color management is to obtain a good match across color devices; for example, the colors of one frame of a video should appear the same on a computer
LCD monitor, on a plasma TV screen, and as a printed poster. Color management helps to achieve the same appearance on all of these devices, provided the devices are capable of delivering the needed color intensities.
Parts of this technology are implemented in the
operating system (OS), helper libraries, the application, and devices. A cross-platform view of color management is the use of an ICC-compatible color management system. The
International Color Consortium (ICC) is an industry consortium which has defined:
- an open standard for a Color Matching Module (CMM) at the OS level.
- color profiles for:
- devices; this includes devicelink-profiles representing a complete color transformation from source device to target device.
- working spaces, the color spaces in which color data is meant to be manipulated.
There are other approaches to color management besides using
ICC profiles. This is partly due to history and partly because of other needs than the ICC standard covers. The film and broadcasting industries make use of many of the same concepts, but they more frequently rely on boutique solutions. The film industry, for instance, often uses
3D LUTs (
lookup table) to represent a complete color transformation. At the consumer level, color management currently applies more to still images than video, in which color management is still in its infancy.
Characterization
In order to describe the behavior of the various output devices, they must be compared (measured) in relation to a standard
color space. Often a step called linearization is performed first, in order to undo the effect of
gamma correction that was done to get the most out of limited
8-bit color paths. Instruments used for measuring device colors include
colorimeters and
spectrophotometers. As an intermediate result, the device
gamut is described in the form of scattered measurement data. The transformation of the scattered measurement data into a more regular form, usable by the application, is called
profiling. Profiling is a complex process involving mathematics, intense computation, judgment, testing, and iteration. After the profiling is finished, an idealized color description of the device is created. This description is called a
profile.
Calibration
Calibration is like characterization, except that it can include the adjustment of the device, as opposed to just the measurement of the device. Color management is sometimes sidestepped by calibrating devices to a common standard color space such as
sRGB; when such calibration is done well enough, no color translations are needed to get all devices to handle colors consistently. This avoidance of the complexity of color management was one of the goals in the development of sRGB.
Color profiles
Embedding
Image formats themselves (such as
TIFF,
JPEG,
PNG,
EPS,
PDF, and
SVG) may contain embedded
color profiles but are not required to do so by the image format. The
International Color Consortium standard was created to bring various developers and manufacturers together. The ICC standard permits the exchange of output device characteristics and color spaces in the form of
metadata. This allows the embedding of color profiles into images as well as storing them in a database or a profile directory.
Working spaces
Working spaces, such as
sRGB,
Adobe RGB or
ProPhoto are color spaces that facilitate good results while editing. For instance, pixels with equal values of R,G,B should appear neutral. Using a large (gamut) working space will lead to
posterization, while using a small working space will lead to
clipping.
[2] This trade-off is a consideration for the critical image editor.
Color transformation
Color transformation, or color space conversion, is the transformation of the representation of a color from one
color space to another. This calculation is required whenever data is exchanged inside a color-managed chain. Transforming profiled color information to different output devices is achieved by referencing the profile data into a standard color space. It is easy to convert colors from one device to a selected standard and from that color space to the colors of another device. By ensuring that the reference color space covers the many possible colors that humans can see, this concept allows one to exchange colors between many different color output devices. Color transformations can be represented by two profiles (source profile and target profile) or by a devicelink profile
Profile connection space
In the terminology of the
International Color Consortium, a translation between two color spaces can go through a
profile connection space (PCS): Color Space 1 → PCS (
CIELAB or
CIEXYZ) → Color space 2; conversions into and out of the PCS are each specified by a profile.
[3]
Gamut mapping
Since different devices don't have the same
gamut, they need some rearrangement near the borders of the gamut. Some colors need to be shifted to the inside of the gamut as they otherwise cannot be represented on the output device and would simply be clipped. For instance the dark highly saturated purplish-blue color of a typical computer monitor’s “blue” primary is impossible to print on paper with a typical
CMYK printer. The nearest approximation within the printer’s gamut will be much less saturated. Conversely, an inkjet printer’s “cyan” primary, a saturated mid-brightness greenish-blue, is outside the gamut of a typical computer monitor. The color management system can utilize various methods to achieve desired results and give experienced users control of the gamut mapping behavior
Rendering intent
When the gamut of source color space exceeds that of the destination, saturated colors are liable to become
clipped (inaccurately represented), or more formally
burned. The color management module can deal with this problem in several ways. The ICC specification includes four different
rendering intents:
absolute colorimetric,
relative colorimetric,
perceptual, and
saturation.
[3][4]
- Absolute colorimetric
Absolute colorimetry and relative colorimetry actually use the same table but differ in the adjustment for the white point media. If the output device has a much larger gamut than the source profile, i.e., all the colors in the source can be represented in the output, using the absolute colorimetry rendering intent would "ideally" (ignoring noise, precision, etc.) give an exact output of the specified CIELAB values. Perceptually, the colors may appear incorrect, but instrument measurements of the resulting output would match the source. Colors outside of the proof print system's possible color are mapped to the boundary of the color gamut. Absolute colorimetry is useful to get an exact specified color (e.g., IBM blue), or to quantify the accuracy of mapping methods.
- Relative colorimetric
The goal in relative colorimetry is to be truthful to the specified color, with only a correction for the media. Relative colorimetry is useful in proofing applications, since you are using it to get an idea of how a print on one device will appear on a different device. Media differences are the only thing you really would like to adjust for. Obviously there has to be some gamut mapping going on also. Usually this is done in a way where hue and lightness are maintained at the cost of reduced saturation. Relative colorimetric is the default rendering intent on most systems.
- Perceptual and Saturation
The perceptual and saturation intents are where the results really depend upon the profile maker. This is even how some of the competitors in this market differentiate themselves. These intents should be created by the profile maker so that pleasing images occur with the perceptual intent while eye-catching business graphics occur with the saturation intent. This is achieved through the use of different perceptual remaps of the data as well as different gamut mapping methods. Perceptual rendering is recommended for color separation.
In practice, photographers almost always use relative or perceptual intent, as for natural images, absolute causes
color cast, while saturation produces unnatural colors.
[4] Relative intent handles out-of-gamut by clipping (burning) these colors to the edge of the gamut, leaving in-gamut colors unchanged, while perceptual intent smoothly moves out-of-gamut colors into gamut, preserving gradations, but distorts in-gamut colors in the process. If an entire image is in-gamut, relative is perfect, but when there are out of gamut colors, which is more preferable depends on a case-by-case basis.
Saturation intent is most useful in charts and diagrams, where there is a discrete palette of colors which one wishes to have saturated (to "pop"), but where the specific hue is less important.
Implementation
Color management module
Color matching module (also -
method or -
system) is a software algorithm that adjusts the numerical values that get sent to or received from different devices so that the perceived color they produce remains consistent. The key issue here is how to deal with a color that cannot be reproduced on a certain device in order to show it through a different device as if it were visually the same color, just as when the reproducible color range between color transparencies and printed matters are different. There is no common method for this process, and the performance depends on the capability of each color matching method.
Some well known CMMs are
ColorSync,
Adobe CMM,
LittleCMS, and
ArgyllCMS.
Operating system level
Apple's Mac operating systems have provided OS-level color management since 1993, through
ColorSync.
Since 1997 color management in Windows is handled at the OS level through an ICC color management system. Beginning with
Windows Vista,
Microsoft introduced a new color architecture known as
Windows Color System.
[5] WCS supplements the
Image Color Management (ICM) system in Windows 2000 and Windows XP, originally written by
Heidelberg.
[6][7]
Operating systems which use the
X Window System for graphics use
ICC profiles, and support for
color management on Linux, still less mature than on other platforms, is coordinated through OpenICC at
freedesktop.org and makes use of
LittleCMS.
Application level
As of 2005, most
web browsers ignored color profiles.
[8] Notable exceptions were
Safari, starting with version 2.0, and
Firefox starting with version 3. Although disabled by default in Firefox 3.0, users can enable ICC v2 and ICC v4 color management by using an add-on
[9] or setting a configuration option.
[10] Starting from Firefox 3.5 color management is enabled by default only for tagged images, although support is limited to ICC v2 profiles owing to a change in color management systems from 3.0.
[11] Firefox 8.0 has ICC v4 profiles support. Internet Explorer 9 is the first Microsoft browser to partly support ICC profiles, but it does not render images correctly according to the Windows ICC settings (it only converts non-sRGB images to the sRGB profile) and therefore provides no real color management at all. As of 2011,
Google Chrome does not support color management by default.