Gamut mapping of colors generally involves finding substitute colors that "look like" the desired color. Profile creation software commonly performs these substitutions by moving the out-of-gamut color along a line of constant Lab hue angle. But experiments and experience have shown that colors sharing the same Lab hue angle do always not share the same apparent hue. The result is that a substituted color may have a completely different apparent hue than the original color had. A notorious example is the "blue turns purple" problem.
This should not be blamed on Lab, since that color space was designed to measure color differences. It was not designed to have the perceptual qualities needed for gamut mapping. Its use for this purpose is really a misuse, resulting primarily from a lack of a better alternative.
The Munsell data set is often used to evaluate the perceptual qualities of color spaces. When viewing the Munsell colors in Lab you can plainly see that colors of constant apparent hue do not lie on a line or plane. Furthermore, the angles between hues are not equal, and colors of constant chroma are not equidistant from the neutral axis. It would be very helpful if there was a formula for convering from the CIE system into a color space that had uniform perceptual properties. Unfortunately, there are no such formulas. The only recourse is to use multi-dimensional look up tables. An ICC profile may contain this type of look up table, and therefore becomes a candidate for an implementation of this color space transformation.
In an effort to advance this particular need of the color reproduction community, I have prepared a color space ICC profile that performs the desired nonlinear mapping of Lab so that all properties of the Munsell color set are met. By that I mean that when CIE Lab colors are transformed through this Lab-to-Lab profile, the resulting Uniform Perceptual Lab (or "UP Lab") colors have these properties:
All colors of constant Munsell hue have the same UP Lab hue angle. Another way of saying this is that all colors of the same Munsell hue designation will lie on a half-plane passing through the neutral axis.
All Munsell hues are evenly distributed around the hue wheel. Since there are 40 different hues in the Munsell set, there is a nine-degree angle between any adjacent pair of Munsell hues.
All colors of constant Munsell chroma (saturation) lie the same distance from the neutral axis (i.e. they have the same chroma in UP Lab space). Another way of saying this is that chroma rings are perfect circles, centered on neutral. When taken collectively at different lightness values, all colors of constant chroma lie on the surface of a circular cylinder parallel to, and centered along the neutral axis.
All chroma rings are equally spaced. There is a 5 ΔE (per Munsell chroma unit) spacing between adjacent Munsell chroma rings.
These are all desirable attributes of a uniform perceptual color space. They are illustrated below. On the left are the Munsell colors after adapting to D50 (the Munsell Display Calculator uses the unadapted, Illuminant C values).
The mapping was done such that Munsell hue 2.5RP has a UP Lab hue angle of zero degrees. This particular rotation was chosen to allow greater chroma encoding of blue colors in the lower right quadrant of the a/b plane. Furthermore, the mapping does not affect the L* channel, nor any neutral colors. For this exercise, I used the Illuminant C Munsell data from file all.dat found at http://www.cis.rit.edu/research/mcsl2/online/munsell.php. These 4996 colors were adapted from Illuminant C to D50 using the Bradford chromatic adaptation algorithm. These data were then interpolated and extrapolated to arrive at the look up tables in the profile.
The A2B0 tag of the profile converts from CIE Lab to UP Lab. The B2A0 tag performs the inverse transformation. The idea is that a developer of profiling software (or a CMM) may use the profile to temporarily transform CIE Lab into UP Lab, perform the gamut mapping substitution, and then transform the mapped color back to CIE Lab. In this way, a linear gamut mapping in UP Lab is equivalent to a nonlinear mapping along the curved Munsell lines in CIE Lab. This should fix, or at least greatly reduce the "blue turns purple" problem. Granted, the Munsell data set was generated to an Illuminant C environment and the ICC architecture is based on D50. Nevertheless, given the observation that the adapted Illuminant C Munsell data demonstrate observed effects in D50, the correction transformation is probably applicable.
Note that this profile is probably useful only to software developers. It will be difficult to find any end-user software that can make use of a "color space" type of ICC profile.
This profile may be used for any commercial or non-commercial purposes, including redistribution, provided that the copyright tag remains unchanged in the profile, and that any distributions of embodiments or derivatives using the profile or resulting from the use of the profile contain the following statement in its documentation:
CIE Lab to Uniform Perceptual Lab profile is copyright © 2003 Bruce Justin Lindbloom. All rights reserved. <http://www.brucelindbloom.com>
You may download the Uniform Perceptual Lab ICC profile here in zip (1.2 Mb) format.
Note: Marti Maria, author of LittleCMS, informed me that the A2B0 and B2A0 tags are swapped in the UPLab profile. I have created an exact copy, but with these two tags reversed. This version may be downloaded in either zip (1.2 Mb) or sit (1.3 Mb) format. Thanks Marti!