![]() | This articlemay be too technical for most readers to understand. Pleasehelp improve it tomake it understandable to non-experts, without removing the technical details.(November 2010) (Learn how and when to remove this message) |
TheCIELAB color space, also referred to asL*a*b*, is acolor space defined by theInternational Commission on Illumination (abbreviated CIE) in 1976.[a] It expresses color as three values:L* for perceptual lightness anda* andb* for the fourunique colors of human vision: red, green, blue and yellow. CIELAB was intended as aperceptually 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.
Like theCIEXYZ space it derives from, CIELAB color space 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 theCIE 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 entiregamut (range) of human color perception. It is based on theopponent model of human vision, where red and green form an opponent pair and blue and yellow form an opponent pair. This makes CIELAB aHering opponent color space. The nature of the transformations also characterizes it as achromatic value color space. The lightness value,L* (pronounced "L star"), defines black at 0 and white at 100. Thea* axis is relative to the green–red opponent colors, with negative values toward green and positive values toward red. Theb* axis represents the blue–yellow opponents, with negative numbers toward blue and positive toward yellow.
The lightness value,L* in CIELAB is calculated using the cube root of therelative luminance with an offset near black. This results in aneffective power curve with an exponent of approximately 0.43 which represents the human eye's response to light under daylight (photopic) conditions.
Thea* andb* 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 clampa* andb* in the range of −128 to 127.
CIELAB is calculated relative to areference white, for which the CIE recommends the use of CIEStandard illuminantD65.[1] D65 is used in the vast majority of industries and applications, with the notable exception being theprinting industry which uses D50. TheInternational Color Consortium largely supports the printing industry and usesD50 with either CIEXYZ or CIELAB in the Profile Connection Space, for v2 and v4ICC 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 lackperceptual uniformity, particularly in the area of blue hues.[4]
The asterisks (*) afterL*,a*, andb* are pronouncedstar and are part of the full name to distinguishL*a*b* from Hunter'sLab, described below.
Since theL*a*b* model has three axes, it requires a three-dimensional space to be represented completely.[5] Also, because each axis is non-linear, it is not possible to create a two-dimensional chromaticity diagram. Additionally, 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 nonlinear relations forL*,a* andb* are intended to mimic the nonlinear response of the visual system. Furthermore, uniform changes of components in theL*a*b* color space aim to correspond to uniform changes in perceived color, so the relative perceptual differences between any two colors inL*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 theEuclidean distance between them.[6]
In order to convertRGB orCMYK values to or fromL*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 contains these needed data, which are then used to perform the conversions.
As mentioned previously, theL* coordinate nominally ranges from 0 to 100. The range ofa* andb* 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 color space. 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.
Unlike theRGB andCMYK color models, CIELAB is designed to approximate human vision. TheL* component closely matches human perception of lightness, though it does not take theHelmholtz–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 entiregamut 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.[7]
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 copyrighted by the CIE and must be purchased; however, the formulas for CIELAB are available on the CIE website.[8]
wheret is or:
X,Y, andZ describe the color stimulus considered andXn,Yn,Zn describe a specified white achromatic reference illuminant. for the CIE 1931 (2°) standard colorimetric observer and assuming normalization where the reference white hasY = 100, the values are:
Forilluminant D50, which is used in the printing industry:
The division of the domain of thef function into two parts was done to prevent an infinite slope att = 0. The functionf was assumed to be linear below somet =t0 and was assumed to match the part of the function att0 in both value and slope. In other words:
The interceptf(0) =c was chosen so thatL* would be 0 forY = 0:c =16/116 =4/29. The above two equations can be solved form andt0:
whereδ =6/29.[9]
The reverse transformation is most easily expressed using the inverse of the functionf above:
where
and whereδ =6/29.
The "CIELCh" or "CIEHLC" space is a color space based on CIELAB, which uses thepolar coordinatesC* (chroma, colorfulness of the color) andh° (hue angle, angle of the hue in the CIELAB color wheel) instead of theCartesian coordinatesa* andb*. The CIELAB lightness L* remains unchanged.
The conversion ofa* andb* toC* andh° is performed as follows:
Conversely, given thepolar coordinates, conversion to Cartesian coordinates is achieved with:
The LCh (or HLC) 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 stillperceptually uniform.
Further,H andh 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 angleh,C = 0 means the achromatic colors (non saturated), that is, the gray axis.
The simplified spellings LCh, LCh(ab), LCH, LCH(ab) and HLC are common, but the letter presents a different order.HCL color space (Hue-Chroma-Luminance) on the other hand is a commonly used alternative name for theL*C*h(uv) color space, also known as thecylindrical representation orpolarCIELUV. This name is commonly used byinformation visualization practitioners who want to present data without the bias implicit in using varyingsaturation.[11][12] The name Lch(ab) is sometimes used to differentiate from L*C*h(uv).
A related color space, the CIE 1976L*u*v* color space (a.k.a.CIELUV), preserves the sameL* asL*a*b* but has a different representation of the chromaticity components. CIELAB and CIELUV can also be expressed in cylindrical form (CIELChab[13] andCIELChuv, respectively), with the chromaticity components replaced by correlates ofchroma andhue.
Since the work on CIELAB and CIELUV, the CIE has been incorporating an increasing number ofcolor appearance phenomena into their models and difference equations to better predict human color perception. Thesecolor appearance models, of which CIELAB is a simple example,[14] culminated withCIECAM02.
Oklab is built on the same spatial structure and achieves greater perceptual uniformity.
Some systems and software applications that support CIELAB include:
Hunter Lab (also known as Hunter L,a,b) is acolor space defined in 1948[24][25] byRichard S. Hunter. It was designed to be computed via simple formulas from theCIEXYZ space, but to be more perceptually uniform. Hunter named his coordinatesL,a andb.
Hunter Lab was a precursor toCIELAB, created in 1976 by theInternational Commission on Illumination (CIE), which named the coordinates for CIELAB asL*,a*,b* to distinguish them from Hunter's coordinates.[24][25]