BREAKING NEWS
CIELAB color space

## Summary

The CIELAB color space, also referred to as L*a*b* , is a color space defined by the International Commission on Illumination (abbreviated CIE) in 1976. (Referring to CIELAB as "Lab" without asterisks should be avoided to prevent confusion with Hunter Lab.) It expresses color as three values: L* for perceptual lightness, and a* and b* for the four unique colors of human vision: red, green, blue, and yellow. CIELAB was intended as a perceptually uniform space, where a given numerical change corresponds to a similar perceived change in color. While the LAB space is not truly perceptually uniform, it nevertheless is useful in industry for detecting small differences in color.

CIELAB color space top view
CIELAB color space front view
The CIE 1976 (L*, a*, b*) color space (CIELAB), showing only colors that fit within the sRGB gamut (and can therefore be displayed on a typical computer display). Each axis of each square ranges from −128 to 127.

Like the CIEXYZ space it derives from, CIELAB colorspace is a device-independent, "standard observer" model. The colors it defines are not relative to any particular device such as a computer monitor or a printer, but instead relate to the CIE standard observer which is an averaging of the results of color matching experiments under laboratory conditions.

The CIELAB space is three-dimensional, and covers the entire range of human color perception, or gamut. It is based on the opponent color model of human vision, where red and green form an opponent pair, and blue and yellow form an opponent pair. The lightness value, L*, also referred to as "Lstar," defines black at 0 and white at 100. The a* axis is relative to the green–red opponent colors, with negative values toward green and positive values toward red. The b* axis represents the blue–yellow opponents, with negative numbers toward blue and positive toward yellow.

The a* and b* axes are unbounded, and depending on the reference white they can easily exceed ±150 to cover the human gamut. Nevertheless, software implementations often clamp these values for practical reasons. For instance, if integer math is being used it is common to clamp a* and b* in the range of −128 to 127.

CIELAB is calculated relative to a reference white, for which the CIE recommends the use of CIE Standard Illuminant D65.[1] D65 is used in the vast majority industries and applications, with the notable exception being the printing industry which uses D50. The International Color Consortium largely supports the printing industry and uses D50 with either CIEXYZ or CIELAB in the Profile Connection Space, for v2 and v4 ICC profiles.[2]

While the intention behind CIELAB was to create a space that was more perceptually uniform than CIEXYZ using only a simple formula,[3] CIELAB is known to lack perceptual uniformity, particularly in the area of blue hues.[4]

The lightness value, L* in CIELAB is calculated using the cube root of the relative luminance with an offset near black. This results in an effective power curve with an exponent of approximately 0.43 which represents the human eye's response to light under daylight (photopic) conditions.

An example of color enhancement using LAB color mode in Photoshop. The left side of the photo is enhanced, while the right side is normal.

Unlike the RGB and CMYK color models, CIELAB is designed to approximate human vision. The L* component closely matches human perception of lightness, though it does not take the Helmholtz–Kohlrausch effect into account. CIELAB is less uniform in the color axes, but is useful for predicting small differences in color.

The CIELAB coordinate space represents the entire gamut of human photopic (daylight) vision, and far exceeds the gamut for sRGB or CMYK. In an integer implementation such as TIFF, ICC or Photoshop, the large coordinate space results in substantial data inefficiency due to unused code values. Only about 35% of the available coordinate code values are inside the CIELAB gamut with an integer format.[5]

Using CIELAB in an 8-bit per channel integer format typically results in significant quantization errors. Even 16-bit per channel can result in clipping, as the full gamut extends past the bounding coordinate space. Ideally, CIELAB should be used with floating-point data to minimize obvious quantization errors.

CIE standards and documents are copyright by the CIE and must be purchased; however, the formulas for CIELAB are available on the CIE website.[6]

## CIELAB coordinates

The sRGB gamut (left) and visible gamut under D65 illumination (right) plotted within the CIELAB color space. a and b are the horizontal axes; L is the vertical axis.

The three coordinates of CIELAB represent the lightness of the color (L* = 0 yields black and L* = 100 indicates diffuse white; specular white may be higher), its position between red and green (a*, where negative values indicate green and positive values indicate red) and its position between yellow and blue (b*, where negative values indicate blue and positive values indicate yellow). The asterisks (*) after L*, a*, and b* are pronounced star and are part of the full name to distinguish L*a*b* from Hunter's Lab, described below.

Since the L*a*b* model has three axes, it requires a three-dimensional space to be represented completely.[7] Also, because each axis is non-linear, it is not possible to create a two-dimensional chromaticity diagram. Also, it is important to understand that the visual representations shown in the plots of the full CIELAB gamut on this page are an approximation, as it is impossible for a monitor to display the full gamut of LAB colors.

