Chromatic Adaptation for Display Profiles

When I was working on improvements to the OptiCAL software in 1998, one of the challenges was the selection of the chromatic adaptation algorithm. At the time, the International Color Consortium (ICC) did not specify a chromatic adaptation algorithm, so each software developer could choose any method for chromatic adaptation.

Let me back up and give you a little more context for this issue. The ICC had specified CIE D50 for the white point of the Profile Connection Space (PCS). Therefore, all the color coding in the PCS had to have a white point of D50. That worked well for output profiles (e.g., printer profiles), but it created an extra step in the creation of display profiles (e.g., monitor profiles) and RGB color-space profiles when the native white point was not D50. That extra step was the application of a chromatic adaptation transform.

I will focus on an ICC display profile for a color monitor as an example. When the display profile is based on the matrix structure, rather than the LUT structure, the 3×3 matrix contains CIE XYZ tristimulus values for the red, green, and blue primaries. By following the rules of linear algebra, the sum of each row in the 3×3 matrix produces the CIE X, Y, and Z tristimulus values for the white point of the display (i.e., the sum of the top row delivers the X value, the sum of the middle row delivers the Y value and the sum of the bottom row delivers the Z value). To be compliant with the ICC specification, the 3×3 matrix must deliver the CIE XYZ tristimulus values of D50 for the CIE XYZ tristimulus values of white (i.e., white XYZ for the display profile = CIE D50 XYZ).

If the white point of the actual display is not D50, then a chromatic adaptation transform must be applied to the measured data to force the 3×3 matrix to deliver the CIE XYZ tristimulus values for D50. (Keep in mind that a display will rarely be calibrated to exactly D50, so a chromatic adaptation transform will be applied to the measured data even for a small deviation from D50.) In simple terms, the chromatic-adaptation transform changes the tristimulus values of the red, green, and blue primaries to produce a D50 white from the sum of the three primaries. The new tristimulus values for the red, green, and blue primaries are placed in the 3×3 matrix for the display profile.

Without a specification from the ICC for a chromatic adaptation algorithm (CAT), software developers were free to choose any chromatic adaptation algorithm. Some software developers simply used linear scaling on the measured CIE XYZ tristimulus values for the red, green, and blue primaries to force them to deliver the CIE XYZ tristimulus values of D50 for white. This technique is generally referred to as a “wrong von Kries transform” and the results are inferior to a proper von Kries transform. In 1998, the two popular chromatic adaptation transforms were the Hunt Pointer Estevez transform and the Bradford transform. Each of these three methods (i.e., linear scaling of the XYZ values, von Kries scaling with the Hunt Pointer Estevez transform, and von Kries scaling with the Bradford transform) produced different sets of XYZ tristimulus values for the 3×3 matrix, and, in turn, delivered different colors when used in a color management pipeline. At the time, most people using color management were unaware of this little detail in display profiles, and to this day I still encounter “color management experts” who are not aware of this little detail. Fortunately the ICC addressed this issue and now recommends the Bradford transform for Version 4 of the ICC profile specification. Software developers who create software applications that make ICC profiles should now use the Bradford transform in the software in order for the ICC profiles to be compliant with the Version 4 specification, but exceptions are allowed and can be implemented in the ICC profile and noted in the chromatic adaptation tag in the ICC profile. Let me quote Annex E in Specification ICC.1:2010 (Profile version 4.3.0.0):

The ICC profile format specification allows the use of different linear (matrix-based) CATs. This flexibility allows profile creators to select the most appropriate CAT for their applications. Criteria for selection include visual performance, the gamut of the image as transformed to the PCS, and other considerations. However, the use of different CATs will produce different results, which may be undesirable. Therefore, it is recommended that the linear Bradford CAT be used when there is no reason to use a different CAT. The linear Bradford CAT has been widely implemented in the digital imaging industry, with demonstrated excellent visual performance. If a profile creator decides to use a CAT other than linear Bradford, they should do so only to address specific known issues, recognizing that the resulting profile will most likely produce different results than profiles from other sources.

