The primary goal of color management is to obtain a good match across color devices; for example, a video which should appear the same color on a computer LCD monitor, a plasma TV screen, and on a printed frame of video. 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, and color profiles for the devices and working space (color space the user edits in).
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, uses 3D LUTs (lookup table) to characterize color. At the consumer level, color management currently applies more to images than video, in which color management is still in its infancy.
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 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.
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, such as sRGB or Adobe RGB, 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. This trade-off is a consideration for the critical image editor.
Color translation, or color space conversion, is the translation 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.
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.
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 to print a mostly saturated blue from a monitor to paper with a typical CMYK printer will surely fail. The paper blue will not be that saturated. Conversely, the bright cyan of an inkjet printer cannot be easily presented on an average computer monitor. The color management system can utilize various methods to achieve desired results and give experienced users control of the gamut mapping behavior.
When the gamut of source color space exceeds that of the destination, saturated colors are liable to become clipped (inaccurately represented). 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. Absolute colorimetric : Absolute colorimetry and relative colorimetry actually use the same table but differ in the adjustment for the white point media. If my output device had a much larger gamut than the source data that (i.e. all the colors in the can be represented data), using the absolute colorimetry rendering intent would "ideally" (ignoring noise, precision etc) give an exact output of the specified CIELAB values. It might not look right, but an instrument making measurements on the print would indicate that it was correct. Absolute colorimetry is useful to get an exact specified color (e.g. IBM blue). It could also be to quantify the accuracy of mapping methods. The colors outside of the proof print system's possible color are mapped to the boundary of the color gamut. 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.
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
Beginning with Windows Vista, color management in Windows is handled at the OS level through an ICC V4-compatible color management standard and API known as Windows Color System. WCS supplements the Image Color Management (ICM) system in Windows 2000 and Windows XP, originally written by Heidelberg.
Apple's Mac OS X and the classic Mac OS have long had a color management module, ColorSync.
The Linux operating system uses ICC profiles, but support for color management on this platform is still quite nascent, with only a handful of applications supporting, some through LittleCMS.