The red-green and yellow-blue opponent channels relate to the human vision system's opponent color process. This makes CIELAB a Hering opponent color space. The nature of the transformations also characterizes it as an chromatic value color space.

A related color space, the CIE 1976 L*u*v* color space (a.k.a. CIELUV), preserves the same L* as L*a*b* but has a different representation of the chromaticity components. CIELAB and CIELUV can also be expressed in cylindrical form (CIELChab[8] and CIELChuv, respectively), with the chromaticity components replaced by correlates of chroma and hue.

Since the work on CIELAB and CIELUV, the CIE has been incorporating an increasing number of color appearance phenomena into their models and difference equations to better predict human color perception. These color appearance models, of which CIELAB is a simple example,[9] culminated with CIECAM02.

### Perceptual differences

The nonlinear relations for L*, a*, and b* are intended to mimic the nonlinear response of the eye. Furthermore, uniform changes of components in the L*a*b* color space aim to correspond to uniform changes in perceived color, so the relative perceptual differences between any two colors in L*a*b* can be approximated by treating each color as a point in a three-dimensional space (with three components: L*, a*, b*) and taking the Euclidean distance between them.[10]

### RGB and CMYK conversions

In order to convert RGB or CMYK values to or from L*a*b*, the RGB or CMYK data must be linearized relative to light. The reference illuminant of the RGB or CMYK data must be known, as well as the RGB primary coordinates or the CMYK printer's reference data in the form of a color lookup table (CLUT).

In color managed systems, ICC profiles contain this needed data, which is then used to perform the conversions.

### Range of coordinates

As mentioned previously, the L* coordinate nominally ranges from 0 to 100. The range of a* and b* coordinates is technically unbounded, though it is commonly clamped to the range of −128 to 127 for use with integer code values, though this results in potentially clipping some colors depending on the size of the source colorspace. The gamut's large size and inefficient utilization of the coordinate space means the best practice is to use floating-point values for all three coordinates.

## Converting between CIELAB and CIEXYZ coordinates

### From CIEXYZ to CIELAB

{\displaystyle {\begin{aligned}L^{\star }&=116\ f\!\left({\frac {Y}{Y_{\mathrm {n} }}}\right)-16\\a^{\star }&=500\left(f\!\left({\frac {X}{X_{\mathrm {n} }}}\right)-f\!\left({\frac {Y}{Y_{\mathrm {n} }}}\right)\right)\\b^{\star }&=200\left(f\!\left({\frac {Y}{Y_{\mathrm {n} }}}\right)-f\!\left({\frac {Z}{Z_{\mathrm {n} }}}\right)\right)\end{aligned}}}

where, being t = X/Xn, Y/Yn, or Z/Zn:

{\displaystyle {\begin{aligned}f(t)&={\begin{cases}{\sqrt[{3}]{t}}&{\text{if }}t>\delta ^{3}\\{\dfrac {t}{3\delta ^{2}}}+{\frac {4}{29}}&{\text{otherwise}}\end{cases}}\\\delta &={\tfrac {6}{29}}\end{aligned}}}

X, Y, Z describe the color stimulus considered and Xn, Yn, Zn describe a specified white achromatic reference illuminant. for the CIE 1931 (2°) standard colorimetric observer and assuming normalization where reference white = Y = 100, the values are:

{\displaystyle {\begin{aligned}X_{\mathrm {n} }&=95.0489,\\Y_{\mathrm {n} }&=100,\\Z_{\mathrm {n} }&=108.8840\end{aligned}}}

For illuminant D50, which is used in the printing industry:

{\displaystyle {\begin{aligned}X_{\mathrm {n} }&=96.4212,\\Y_{\mathrm {n} }&=100,\\Z_{\mathrm {n} }&=82.5188\end{aligned}}}

The division of the domain of the f function into two parts was done to prevent an infinite slope at t = 0. The function f was assumed to be linear below some t = t0, and was assumed to match the 3t part of the function at t0 in both value and slope. In other words:

{\displaystyle {\begin{aligned}{\sqrt[{3}]{t_{0}}}&=mt_{0}+c&{\text{ (match in value)}}\\{\tfrac {1}{3}}\left(t_{0}\right)^{-{\frac {2}{3}}}&=m&{\text{ (match in slope)}}\end{aligned}}}

The intercept f(0) = c was chosen so that L* would be 0 for Y = 0: c = 16/116 = 4/29. The above two equations can be solved for m and t0:

