In color management, an ICC profile is a set of data that characterizes a color input or output device, or a color space, according to standards promulgated by the International Color Consortium (ICC). Profiles describe the color attributes of a particular device or viewing requirement by defining a mapping between the device source or target color space and a profile connection space (PCS). This PCS is either CIELAB (L*a*b*) or CIEXYZ. Mappings may be specified using tables, to which interpolation is applied, or through a series of parameters for transformations.
Filename extension |
.icc, .icm |
---|---|
Internet media type |
application/vnd.iccprofile |
Uniform Type Identifier (UTI) | com.apple.colorsync-profile |
Magic number | 'acsp' |
Developed by | International Color Consortium |
Initial release | 1994 | (ICCv2 "version 3.0")
Latest release | 4.4.0.0 May 2022 |
Standards | ICC.1:2001-04 (v2), ICC.1:2010-12 (v4); ISO 15076-1 |
Open format? | yes |
Website | https://www.color.org/icc_specs2.xalter |
Every device that captures or displays color can be profiled. Some manufacturers provide profiles for their products, and there are several products that allow an end-user to generate their own color profiles, typically through the use of a tristimulus colorimeter or a spectrophotometer (sometimes called a spectrocolorimeter).[1]
The ICC defines the format precisely but does not define algorithms or processing details. This means there is room for variation between different applications and systems that work with ICC profiles. Two main generations are used: the legacy ICCv2 and the December 2001 ICCv4. The current version of the format specification (ICC.1) is 4.4.[2]
ICC has also published a preliminary specification for iccMAX (ICC.2) or ICCv5, a next-generation color management architecture with significantly expanded functionality and a choice of colorimetric, spectral or material connection space.[3]
To see how this works in practice, suppose we have a particular RGB and CMYK color space, and want to convert from this RGB to that CMYK. The first step is to obtain the two ICC profiles concerned. To perform the conversion, each RGB triplet is first converted to the Profile connection space (PCS) using the RGB profile. If necessary the PCS is converted between CIELAB and CIEXYZ, a well defined transformation. Then the PCS is converted to the four values of C, M, Y, K required using the second profile.
So a profile is essentially a pair of mappings; one from a color space to the PCS and a second from the PCS to the color space. A mapping might be implemented using tables of color values to be interpolated or be implemented using a series of mathematical formulae.
A profile might define several mappings, according to rendering intent. These mappings allow a choice between closest possible color matching, and remapping the entire color range to allow for different gamuts.
The reference illuminant of the Profile connection space (PCS) is a 16-bit fractional approximation of D50;[4] its white point is XYZ=(0.9642, 1.000, 0.8249). Different source/destination white points are adapted using the Bradford transformation.[4]
Another kind of profile is the device link profile. Instead of mapping between a device color space and a PCS, it maps between two specific device spaces. While this is less flexible, it allows for a more accurate or purposeful conversion of color between devices. For example, a conversion between two CMYK devices could ensure that colors using only black ink convert to target colors using only black ink.
The ICC profile specification, currently being progressed as International Standard ISO 15076-1:2005,[5][6] is widely referred to in other standards. The following International and de facto standards are known to make reference to ICC profiles.