In 1998 I chose the Hunt Pointer Estevez transform based on discussions with colleagues who had significant experience with chromatic adaptation transforms (CATs) and were familiar with the Hunt Pointer Estevez transform and the Bradford transform. Working with Dana Gregory on the OptiCAL software, we implemented the Hunt Pointer Estevez transform for OptiCAL version 2.5. Five years later in 2003, the OptiCAL software was updated to use the Bradford transform for chromatic adaptation to conform to the Version 4 ICC Specification. The update to the OptiCAL software that incorporated the Bradford transform was clearly the right decision, and Michael Brill provided a detailed report on this update to the software in 2003.

I hope this post will elevate awareness of the presence of a chromatic adaptation transform in software that produces display profiles. I will visit this topic again in future posts to share additional insights on related issues that may be overlooked in color management workflows.

Post written by Parker Plaisted

References:
International Color Consortium, ICC Profile Format Specification. (http://www.color.org)

M. Fairchild, Color Appearance Models, Addison-Wesley, Reading, Massachusetts (1998).

The Reference White in Adobe Photoshop Lab Mode

In an earlier post I explained that all CIELAB values are relative to a reference white, and one benefit of the reference white is the chromatic adaptation provided by dividing each CIE XYZ tristimulus value of the stimulus by the corresponding CIE XYZ tristimulus value for the reference white.

For this post I will focus on two example implementations of the CIELAB color space in digital color workflows and the reference white used in each example.

The first example implementation is color management with device profiles based on the International Color Consortium (ICC) specification. The reference white for every ICC profile is D50, and the corresponding CIE XYZ tristimulus values are X = 0.9642, Y = 1.0000, and Z = 0.8249. This information is provided in the description of the ICC Profile Connection Space (PCS) as guidance for interpreting PCS values that are encoded as CIELAB values. The following statement is a quote from ICC Specification ICC.1:2004-10:

So, in summary, the PCS is based on XYZ (or CIELAB) determined for a specific observer (CIE Standard 1931 Colorimetric Observer – often known colloquially as the 2 degree observer), relative to a specific illuminant (D50 – a chromatic adaptation transform is used if necessary), and measured with a specified measurement geometry (0°/45° or 45°/0°), for reflecting media.

Note that the ICC PCS values may be encoded as CIELAB values or CIE XYZ values, but the CIELAB encoding is preferred for output device profiles that characterize printing systems. The use of D50 for the reference white for CIELAB encoding in the ICC PCS makes the CIELAB values more suitable for printing systems than other white points (e.g., D65) because D50 is the standard illuminant for prepress proofing and matching press sheets to proofs. Therefore, the reference white for the ICC PCS matches the reference white universally used for evaluating color proofs and finished color prints.

The second example implementation is the Lab color mode in Adobe Photoshop. The Lab color mode is based on the CIELAB color space, and the reference white for the Lab color mode is D50 (confirmed by personal communication with a color scientist at Adobe). The Adobe Photoshop software has been widely used in graphic-arts prepress workflows since the early 1990’s (I began using Photoshop in 1993 in prepress applications); and Adobe was a founding member of the International Color Consortium when it was formed in 1993. Therefore, Adobe’s choice of D50 for the reference white for the Lab mode is consistent with Adobe’s support of the ICC profile specification, which I just described above, and the widespread use of Photoshop in graphic-arts prepress workflows where D50 is the standard illuminant for evaluating prints.

Both of these example implementations are relevant to digital color workflows used by photographers to produce photographic prints, and it should be clear that D50 is a good choice for the reference white when the CIELAB values are used in a workflow that ends with a print. But there is another component that is generally present in a digital color workflow, and that component is the color monitor on which the color image is evaluated before the image file is delivered to a printer.

In my next post I will present my position in the debate on the preferred white point for color-monitor calibration in a digital color workflow where an image on a color monitor will be compared to the same image on a print.

Post written by Parker Plaisted

References:
International Color Consortium, ICC Profile Format Specification. (http://www.color.org)

Note: I spent a significant amount of time looking for an official Adobe publication or document that would confirm the rumor that the reference white for the Photoshop Lab color mode is D50, but I could not find one. I then called a friend at Adobe who is one of the color scientists at Adobe who is familiar with this detail in the Lab color mode. He confirmed that D50 is the reference white for the Lab color mode in Adobe Photoshop.