{\displaystyle {\begin{aligned}m&={\tfrac {1}{3}}\delta ^{-2}&=7.787037\ldots \\t_{0}&=\delta ^{3}&=0.008856\ldots \end{aligned}}}

where δ = 6/29.[11]

[12]

### From CIELAB to CIEXYZ

The reverse transformation is most easily expressed using the inverse of the function f above:

{\displaystyle {\begin{aligned}X&=X_{\mathrm {n} }f^{-1}\left({\frac {L^{\star }+16}{116}}+{\frac {a^{\star }}{500}}\right)\\Y&=Y_{\mathrm {n} }f^{-1}\left({\frac {L^{\star }+16}{116}}\right)\\Z&=Z_{\mathrm {n} }f^{-1}\left({\frac {L^{\star }+16}{116}}-{\frac {b^{\star }}{200}}\right)\\\end{aligned}}}

where

${\displaystyle f^{-1}(t)={\begin{cases}t^{3}&{\text{if }}t>\delta \\3\delta ^{2}\left(t-{\tfrac {4}{29}}\right)&{\text{otherwise}}\end{cases}}}$

and where δ = 6/29.

## Cylindrical model

The sRGB gamut (left) and visible gamut under D65 illumination (right) plotted within the CIELCHab color space. L is the vertical axis; C is the cylinder radius; h is the angle around the circumference.

The "CIELCh" or "CIEHLC" space is a color space based on CIELAB, which uses the polar coordinates C* (chroma, relative saturation) and h° (hue angle, angle of the hue in the CIELAB color wheel) instead of the Cartesian coordinates a* and b*. The CIELAB lightness L* remains unchanged.

The conversion of a* and b* to C* and h° is performed as follows:

${\displaystyle C^{\star }={\sqrt {{a^{*}}^{2}+{b^{*}}^{2}}},\qquad h^{\circ }=\operatorname {atan} \left({b^{*}}/{a^{*}}\right)}$

Conversely, given the polar coordinates, conversion to Cartesian coordinates is achieved with:

${\displaystyle a^{\star }=C^{\star }\cos(h^{\circ }),\qquad b^{\star }=C^{\star }\sin(h^{\circ })}$

The LCh color space is not the same as the HSV, HSL or HSB color models, although their values can also be interpreted as a base color, saturation and lightness of a color. The HSL values are a polar coordinate transformation of what is technically defined RGB cube color space. LCh is still perceptually uniform.

Further, H and h are not identical, because HSL space uses as primary colors the three additive primary colors red, green, and blue (H = 0, 120, 240°). Instead, the LCh system uses the four colors red, yellow, green, and blue (h = 0, 90, 180, 270°). Regardless the angle h, C = 0 means the achromatic colors, that is, the gray axis.

The simplified spellings LCh, LCH and HLC are common, but the latter presents a different order. HCL color space (Hue-Chroma-Luminance) on the other hand is a commonly used alternative name for the L*C*h(uv) color space, also known as the cylindrical representation or polar CIELUV. This name is commonly used by information visualization practitioners who want to present data without the bias implicit in using varying saturation.[13][14] The name Lch(ab) is sometimes used to differentiate from L*C*h(uv).

## Where CIELAB is used

Some systems and software applications that support CIELAB include:

• CIELAB is used by Datacolor spectrophotometers, including the related color difference calculations.
• CIELAB is used by the PantoneLive library.
• CIELAB is used extensively by XRite as a color space with their hardware and software color measuring systems.
• CIELAB D50 is available in Adobe Photoshop, where it is called "Lab mode".[15][16]
• CIELAB is available in Affinity Photo by changing the document's Colour Format to "Lab (16 bit)". The white point, which defaults to D50, can be changed by ICC profile.
• CIELAB D50 is available in ICC profiles as a profile connection space named "Lab color space".[2]
• CIELAB (any white point) is a supported color space in TIFF image files.[17]
• CIELAB (any white point) is available in PDF documents, where it is called the "Lab color space".[18][19]
• CIELAB is an option in Digital Color Meter on macOS described as "L*a*b*".
• CIELAB is available in the RawTherapee photo editor, where it is called the "Lab color space".[20]
• CIELAB is used by GIMP for the hue-chroma adjustment filter, fuzzy-select, and paint-bucket. There is also a LCh(ab) color picker.[21]
• Future support for CIELAB is planned for CSS level 4, however at present it is only supported in Safari 15.[22][23]

## Hunter Lab

The Hunter Lab color space, defined in 1948[24][25] by Richard S. Hunter, is another color space referred to as "Lab". Like CIELAB, it was also designed to be computed via simple formulas from the CIEXYZ space, but to be more perceptually uniform than CIEXYZ. Hunter named his coordinates L, a, and b. The CIE named the coordinates for CIELAB as L*, a*, b* to distinguish them from Hunter's coordinates.

### Hunter Lab Math

L is a correlate of lightness, and is computed from the Y tristimulus value using Priest's approximation to Munsell value:

${\displaystyle L=100{\sqrt {\frac {Y}{Y_{\mathrm {n} }}}}}$

where Yn is the Y tristimulus value of a specified white object. For surface-color applications, the specified white object is usually (though not always) a hypothetical material with unit reflectance that follows Lambert's law. The resulting L will be scaled between 0 (black) and 100 (white); roughly ten times the Munsell value. Note that a medium lightness of 50 is produced by a luminance of 25, due to the square root proportionality.

a and b are termed opponent color axes. a represents, roughly, Redness (positive) versus Greenness (negative). It is computed as:

${\displaystyle a=K_{\mathrm {a} }\left({\frac {{\frac {X}{X_{\mathrm {n} }}}-{\frac {Y}{Y_{\mathrm {n} }}}}{\sqrt {\frac {Y}{Y_{\mathrm {n} }}}}}\right)}$

where Ka is a coefficient that depends upon the illuminant (for D65, Ka is 172.30; see approximate formula below) and Xn is the X tristimulus value of the specified white object.

The other opponent color axis, b, is positive for yellow colors and negative for blue colors. It is computed as:

${\displaystyle b=K_{\mathrm {b} }\left({\frac {{\frac {Y}{Y_{\mathrm {n} }}}-{\frac {Z}{Z_{\mathrm {n} }}}}{\sqrt {\frac {Y}{Y_{\mathrm {n} }}}}}\right)}$

where Kb is a coefficient that depends upon the illuminant (for D65, Kb is 67.20; see approximate formula below) and Zn is the Z tristimulus value of the specified white object.[26]

Both a and b will be zero for objects that have the same chromaticity coordinates as the specified white objects (i.e., achromatic, grey, objects).

### Approximate formulas for Ka and Kb

In the previous version of the Hunter Lab color space, Ka was 175 and Kb was 70. Hunter Associates Lab discovered[citation needed] that better agreement could be obtained with other color difference metrics, such as CIELAB (see above) by allowing these coefficients to depend upon the illuminants. Approximate formulae are:

${\displaystyle K_{\mathrm {a} }\approx {\frac {175}{198.04}}(X_{\mathrm {n} }+Y_{\mathrm {n} })}$
${\displaystyle K_{\mathrm {b} }\approx {\frac {70}{218.11}}(Y_{\mathrm {n} }+Z_{\mathrm {n} })}$

which result in the original values for Illuminant C, the original illuminant with which the Lab color space was used.

### As an Adams chromatic valence space

Adams chromatic valence color spaces are based on two elements: a (relatively) uniform lightness scale, and a (relatively) uniform chromaticity scale.[27] If we take as the uniform lightness scale Priest's approximation to the Munsell Value scale, which would be written in modern notation as:

${\displaystyle L=100{\sqrt {\frac {Y}{Y_{\mathrm {n} }}}}}$

and, as the uniform chromaticity coordinates:

${\displaystyle c_{\mathrm {a} }={\frac {\frac {X}{X_{\mathrm {n} }}}{\frac {Y}{Y_{\mathrm {n} }}}}-1={\frac {{\frac {X}{X_{\mathrm {n} }}}-{\frac {Y}{Y_{\mathrm {n} }}}}{\frac {Y}{Y_{\mathrm {n} }}}}}$
${\displaystyle c_{\mathrm {b} }=k_{\mathrm {e} }\left(1-{\frac {\frac {Z}{Z_{\mathrm {n} }}}{\frac {Y}{Y_{\mathrm {n} }}}}\right)=k_{\mathrm {e} }{\frac {{\frac {Y}{Y_{\mathrm {n} }}}-{\frac {Z}{Z_{\mathrm {n} }}}}{\frac {Y}{Y_{\mathrm {n} }}}}}$

where ke is a tuning coefficient, we obtain the two chromatic axes:

${\displaystyle a=K\cdot L\cdot c_{\mathrm {a} }=K\cdot 100{\frac {{\frac {X}{X_{\mathrm {n} }}}-{\frac {Y}{Y_{\mathrm {n} }}}}{\sqrt {\frac {Y}{Y_{\mathrm {n} }}}}}}$

and

${\displaystyle b=K\cdot L\cdot c_{\mathrm {b} }=K\cdot 100k_{\mathrm {e} }{\frac {{\frac {Y}{Y_{\mathrm {n} }}}-{\frac {Z}{Z_{\mathrm {n} }}}}{\sqrt {\frac {Y}{Y_{\mathrm {n} }}}}}}$

which is identical to the Hunter Lab formulas given above if we select K = Ka/100 and ke = Kb/Ka. Therefore, the Hunter Lab color space is an Adams chromatic valence color space.

## References

1. ^ CIE Colorimetry 15 (Third ed.). CIE. 2004. ISBN 3-901-906-33-9.
2. ^ a b International Color Consortium, Specification ICC.1:2004-10 (Profile version 4.2.0.0) Image technology colour management — Architecture, profile format, and data structure, (2006).
3. ^ MacEvoy, Bruce. "Explanation of this history".
4. ^ A discussion and proposed improvement, Bruce Lindbloom
5. ^ "LAB Integer Gamut —Bruce Lindbloom". brucelindbloom.com. Retrieved 2020-12-12.
6. ^ "LAB Formula". CIE Terms List. Retrieved 2021-01-12.
7. ^ 3D representations of the L*a*b* gamut, Bruce Lindbloom.
8. ^ CIE-L*C*h Color Scale
9. ^ Fairchild, Mark D. (2005). "Color and Image Appearance Models". Color Appearance Models. John Wiley and Sons. p. 340. ISBN 0-470-01216-1.
10. ^ Jain, Anil K. (1989). Fundamentals of Digital Image Processing. New Jersey, United States of America: Prentice Hall. pp. 68, 71, 73. ISBN 0-13-336165-9.
11. ^ János Schanda (2007). Colorimetry. Wiley-Interscience. p. 61. ISBN 978-0-470-04904-4.
12. ^ "CIE 1976 L*a*b* colour space | eilv". eilv.cie.co.at. Archived from the original on 2019-12-28. Retrieved 2020-12-12.
13. ^ Zeileis, Achim; Hornik, Kurt; Murrell, Paul (2009). "Escaping RGBland: Selecting Colors for Statistical Graphics" (PDF). Computational Statistics & Data Analysis. 53 (9): 3259–3270. doi:10.1016/j.csda.2008.11.033.
14. ^ Stauffer, Reto; Mayr, Georg J.; Dabernig, Markus; Zeileis, Achim (2015). "Somewhere over the Rainbow: How to Make Effective Use of Colors in Meteorological Visualizations" (PDF). Bulletin of the American Meteorological Society. 96 (2): 203–216. Bibcode:2015BAMS...96..203S. doi:10.1175/BAMS-D-13-00155.1. hdl:10419/101098.
15. ^ Margulis, Dan (2006). Photoshop Lab Color: The Canyon Conundrum and Other Adventures in the Most Powerful Colorspace. Berkeley, Calif. : London: Peachpit ; Pearson Education. ISBN 0-321-35678-0.
16. ^ The Lab Color Mode in Photoshop, Adobe TechNote 310838
17. ^ TIFF: Revision 6.0 Archived 2000-08-15 at the Wayback Machine Adobe Developers Association, 1992
18. ^ Color Consistency and Adobe Creative Suite Archived 2008-07-25 at the Wayback Machine
19. ^ Adobe Acrobat Reader 4.0 User Guide "The color model Acrobat Reader uses is called CIELAB…"
20. ^ "Lab Adjustments - RawPedia". rawpedia.rawtherapee.com. Retrieved 2018-05-08.
21. ^ "2.6. More use for CIE LAB and CIE LCH". docs.gimp.org.
22. ^ "Color Module Level 4". w3.org. Retrieved 2022-01-29.
23. ^ "lch() - CSS: Cascading Style Sheets MDN". developer.mozilla.org. Retrieved 2022-01-19.
24. ^ Hunter, Richard Sewall (July 1948). "Photoelectric Color-Difference Meter". JOSA. 38 (7): 661. (Proceedings of the Winter Meeting of the Optical Society of America)
25. ^ Hunter, Richard Sewall (December 1948). "Accuracy, Precision, and Stability of New Photo-electric Color-Difference Meter". JOSA. 38 (12): 1094. (Proceedings of the Thirty-Third Annual Meeting of the Optical Society of America)
26. ^ Hunter Labs (1996). "Hunter Lab Color Scale". Insight on Color 8 9 (August 1–15, 1996). Reston, VA, USA: Hunter Associates Laboratories.
27. ^ Adams, E.Q. (1942). "X-Z planes in the 1931 I.C.I. system of colorimetry". JOSA. 32 (3): 168–173. Bibcode:1942JOSA...32..168A. doi:10.1364/JOSA.32.000168.