# color-space — 162 color spaces, one tiny JS API > Converts colors between 162 spaces using each space's conventional ranges > (what CSS and the defining papers use). All 162 spaces carry an independent cited > conformance anchor; 29 are differential-tested against colorjs.io in both directions. Zero dependencies, public domain (CC0). Install: npm i color-space API: space[from][to](...values) -> number[] e.g. space.rgb.oklch(255, 128, 0) Batch: space[from][to](pixels) -> Float64Array interleaved array-like, stride = channel count; a batch of one = the v2 array call Per space: space[name].range (channel ranges), space[name].name Metadata: color-space/data.json — spaces (channels, refs, illuminant, referred, dynamic, year, by, use, neighbors) + gamuts, whitepoints, CMFs, conformance Tree-shaken: import oklch from 'color-space/oklch.js' (~2 kB per space; scalar form — batch is wired by the hubs) Compact hub: import space from 'color-space/lite' — the 27 wasm-covered spaces in plain JS (~9 kB gzip), same two-form API WASM: import space, { alloc } from 'color-space/wasm' — same API, 27 spaces: scalar via true multi-value exports, buffers zero-copy via alloc(n) LUT export: import { cube } from 'color-space/lut' — cube(space.slog3, space.rec709) -> .cube file (Resolve, Premiere, Final Cut, OBS, ffmpeg), header states its own measured deviation, 151 of 162 spaces; { shaper: true } = Resolve-flavor 1D+3D combined cube (shaped 33³ beats plain 65³ for log->display) ICC export: import { profile } from 'color-space/icc' — profile(space.p3) -> .icc bytes; matrix+TRC display profile for RGB working spaces (colorants pinned to Lindbloom, ColorSync-verified), CLUT (mft2, Lab PCS) colour-space/input profile for everything else incl. munsell/cmyk/kelvin (lcms-verified); profile(space.lab, { xyz: space.xyz }) adds the reverse table where the inverse is continuous Data: color-space/data.json — the whole registry, language-neutral: per-space metadata + ranges, conversion-graph edges, gamut primaries, whitepoints, CIE 1931 2° CMFs, cited conformance triples the test suite pins to MCP: npx --yes --package color-space color-space-mcp — zero-dep stdio server; tools: convert / space / spaces / cube, so agents call the library instead of guessing color math Site: https://color-space.io/ Repo: https://github.com/colorjs/color-space ## Display & web - rgb — sRGB — the standard RGB color space created by HP and Microsoft in 1996 and later standardized as IEC 61966-2-1. It defines a D65 white point and a piecewise gamma-like transfer curve tuned to typical display response. It became the default color space of the web and of untagged digital images, and remains the assumed gamut for ordinary displays, browsers and image formats today. | origin: 1996 HP & Microsoft | channels: R 0–255, G 0–255, B 0–255 | ref: https://www.w3.org/TR/css-color-4/#numeric-srgb - p3 — Display P3 — Apple's wide-gamut display space, introduced with the 2015 iMac and standardized into CSS Color 4 as `display-p3`. It keeps sRGB's transfer curve and D65 white but adopts the wider DCI-P3 film primaries, covering about 25% more colors — the default canvas of modern iPhones, iPads and Macs. | origin: 2015 Apple | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.w3.org/TR/css-color-4/#predefined-display-p3 - rec2020 — Rec. 2020 — the ITU-R BT.2020 standard defining the color gamut and transfer characteristics for ultra-high-definition television. It uses a transfer function with the same piecewise shape as Rec. 709, but spans a dramatically wider set of primaries that approach the outer limits of human color perception — the target gamut for 4K and 8K UHD broadcast, streaming and HDR displays. | origin: 2012 ITU-R | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.itu.int/rec/R-REC-BT.2020 - lrgb — Linear-light sRGB — the same D65 white point and primaries as sRGB, but with the gamma-like transfer curve removed so that channel values sit directly proportional to light intensity. It is not a space displays use directly; instead it is the physically meaningful intermediate for color math such as mixing, blending and colorimetric conversions, where operating on gamma-encoded values would give wrong results. | origin: 1996 HP & Microsoft (sRGB) | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.w3.org/TR/css-color-4/#predefined-sRGB-linear - rec709 — Rec. 709 — the ITU-R BT.709 standard defining the color primaries and transfer function for HDTV. It shares sRGB's red-green-blue primaries and D65 white point, differing only in a camera-oriented transfer curve (OETF) designed for broadcast cameras rather than computer displays. It remains the reference gamut for HD video production and broadcast. | origin: 1990 ITU-R (CCIR) | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.itu.int/rec/R-REC-BT.709 - prophoto — ProPhoto RGB — also known as ROMM RGB, developed by Kodak as a working space for high-end digital photography. Its primaries extend beyond the range of human vision, giving it one of the largest gamuts of any standard RGB space, though this means colors must be stored at higher bit depths to avoid visible banding. It is a common working space in raw photo processing, referenced to the D50 white point. | origin: 1999 Kodak | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.color.org/ROMMRGB.pdf - a98rgb — Adobe RGB — introduced by Adobe in 1998 as a wider-gamut alternative to sRGB, designed to reproduce more of the cyans and greens achievable in CMYK printing. It keeps sRGB's D65 white point but uses different primaries and a slightly different gamma. It remains a standard working space in photography and print production, where sRGB's narrower gamut would clip too much color. | origin: 1998 Adobe Systems | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf - dci-p3 — DCI-P3 — the digital cinema standard defined in SMPTE RP 431-2 for theatrical projection and mastering. It shares its wide red-green-blue primaries with Apple's Display P3, but pairs them with the DCI theatrical white point and a pure gamma-2.6 transfer curve rather than the D65 white and sRGB-like curve used in consumer display variants. It remains the reference space for digital film production and distribution. | origin: 2005 DCI (Digital Cinema Initiatives) | channels: R 0–1, G 0–1, B 0–1 | ref: https://pub.smpte.org/latest/rp431-2/rp0431-2-2011.pdf - p3-linear — Linear-light Display P3 — the gamma-free counterpart to Apple's Display P3, sharing its wide DCI-P3-derived primaries and D65 white point but with channel values directly proportional to light intensity. It is the intermediate space for accurate color math and image processing, before results are re-encoded with the Display P3 transfer curve for output. | origin: 2015 Apple | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.w3.org/TR/css-color-4/#predefined-display-p3 - rec2020-linear — Linear-light Rec. 2020 — the gamma-free counterpart to the ITU-R BT.2020 UHDTV standard, sharing its extremely wide primaries and D65 white point but with channel values directly proportional to light intensity. It is the working space for accurate color math, compositing and grading of UHD/HDR content, before results are re-encoded with the Rec. 2020 transfer function for delivery. | origin: 2012 ITU-R | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.itu.int/rec/R-REC-BT.2020 - a98rgb-linear — Linear-light Adobe RGB — the gamma-free counterpart to Adobe RGB 1998, sharing its wider-than-sRGB primaries and D65 white point but with channel values directly proportional to light intensity. It is the intermediate space for accurate color math, before results are re-encoded with Adobe RGB's transfer curve. | origin: 1998 Adobe Systems | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf - prophoto-linear — Linear-light ProPhoto RGB — the gamma-free counterpart to Kodak's ProPhoto (ROMM) RGB, sharing its very wide primaries and D50 white point but with channel values directly proportional to light intensity. It is the intermediate space for color math on ProPhoto-referenced images, such as raw photo processing, before results are re-encoded with ProPhoto's transfer curve. | origin: 1999 Kodak | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.color.org/ROMMRGB.pdf - scrgb — scRGB — a linear-light extension of sRGB standardized as IEC 61966-2-2, created to carry wide-gamut and HDR signals through an otherwise ordinary sRGB pipeline. It keeps sRGB's D65 white point and primaries but removes the gamma curve and widens the encoding range well beyond the usual 0-1 span, allowing values for colors brighter or more saturated than standard sRGB can display. | origin: 2003 IEC | channels: R -0.5–7.4998779296875, G -0.5–7.4998779296875, B -0.5–7.4998779296875 | ref: https://webstore.iec.ch/publication/6171 - rimm — RIMM RGB — Reference Input Medium Metric RGB, standardized in ISO 22028-3 as the scene-referred counterpart to Kodak's ProPhoto (ROMM) RGB. It shares ProPhoto's very wide D50 primaries but applies a camera-style transfer function with extended highlight headroom above diffuse white, letting it carry scene exposure values that would otherwise clip. It is meant to carry unrendered scene data through an imaging pipeline prior to output-referred rendering. | origin: 2000 Kodak | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.iso.org/standard/58005.html - cie-rgb — CIE RGB — the experimental color space built directly from the 1931 Wright-Guild color-matching experiments, whose data became the foundation for the CIE XYZ standard itself. Its three primaries are monochromatic single-wavelength lights rather than the broadband primaries of any real display, referenced to an equal-energy white point. It survives today mainly as a historical and pedagogical space — the common ancestor from which nearly every later RGB space descends. | origin: 1931 CIE | channels: R 0–1, G 0–1, B 0–1 | ref: https://doi.org/10.1098/rsta.1932.0005 - ntsc — NTSC RGB — the color primaries defined by the FCC in 1953 for the first US color television broadcasts, later formalized in ITU-R BT.470 System M. Referenced to Illuminant C with a gamma of about 2.2, it remains the historical benchmark against which gamut coverage is still quoted today ("% NTSC"), even though its wide red and green primaries were never fully realized by real phosphors and were later superseded by SMPTE-C and Rec. 709. | origin: 1953 FCC | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.itu.int/rec/R-REC-BT.470 - pal — PAL/SECAM RGB — the primaries used by 625-line analogue television across Europe and much of the world, defined in EBU Tech 3213 and ITU-R BT.470 (System B/G). It shares sRGB's D65 white point and a similar gamma of about 2.2, but its green primary is subtly different, so it is formally distinct from Rec. 709 — the correct gamut to use when working with archival PAL or SECAM broadcast material. | origin: 1967 Walter Bruch / Telefunken | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.itu.int/rec/R-REC-BT.470 - apple-rgb — Apple RGB — the working space used by classic Mac OS, modeling the color response of Apple's original Trinitron CRT displays. Referenced to the D65 white point with a gamma of about 1.8, Apple's historic system default, it remained a common Photoshop working space for years and is still encountered in millions of legacy image files. | origin: 1987 Apple Computer | channels: R 0–1, G 0–1, B 0–1 | ref: http://www.brucelindbloom.com/WorkingSpaceInfo.html - smpte-240m — SMPTE 240M — the interim HDTV standard published by SMPTE in 1988, used during the early analog high-definition era before Rec. 709 was finalized. It shares its wide broadcast primaries with SMPTE-C, referenced to D65 white, but defines its own transfer function — a gamma-like curve with a linear segment near black — distinct from the curves used in BT.601 and BT.709. | origin: 1988 SMPTE | channels: R 0–1, G 0–1, B 0–1 | ref: https://ieeexplore.ieee.org/document/7291461 ## Cylindrical - hsl — HSL — Hue, Saturation, Lightness, a cylindrical remapping of RGB devised by Alvy Ray Smith in 1978. Hue is the angle around a color wheel, saturation measures colorfulness relative to gray at that lightness, and lightness runs from black through the pure hue up to white. It offers a far more intuitive way to pick and adjust colors than raw RGB, and underlies the `hsl()` notation in CSS and countless color-picker interfaces. | origin: 1978 Alvy Ray Smith | channels: H 0–360°, S 0–100, L 0–100 | ref: https://www.w3.org/TR/css-color-4/#the-hsl-notation - hsv — HSV — Hue, Saturation, Value (also called HSB, for Brightness), another cylindrical remapping of RGB from Alvy Ray Smith's 1978 paper. It shares HSL's hue angle but replaces lightness with value, the brightness of the most intense color channel, so pure hues stay fully saturated across the whole brightness range instead of washing out toward white. It is the model behind most color-picker "wheel plus square" interfaces. | origin: 1978 Alvy Ray Smith | channels: H 0–360°, S 0–100, V 0–100 | ref: https://alvyray.com/Papers/CG/color78.pdf - hwb — HWB — Hue, Whiteness, Blackness, devised by Alvy Ray Smith in 1996 as an even more intuitive alternative to HSV for humans mixing colors by hand. Instead of saturation and value, it describes a color as a pure hue diluted with some amount of white and some amount of black, mirroring how painters think about tinting and shading a pigment. It is standardized in CSS Color 4 as the `hwb()` notation. | origin: 1996 Alvy Ray Smith | channels: H 0–360°, W 0–100, B 0–100 | ref: https://www.w3.org/TR/css-color-4/#the-hwb-notation - hsi — HSI — Hue, Saturation, Intensity, a cylindrical color model popular in image processing and computer vision. Intensity is simply the average of the red, green and blue channels, which decouples brightness from color information more cleanly than HSV or HSL for tasks like segmentation and feature extraction, at the cost of a more involved saturation calculation than its cousins. | origin: 1976 John R. Kender | channels: H 0–360°, S 0–100, I 0–100 - hcg — HCG — Hue, Chroma, Gray, a cylindrical RGB model that separates a color into its pure hue, the chroma (colorfulness) mixed into it, and the amount of gray added to dilute it. Unlike HSL or HSV, chroma here is an absolute measure of colorfulness rather than one relative to lightness or value — a natural fit for additive hue-and-gray color mixing. | origin: 2011 community convention | channels: H 0–360°, C 0–100, G 0–100 | ref: https://github.com/Qix-/color-convert - hcl — HCL — a cylindrical Hue, Chroma, Luminance color space from the Chilliant rgb2hsv reference implementation. Hue and chroma behave much like other cylindrical RGB models, but luminance is computed with a gamma-weighted formula designed to track perceived brightness more closely than plain lightness or value. It is unrelated to CIE LCh, which is also sometimes called "HCL" but uses entirely different math — the two should not be confused. | origin: 2012 Ian Taylor (Chilliant) | channels: H 0–360°, C 0–100, L 0–100 | ref: http://www.chilliant.com/rgb2hsv.html - hsp — HSP — Hue, Saturation, Perceived brightness, a cylindrical color model designed to fix a known flaw in HSL and HSV, where lightness and value don't match how bright colors actually look to the human eye. Perceived brightness is instead computed from a weighted mix of the red, green and blue channels that reflects the eye's differing sensitivity to each, so two colors with the same P value look equally bright regardless of hue. | origin: 2006 Darel Rex Finley | channels: H 0–360°, S 0–100, P 0–100 | ref: https://alienryderflex.com/hsp.html - hcy — HCY — Hue, Chroma, Luma, a cylindrical color model devised by Kuzma Shapran and popularized by Chilliant for real-time shader use. Unlike HSI or HSL, its Y channel is the color's actual Rec. 601 luma rather than an average or extremum of the RGB channels, and chroma is normalized against the maximum luma the current hue can carry. The result is that two colors with equal Y always read as equally bright, a property neither HSL nor HSV guarantees. | origin: 2012 Kuzma Shapran (popularized by Chilliant) | channels: H 0–360°, C 0–100, Y 0–100 | ref: http://chilliant.blogspot.com/2012/08/rgbhcy-in-hlsl.html - hsm — HSM — Hue, Saturation, Mixture, developed by Bianconi et al. (2009) for robust skin-color detection in image processing. Mixture is a luminance-weighted average of the red, green and blue channels standing in for brightness, while saturation measures how far a color sits from that gray mixture relative to the farthest a color at the same mixture level can reach, keeping saturation properly bounded across the whole range of mixture values. | origin: 2009 Bianconi et al. | channels: H 0–360°, S 0–100, M 0–100 | ref: http://seer.ufrgs.br/rita/article/viewFile/rita_v16_n2_p141/7428 ## Perceptual – modern - oklch — OKLCH is the cylindrical form of Björn Ottosson's 2020 OKLab, with perceptual lightness, chroma and hue. Designed so equal numeric steps look equal to the eye, it fixes CIELAB's blue-shift; `oklch()` is now the recommended way to define design-token palettes on the web. | origin: 2020 Björn Ottosson | channels: L 0–1, C 0–0.4, H 0–360° | ref: https://www.w3.org/TR/css-color-4/#ok-lab - oklab — Oklab is Björn Ottosson's 2020 perceptual color space, created as a practical replacement for CIELAB in graphics and design work. It models color starting from how the eye's cone cells respond to light, then reshapes that signal so equal numeric steps correspond to equal perceived change in lightness, hue and chroma. That uniformity avoids the hue drift and desaturation that CIELAB and HSL produce when interpolating between colors, which is why Oklab now underlies CSS Color 4's oklab() and oklch() functions and much of the tooling built for gradients and palette generation. | origin: 2020 Björn Ottosson | channels: L 0–1, a -0.4–0.4, b -0.4–0.4 | ref: https://bottosson.github.io/posts/oklab/ - hct — HCT — hue, chroma, tone — is Google's color space for Material Design 3, introduced in 2021 to power Android's Material You dynamic theming. It pairs the hue and chroma of CAM16, a full color-appearance model that accounts for viewing conditions, with tone: CIELAB's L* lightness, chosen because contrast and accessibility formulas already depend on it. That combination lets a design system derive a complete tonal palette from a single seed color while keeping predictable contrast between any two tones. | origin: 2021 Google (Material Design) | channels: H 0–360°, C 0–145, T 0–100 | ref: https://material.io/blog/science-of-color-design - okhsl — OkHSL is Björn Ottosson's 2021 hue-saturation-lightness remapping of Oklab, built for use in ordinary color-picker interfaces. Saturation is rescaled per hue and lightness so that 100% always lands exactly on the sRGB gamut boundary, giving sliders that stay in gamut and feel evenly spaced across their whole range — a guarantee plain HSL, built on gamma-encoded RGB, never offered. It pairs with OkHSV and OkHWB as a family of perceptually even color pickers derived from Oklab. | origin: 2021 Björn Ottosson | channels: H 0–360°, S 0–100, L 0–100 | ref: https://bottosson.github.io/posts/colorpicker/#okhsl - okhsv — OkHSV is Björn Ottosson's 2021 hue-saturation-value counterpart to OkHSL, built on Oklab using the value-based model of traditional HSV rather than lightness. Saturation and value are shaped so the space forms a cone that fits exactly inside the sRGB gamut, keeping HSV's familiar layout — pure hues at full saturation and value — while giving perceptually even lightness and chroma underneath. It suits color pickers and palette tools built around an HSV-style saturation/value grid. | origin: 2021 Björn Ottosson | channels: H 0–360°, S 0–100, V 0–100 | ref: https://bottosson.github.io/posts/colorpicker/#okhsv - okhwb — OkHWB is the whiteness-blackness counterpart to OkHSV, extending Björn Ottosson's 2021 family of Oklab-based color pickers. Like the classic HWB model, it describes any color as a pure hue mixed with some amount of white and some amount of black — a way of thinking about color closer to how painters mix tints and shades than hue/saturation/lightness sliders allow. Built directly on OkHSV, it inherits that space's perceptual evenness while staying bounded to the sRGB gamut. | origin: 2021 Björn Ottosson | channels: H 0–360°, W 0–100, B 0–100 | ref: https://bottosson.github.io/posts/colorpicker/#okhwb - oklrab — OkLrab is Björn Ottosson's 2021 adjustment to Oklab's lightness channel, applying a toe curve that compresses near-black values closer to how the eye actually perceives them. Plain Oklab's lightness diverges from CIELAB at the dark end, so blacks read as lighter than they should; the toe mapping corrects this while leaving the a and b axes untouched. It's used mainly for gamut mapping and lightness comparisons where accurate dark-tone behavior matters more than strict fidelity to the original Oklab formulation. | origin: 2021 Björn Ottosson | channels: L 0–1, a -0.4–0.4, b -0.4–0.4 | ref: https://bottosson.github.io/posts/colorpicker/ - oklrch — OkLrch is the cylindrical form of OkLrab, Björn Ottosson's toe-mapped variant of Oklab, converting its lightness and rectangular a/b axes into lightness, chroma and hue. It carries over OkLrab's corrected dark-tone behavior while presenting color the way people usually reason about it — a hue at some strength and brightness. That suits palette generation and gamut-mapping tools that need both accurate darks and an intuitive chroma/hue handle. | origin: 2021 Björn Ottosson | channels: L 0–1, C 0–0.4, H 0–360° | ref: https://bottosson.github.io/posts/colorpicker/ - srlab2 — SRLAB2 is Jan Behrens' attempt to combine the best of CIELAB and CIECAM02. It runs color through CIECAM02's CAT02 chromatic adaptation and then finishes with a CIELAB-style cube-root opponent stage, rather than CIELAB's simpler and less accurate adaptation step. The result is noticeably more perceptually uniform than plain CIELAB, especially for saturated colors, while staying as easy to compute and invert as Lab itself, without CIECAM02's full viewing-condition machinery. | origin: 2009 Jan Behrens | channels: L 0–100, a -125–125, b -125–125 | ref: https://www.magnetkern.de/srlab2.html - prolab — proLab is a projective perceptual color space proposed by Konovalenko and colleagues in 2021. Where CIELAB reshapes XYZ with an independent cube root on each channel, proLab applies a single projective transformation, so that straight-line mixtures of light — additive color mixing — stay straight lines in proLab coordinates while distances still track human discrimination thresholds the way CIELAB's do. That combination suits image-processing and color-difference work that depends on linear blending staying linear after the color transform. | origin: 2021 Konovalenko et al. | channels: L 0–100, a -125–125, b -125–125 | ref: https://arxiv.org/abs/2012.07653 - sucs — sUCS is the uniform color space built from sCAM, a "simple" color-appearance model published by Li and Luo in 2024. It aims to match the perceptual uniformity of CAM16-UCS — equal numeric distances corresponding to equal perceived differences — through a far lighter calculation pipeline than a full appearance model like CAM16 requires. It's meant as a fast, lower-complexity substitute for CAM16-UCS or Oklab in tasks such as color-difference measurement that don't need viewing-condition parameters. | origin: 2024 Li & Luo | channels: I 0–100, a -50–50, b -50–50 | ref: https://doi.org/10.1364/OE.510196 - igpgtg — IgPgTg is a color space proposed by Hensley and Fairchild in 2020 as a lighter-weight alternative to CAM16-UCS for hue-uniform color-difference work. Structurally it follows IPT, deriving a lightness signal from LMS cone responses and pairing it with two opponent channels — named Ig, Pg and Tg for intensity, protan and tritan, after the color-vision deficiencies their axes roughly align with. The authors report hue uniformity competitive with CAM16-UCS at a fraction of the computational cost. | origin: 2020 Hensley & Fairchild | channels: Ig 0–1, Pg -1–1, Tg -1–1 | ref: https://doi.org/10.2352/issn.2169-2629.2020.28.13 ## Perceptual – CIE classic - lab — CIELAB is the CIE's 1976 perceptual color space, the first widely adopted attempt to make Euclidean distance between coordinates track perceived color difference. It splits color into lightness and two opponent axes — red versus green and yellow versus blue — echoing how the visual system encodes color beyond the retina. Color-managed workflows conventionally anchor Lab to the D50 illuminant, which is why it is the ICC profile connection space and the reference form of CSS Color 4's lab() function, rather than tying it to any particular display's white point. | origin: 1976 CIE | channels: L 0–100, a -125–125, b -125–125 | ref: https://www.w3.org/TR/css-color-4/#lab-colors - lchab — LCh(ab) is the cylindrical form of CIELAB, the CIE's 1976 perceptual space, converting its rectangular a/b axes into chroma and hue so color can be adjusted the way people actually think about it — how saturated, and what hue — rather than as red-green and yellow-blue offsets. Lightness carries over unchanged from Lab, so the two share the same perceptual uniformity; only the color-axis representation differs. It underlies CSS Color 4's lch() function and is a common choice for building perceptually even saturation or hue controls. | origin: 1976 CIE | channels: L 0–100, C 0–150, H 0–360° | ref: https://www.w3.org/TR/css-color-4/#cie-lab - luv — CIE L*u*v* (CIELUV) is the CIE's 1976 companion to CIELAB, an alternative attempt at perceptual uniformity built from a projected version of the CIE chromaticity diagram rather than Lab's opponent differencing. Its defining property is additivity: the position of a mixture of two lights falls on the straight line between the two lights' own coordinates, something Lab cannot do. That has made LUV the traditional choice for additive-color contexts like displays and stage lighting, while Lab remains dominant for reflective and print color. | origin: 1976 CIE | channels: L 0–100, U -215–215, V -215–215 | ref: https://cie.co.at/publications/colorimetry-4th-edition - hsluv — HSLuv is Alexei Boronine's human-friendly cylindrical form of CIELUV, built to fix a longstanding frustration with HSL: at full saturation, different hues reach wildly different actual vividness, so pure yellow at S=100 looks nothing like pure blue at S=100. HSLuv rescales chroma per hue and lightness so that S=100 always lands exactly on the sRGB gamut boundary, giving a saturation slider that behaves consistently across every hue. Lightness and hue pass through unchanged from LCHuv, and the result is popular in design tools and palette generators that want HSL's familiar interface without its uneven color behavior. | origin: 2012 Alexei Boronine | channels: H 0–360°, S 0–100, L 0–100 | ref: https://www.hsluv.org/ - lchuv — LCh(uv) is the cylindrical form of CIELUV, the CIE's 1976 companion to CIELAB, converting its rectangular u/v axes into chroma and hue much as LCh(ab) does for Lab. It inherits LUV's defining additivity — mixtures of lights move predictably through the space — while giving a more intuitive saturation-and-hue handle for adjusting or comparing colors. It's also the basis for HSLuv and HPLuv, which rescale its chroma to fit the sRGB gamut. | origin: 1976 CIE | channels: L 0–100, C 0–220, H 0–360° | ref: https://cie.co.at/publications/colorimetry-4th-edition - lab-d65 — Lab-D65 is CIELAB — the CIE's 1976 perceptual space — reanchored to the D65 white point instead of the standard's usual D50, so it lines up directly with sRGB, Rec. 709 and Display P3. Keeping Lab and the display on the same white point avoids an extra chromatic-adaptation step when converting to and from RGB, which matters for work that stays entirely within a D65 display's color world rather than crossing into device-independent interchange. Its structure is otherwise identical to standard CIELAB: perceptually even lightness paired with red-green and yellow-blue opponent axes. | origin: 1976 CIE | channels: L 0–100, a -125–125, b -125–125 | ref: https://cie.co.at/publications/colorimetry-4th-edition - lch-d65 — LCh-D65 is the cylindrical form of Lab-D65 — CIELAB reanchored to the D65 white point — converting its rectangular axes into chroma and hue while keeping that display-matching white point. It gives the same intuitive saturation-and-hue handles as standard LCh, but without the chromatic-adaptation step a D50-anchored Lab would need when working directly with display colors. | origin: 1976 CIE | channels: L 0–100, C 0–150, H 0–360° | ref: https://cie.co.at/publications/colorimetry-4th-edition - hpluv — HPLuv is the pastel counterpart to HSLuv, from the same project by Alexei Boronine. Instead of fitting saturation to the sRGB gamut boundary at each individual hue, it uses the single largest circle that fits inside the gamut at a given lightness, so every hue stays reachable across the full saturation range — at the cost of never reaching fully vivid colors, since S=100 only means as saturated as the least colorful hue at that lightness allows. Lightness and hue pass through unchanged from LCHuv, just as in HSLuv; only the chroma mapping differs. | origin: 2012 Alexei Boronine | channels: H 0–360°, S 0–100, L 0–100 | ref: https://www.hsluv.org/ - din99o-lab — DIN99o Lab is a further nonlinear remapping of CIELAB, part of the German DIN 6176 color-difference standard, built so that a simple Euclidean distance between two points approximates perceived color difference far more closely than raw CIELAB does. It compresses Lab's lightness and chroma logarithmically and applies a hue rotation, correcting CIELAB's well-known tendency to overstate differences among highly saturated colors. The DIN99 family is used mainly in industrial color-tolerance work — coatings, plastics and automotive finishes — as a lighter alternative to the more elaborate CIE ΔE2000 formula. | origin: 2018 DIN (FNF/FNL 2 committee) | channels: L 0–100, a -40–40, b -40–40 | ref: https://de.wikipedia.org/wiki/DIN99-Farbraum - din99o-lch — DIN99o LCh is the cylindrical form of DIN99o Lab, the DIN 6176 color-difference space, converting its rectangular axes into chroma and hue for the same reason LCh does for ordinary CIELAB — a more direct handle for adjusting saturation and hue. It keeps DIN99o's central advantage: because the space is built so Euclidean distance already approximates perceived difference, a simple chroma or lightness difference here is a meaningful color-tolerance metric without further correction formulas. | origin: 2018 DIN (FNF/FNL 2 committee) | channels: L 0–100, C 0–51.484, H 0–360° | ref: https://de.wikipedia.org/wiki/DIN99-Farbraum - din99d — DIN99d is a 2002 refinement of the DIN99 uniform color space by Cui, Luo, Rigg, Roesler and Witt, aimed at fixing the original formula's uneven treatment of blue hues. It adds a correction applied to the tristimulus values before the CIELAB step, along with the family's usual hue rotation and logarithmic compression, so Euclidean distance between two DIN99d points tracks perceived difference more evenly across the hue circle than DIN99 or CIELAB manage alone. Like the rest of the DIN99 family, it's used mainly for industrial color-tolerance work where a simple Euclidean metric is preferred over CIE ΔE2000. | origin: 2002 Cui, Luo, Rigg, Roesler & Witt | channels: L 0–100, a -50–50, b -50–50 | ref: https://doi.org/10.1002/col.10066 - labh — Hunter Lab is Richard Hunter's 1948 opponent-color space, developed years before CIELAB as one of the first practical attempts at a perceptually meaningful, roughly uniform coordinate system for measuring surface color. Like Lab it separates lightness from a red-green and a yellow-blue axis, but reaches them through a simpler transform tied to Hunter's own reflectance instruments rather than CIELAB's cube root. It's less perceptually uniform than CIELAB, but its head start left it entrenched in industrial color-quality work — paints, plastics, textiles and food — where legacy specifications still report in Hunter Lab units. | origin: 1948 Richard S. Hunter | channels: L 0–100, a -75–115, b -210–60 | ref: https://www.hunterlab.com/media/documents/duplicate-of-an-1005-hunterlab-vs-cie-lab.pdf - ucs — CIE 1960 UCS is a uniform chromaticity space devised by MacAdam, an early attempt to make equal distances on a chromaticity diagram correspond to equal perceived color differences. It was extended into CIE 1964 U*V*W* by adding a lightness dimension, then superseded outright by CIELUV in 1976. Its underlying (u, v) chromaticity coordinates are still the basis for correlated-color-temperature calculations today, which makes it more a piece of color-science history than a working color space. | origin: 1960 David MacAdam / CIE | channels: U 0–64, V 0–100, W 0–160 | ref: https://doi.org/10.1364/JOSA.27.000294 - uvw — CIE 1964 U*V*W* is Wyszecki's extension of the CIE 1960 UCS chromaticity diagram into a full three-dimensional color space, adding a cube-root lightness dimension on top of the earlier system's uniform chromaticity coordinates. It was one of several perceptual color spaces proposed during the 1960s, all trying to make Euclidean distance track perceived color difference better than raw XYZ did. CIELUV superseded it outright in 1976, so today it's mainly of historical interest, marking the transition between the 1960 chromaticity diagram and the modern CIE 1976 spaces. | origin: 1964 Günther Wyszecki / CIE | channels: U -85–175, V -90–75, W -17–100 | ref: https://doi.org/10.1364/JOSA.53.001318 - anlab — ANLAB is the chromatic-valence opponent space developed by Adams in 1942 and extended by Nickerson in 1950 — the direct ancestor of CIELAB. It builds lightness and two opponent color channels by running each adapted tristimulus ratio through the Munsell Renotation System's empirical value function and then taking differences between the results, the same opponent-color logic CIELAB later kept while replacing that iterative Munsell function with a closed-form cube root in 1976. ANLAB saw substantial industrial use for color-difference measurement in the decades before CIELAB standardized the field. | origin: 1942 Elliot Q. Adams (ext. Dorothy Nickerson, 1950) | channels: L 0–100, a -100–100, b -100–100 | ref: https://onlinelibrary.wiley.com/doi/10.1111/j.1478-4408.1970.tb02962.x ## HDR & wide gamut - ictcp — ICtCp — Dolby's HDR opponent space, standardized in ITU-R BT.2100 for HDR television. Intensity rides the PQ curve while Ct and Cp carry blue-yellow and red-green chroma, keeping hue stable under big luminance changes — the space HDR colorists grade in and the basis of the ΔE-ITP difference metric. | origin: 2016 Dolby (BT.2100) | channels: I 0–1, Ct -0.5–0.5, Cp -0.5–0.5 | ref: https://www.itu.int/rec/R-REC-BT.2100 - jzazbz — JzAzBz — a perceptually uniform color space for high-dynamic-range imagery, published by Safdar et al. in 2017. It was designed so small lightness and color differences stay perceptually uniform across HDR's much wider luminance and gamut range, where CIELAB's uniformity breaks down. Jz is a PQ-encoded lightness, while az and bz are opponent red-green and yellow-blue axes; together they underlie HDR color-difference metrics and feed the cylindrical JzCzHz. | origin: 2017 Safdar et al. | channels: Jz 0–1, az -0.5–0.5, bz -0.5–0.5 | ref: https://doi.org/10.1364/OE.25.015131 - rec2100-pq — Rec. 2100 PQ — the HDR RGB encoding from ITU-R BT.2100, pairing Rec. 2020's wide-gamut primaries with the PQ (Perceptual Quantizer) transfer function, SMPTE ST 2084, originally developed by Dolby. Unlike SDR gamma, PQ encodes absolute scene luminance directly, so a given code value always means the same brightness regardless of a display's peak brightness. It's the transfer function behind HDR10 and most HDR video streaming and mastering pipelines. | origin: 2016 Dolby / ITU-R | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.itu.int/rec/R-REC-BT.2100 - rec2100-hlg — Rec. 2100 HLG — ITU-R BT.2100's other HDR transfer function, Hybrid Log-Gamma, developed jointly by the BBC and NHK for broadcast. Where PQ encodes absolute luminance, HLG stays scene-referred and backward compatible: it behaves like ordinary gamma near black and switches to a logarithmic curve for highlights, so an unmodified SDR display can still render a reasonable picture without any metadata. It's the format of choice for live HDR broadcast. | origin: 2016 BBC & NHK / ITU-R | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.itu.int/rec/R-REC-BT.2100 - jzczhz — JzCzHz — the cylindrical form of JzAzBz, trading the az/bz opponent axes for polar chroma (Cz) and hue (Hz). It shares JzAzBz's 2017 Safdar et al. foundation for HDR perceptual uniformity, but makes hue and saturation directly readable, which suits gamut mapping and color grading. It's one of the HDR color spaces proposed in the CSS Color HDR module. | origin: 2017 Safdar et al. | channels: Jz 0–1, Cz 0–0.5, Hz 0–360° | ref: https://www.w3.org/TR/css-color-hdr/#JzCzHz - ipt — IPT — an opponent color space built by Ebner & Fairchild in 1998 specifically so lines of constant hue stay straight under changes in saturation and lightness, a property CIELAB lacks. I, P and T stand for lightness, red-green and yellow-blue, derived from a cone-response power law followed by an opponent recombination. Its hue-linear design made it the structural ancestor of Dolby's ICtCp, and it remains a common choice for gamut mapping and image-difference work. | origin: 1998 Fritz Ebner & Mark Fairchild | channels: I 0–1, P -1–1, T -1–1 | ref: https://doi.org/10.2352/CIC.1998.6.1.art00003 - izazbz — IzAzBz — the opponent-color stage inside Safdar et al.'s 2017 derivation of Jzazbz, taken before the final hyperbolic lightness compression that turns Iz into Jz. Iz is the raw, uncompressed achromatic response from the PQ-encoded LMS signal, while az and bz carry the same red-green and yellow-blue chroma as Jzazbz. It went on to become the structural foundation of the ZCAM color appearance model. | origin: 2017 Safdar et al. | channels: Iz 0–1, az -0.5–0.5, bz -0.5–0.5 | ref: https://doi.org/10.1364/OE.25.015131 - rec2100-linear — Rec. 2100 Linear — the scene-linear RGB that sits beneath both of ITU-R BT.2100's HDR transfer functions, PQ and HLG, before either curve is applied. It carries the same wide Rec. 2020 primaries and white point into HDR, giving colorimetric operations like gamut mapping a straightforward linear-light space to work in, with headroom above reference white for specular highlights. | origin: 2016 ITU-R | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.itu.int/rec/R-REC-BT.2100 - hdr-ipt — hdr-IPT — Fairchild & Wyble's 2010/2011 extension of IPT to high-dynamic-range imagery. IPT's fixed power-law lightness response only holds over a narrow luminance range, so hdr-IPT replaces it with a Michaelis-Menten response whose exponent adapts to the scene's own luminance, echoing how the eye itself adapts. It keeps IPT's I/P/T lightness, red-green and yellow-blue structure while extending its hue-linear behavior across HDR's much larger dynamic range. | origin: 2010 Mark Fairchild & Garrett Wyble | channels: I 0–100, P -100–100, T -100–100 | ref: https://library.imaging.org/cic/articles/18/1/art00057 - hdr-cie-lab — hdr-CIELAB — Fairchild & Wyble's 2010/2011 extension of CIELAB to high-dynamic-range imagery. CIELAB's cube-root lightness response was fit to ordinary display luminance and breaks down across HDR's wider range, so hdr-CIELAB substitutes a Michaelis-Menten response whose exponent adapts to scene luminance, in the spirit of human visual adaptation. It keeps CIELAB's familiar L*, a* and b* lightness and red-green/yellow-blue structure while extending it to HDR content. | origin: 2010 Mark Fairchild & Garrett Wyble | channels: L 0–100, a -100–100, b -100–100 | ref: https://library.imaging.org/cic/articles/18/1/art00057 - icacb — ICaCb — an HDR opponent space designed by Fröhlich in 2017, built in the same mold as ICtCp but re-optimized for just-noticeable-difference uniformity and straighter hue lines. XYZ passes through a dedicated cone matrix and the PQ (ST 2084) non-linearity before the opponent mix, giving I as intensity and Ca/Cb as red-green and yellow-blue chroma. | origin: 2017 Julian Fröhlich | channels: I 0–1, Ca -0.5–0.5, Cb -0.5–0.5 | ref: https://github.com/colour-science/colour/blob/develop/colour/models/icacb.py ## Colorimetry & vision - xyz — CIE XYZ — the foundation of modern colorimetry, defined by the CIE in 1931 from the color-matching functions of the standard observer. X, Y and Z are not themselves perceptual attributes; they're engineered so Y alone carries luminance while X and Z carry chromaticity, letting any visible color be written as a weighted sum of three fixed imaginary primaries. It is the device-independent reference that RGB, Lab and other working spaces are ultimately defined against. | origin: 1931 CIE | channels: X 0–95.05, Y 0–100, Z 0–108.91 | ref: https://www.w3.org/TR/css-color-4/#cie-xyz - xyy — xyY — a reformulation of CIE XYZ that separates a color's chromaticity (x, y) from its luminance (Y), so hue and saturation can be studied independently of brightness. Plotting x against y produces the familiar horseshoe-shaped chromaticity diagram used to visualize gamuts, specify white points, and compare how much of the visible spectrum a display or printer can reproduce. | origin: 1931 CIE | channels: x 0–1, y 0–1, Y 0–100 | ref: http://www.brucelindbloom.com/index.html?Eqn_XYZ_to_xyY.html - lms — LMS — the cone-response space of human vision, where L, M and S are the long-, medium- and short-wavelength-sensitive cones of the retina. Describing color the way the eye's own photoreceptors respond makes LMS the natural space for chromatic adaptation: predicting how a color must shift to look unchanged under a different light source. Several competing cone-fundamental and adaptation matrices are in use — von Kries, Bradford, CAT02, CAT16 among them — each modeling that adaptation differently. | origin: 1979 Estévez, Hunt & Pointer | channels: L 0–100, M 0–105, S 0–110 | ref: https://cie.co.at/publications/colour-appearance-model-colour-management-systems-ciecam02 - xyz-d50 — CIE XYZ referred to the D50 illuminant instead of D65. D50 is the profile connection space ICC color-management profiles convert through, a convention inherited from graphic arts and print viewing standards, so this variant is the one to reach for when reading or writing ICC-based workflows. It relates to D65 XYZ by Bradford chromatic adaptation. | origin: 1994 ICC | channels: X 0–96.42, Y 0–100, Z 0–82.51 | ref: https://www.w3.org/TR/css-color-4/#predefined-xyz - uv — CIE 1976 UCS (u', v') — the modern, more perceptually uniform successor to the 1960 chromaticity diagram, standardized in CIE 15:2004. Equal distances on the u'v' plane correspond more closely to equal perceived color differences than the older CIE xy diagram does, which is why it's the chromaticity space of choice for LED binning, display white-point tolerancing (Δu'v'), correlated color temperature work along the Planckian locus, and colorimeter reporting. | origin: 1976 CIE | channels: u 0–0.7, v 0–0.6, Y 0–100 | ref: https://cie.co.at/publications/colorimetry-4th-edition - cct-duv — CCT + Duv — the lighting industry's two-coordinate description of near-white chromaticity. Correlated colour temperature locates the nearest point on the Planckian locus; Duv is the signed perpendicular distance from that locus in the CIE 1960 uv diagram (positive above the locus, conventionally greener; negative below it, conventionally pinker). Unlike CCT alone, the pair preserves both dimensions of chromaticity around the white-light region. | origin: 2014 Yoshi Ohno / ANSI | channels: T 1000–25000, Duv -0.05–0.05 | ref: https://doi.org/10.1080/15502724.2014.839020 - kelvin — Kelvin — correlated color temperature (CCT), the familiar scale for describing a light source's warmth or coolness by comparing it to an ideal black-body radiator: roughly 2700 K for a warm incandescent candle-like glow, up to 6500 K and beyond for cool daylight. It's the white-balance axis used throughout photography, lighting design and display calibration, mapping a single temperature value to a point on the Planckian locus. | origin: 1931 Raymond Davis; CIE (Judd) | channels: T 1000–25000 | ref: https://doi.org/10.1002/col.5080100109 - maxwell — Maxwell triangle — the barycentric chromaticity diagram for a trichromatic observer. Three receptor catches are normalized to sum to one, then placed at the vertices of an equilateral triangle. It is used across comparative vision: human LMS catches, bee UV/blue/green catches, or any other trichromatic visual phenotype share the same geometry once their observer-specific catches exist. This graph node is anchored to the library's fixed human LMS cone space; species-relative spectral receptor models require external context and are out of scope. | origin: 1860 James Clerk Maxwell | channels: x -0.7071067811865476–0.7071067811865476, y -0.4082482904638631–0.8164965809277261 | ref: https://doi.org/10.1017/S1464793102005985 - wavelength — Wavelength — the color of monochromatic light, a single point on the visible spectrum's "rainbow" of pure spectral hues, from deep violet near 380 nm to deep red near 700 nm. Converting a wavelength to CIE XYZ uses the color-matching functions of the CIE 1931 standard observer, the same experimentally-derived functions underlying all of modern colorimetry. Going the other direction recovers the nearest spectral wavelength of any color — the dominant wavelength that gives CIE DSH its hue, projected into the 380–700 nm domain. | origin: 1931 CIE | channels: wl 380–700 | ref: https://cie.co.at/datatable/cie-1931-colour-matching-functions-2-degree-observer - xyz-abs-d65 — Absolute XYZ (D65) — CIE XYZ expressed in real physical units, candela per square meter, instead of the usual 0-100 relative scale. Relative XYZ only says how a color compares to a normalized white; absolute XYZ ties every value to an actual measurable brightness, which HDR workflows need since the same relative color can sit at very different real-world luminances. The two scales meet at ITU-R BT.2100's HDR reference white. | origin: 2016 ITU-R | channels: Xa 0–192.9, Ya 0–203, Za 0–221.1 | ref: https://www.itu.int/rec/R-REC-BT.2100 - macboyn — MacLeod-Boynton (MB) chromaticity — the cone-excitation diagram MacLeod & Boynton introduced in 1979, plotting color as relative long- and short-wavelength cone excitation on a constant-luminance plane. Isolating chromaticity at the level of the cones themselves, rather than at the tristimulus values a display uses, made it the foundation of the DKL cardinal-axis space and a staple of chromatic-discrimination research in vision science. | origin: 1979 Donald MacLeod & Robert Boynton | channels: l 0.4–1, s 0–1, Y 0–100 | ref: https://doi.org/10.1364/JOSA.69.001183 - dkl — DKL — the cardinal-axis space of human color vision, proposed by Derrington, Krauskopf & Lennie in 1984 from recordings of neurons in the macaque lateral geniculate nucleus. Rather than an arbitrary opponent model, its three axes are the actual directions early visual neurons respond along: an achromatic luminance axis, an isoluminant red-green axis, and a tritan blue-yellow axis, all measured relative to an adapting white. It remains a standard framework in vision science for designing stimuli that isolate one cardinal mechanism at a time. | origin: 1984 Derrington, Krauskopf & Lennie | channels: Lum -1–1, RG -1.7–1.7, YV -1.85–1.85 | ref: https://doi.org/10.1113/jphysiol.1984.sp015499 - gray — Gray — a single-channel relative luminance value, the Y of CIE XYZ, computed from linear-light RGB rather than gamma-encoded values. That distinction matters: true luminance (Y) measures physical light output, while the "luma" (Y′) computed from gamma-encoded RGB — common in video engineering — only approximates it. Relative luminance is the quantity behind contrast-ratio calculations such as the WCAG accessibility guidelines. | origin: 1931 CIE | channels: Y 0–1 | ref: https://www.w3.org/TR/css-color-4/#grays - dsh — CIE DSH — dominant wavelength, saturation (excitation purity) and hue, the classical Helmholtz coordinates for CIE 1931 chromaticity. Rather than the Cartesian x, y pair, a color is located by the spectral wavelength it most resembles and how far it sits from white toward that pure spectral color — a natural way to talk about hue and saturation that predates CIELAB-style opponent spaces. Non-spectral purples, which have no single dominant wavelength, are reported as a negative complementary wavelength instead. | origin: 1860 Hermann von Helmholtz | channels: d -700–700, s 0–1, Y 0–100 | ref: https://cie.co.at/publications/colorimetry-4th-edition - rg — rg chromaticity — the RGB analog of CIE xy: red, green and blue are normalized by their sum, discarding overall intensity and leaving only the relative color proportions. Because it factors out brightness, it's a long-standing technique in color matching and computer vision for describing a surface's color in a way that's more robust to lighting changes than raw RGB. | origin: 1860 James Clerk Maxwell | channels: r 0–1, g 0–1 | ref: https://doi.org/10.1098/rstl.1860.0005 - yrg — Yrg — Richard Kirk's 2019 luminance/chromaticity space, built at FilmLight on CIE 2006 cone fundamentals and tuned so that hues land at even spacing around the wheel, matching the classical Munsell color order. Y carries cone-weighted luminance while r and g are chromaticity coordinates derived affinely from the cone responses, separating "how bright" from "what hue and how saturated" in a way suited to color grading. It's the chromaticity basis of darktable's color-balance module. | origin: 2019 Richard Kirk | channels: Y 0–1.06, r 0.02–0.64, g 0.21–0.78 | ref: https://doi.org/10.2352/issn.2169-2629.2019.27.38 ## Video & broadcast - ycbcr-bt709 — ITU-R BT.709 Y′CbCr — the explicit studio-range digital component encoding for HDTV. Unlike the legacy parameterised `ycbcr` node, this space fixes the standard: BT.709 primaries/OETF, Kr=0.2126, Kb=0.0722, and 8-bit legal ranges Y′ 16–235, Cb/Cr 16–240. | origin: 1990 ITU-R | channels: Y 16–235, Cb 16–240, Cr 16–240 | ref: https://www.itu.int/rec/R-REC-BT.709 - ycbcr-bt2020 — ITU-R BT.2020 non-constant-luminance Y′CbCr — the explicit studio-range digital component encoding for UHDTV. It uses Rec.2020 primaries/OETF, Kr=0.2627, Kb=0.0593, and 8-bit legal ranges Y′ 16–235, Cb/Cr 16–240. This is the common non-constant-luminance form, distinct from the library's `yccbccrc` constant- luminance representation. | origin: 2012 ITU-R | channels: Y 16–235, Cb 16–240, Cr 16–240 | ref: https://www.itu.int/rec/R-REC-BT.2020 - ycbcr-bt601-525 — ITU-R BT.601 Y′CbCr for 525-line systems — the studio-range digital component encoding used by NTSC-derived standard-definition video. It combines the BT.601 luma coefficients Kr=0.299 and Kb=0.114 with SMPTE-C primaries and 8-bit legal code ranges (Y′ 16–235, Cb/Cr 16–240). | origin: 1982 ITU-R (CCIR) | channels: Y 16–235, Cb 16–240, Cr 16–240 | ref: https://www.itu.int/rec/R-REC-BT.601 - ycbcr-bt601-625 — ITU-R BT.601 Y′CbCr for 625-line systems — the studio-range digital component encoding used by PAL/SECAM-derived standard-definition video. It combines the BT.601 luma coefficients Kr=0.299 and Kb=0.114 with EBU/PAL primaries and 8-bit legal code ranges (Y′ 16–235, Cb/Cr 16–240). | origin: 1982 ITU-R (CCIR) | channels: Y 16–235, Cb 16–240, Cr 16–240 | ref: https://www.itu.int/rec/R-REC-BT.601 - ycbcr — YCbCr is the digital luma/chroma color format behind almost all broadcast and compressed video, standardized by the ITU-R as BT.601 for standard-definition and BT.709 for high-definition. It carries forward the idea behind its analog ancestors YUV and YPbPr — a luma channel Y that alone reproduces a usable grayscale image, paired with blue-difference and red-difference chroma channels Cb and Cr — but in a digital, studio ("limited") range that reserves headroom and footroom at the extremes for signal-processing overshoot. It is the color format carried inside everything from DVDs and broadcast television to H.264 and HEVC video compression. | origin: 1982 ITU-R (CCIR) | channels: Y 16–235, Cb 16–240, Cr 16–240 | ref: https://www.itu.int/rec/R-REC-BT.709 - yuv — YUV is the analog color-encoding scheme developed for PAL television broadcasting, and lives on loosely today as a general term for luma/chroma video encoding. It let color signals ride alongside existing black-and-white broadcasts without breaking compatibility with monochrome receivers — the luma channel Y alone carries the brightness signal, while U and V add scaled blue-difference and red-difference chrominance on top. Splitting luma from chroma this way let broadcasters spend less bandwidth on color than on brightness, exploiting the eye's lower sensitivity to chrominance detail. | origin: 1967 Walter Bruch / Telefunken | channels: Y 0–1, U -0.436–0.436, V -0.615–0.615 | ref: https://www.itu.int/rec/R-REC-BT.470 - yiq — YIQ is the luma/chroma encoding adopted for NTSC color television in the United States in 1953, engineered to add color broadcasts without breaking the millions of monochrome sets already in homes. The luma channel Y alone reproduces the original black-and-white picture, while I (in-phase) and Q (quadrature) carry the chrominance, named for how they modulate the phase of the color subcarrier. I and Q are rotated relative to the simpler blue-difference/red-difference axes of YUV specifically to exploit the eye's greater sensitivity along the orange-cyan direction than the green-purple direction, letting Q carry less bandwidth. | origin: 1953 NTSC | channels: Y 0–1, I -0.5957–0.5957, Q -0.5226–0.5226 | ref: https://www.govinfo.gov/content/pkg/CFR-2000-title47-vol4/pdf/CFR-2000-title47-vol4-sec73-682.pdf - ypbpr — YPbPr is the analog component-video counterpart to digital YCbCr, carrying the same luma-plus-color-difference structure over three separate analog cables instead of a digital bitstream. Y is the luma signal, alone sufficient for a grayscale picture, while Pb and Pr carry blue-difference and red-difference chroma scaled to a standard analog range. Defined alongside ITU-R BT.709 for high-definition and BT.601 for standard-definition, it was the standard connector-and-signal format for higher-quality analog video on DVD players, game consoles, and HDTVs before digital HDMI became universal. | origin: 1982 ITU-R | channels: Y 0–1, Pb -0.5–0.5, Pr -0.5–0.5 | ref: https://www.itu.int/rec/R-REC-BT.709 - ycgco — YCgCo, introduced by Malvar and Sullivan in 2003, is a luma/chroma color transform designed to be cheap to compute and simple to invert. Y carries luma, while Cg and Co are green-difference and orange-difference chroma, each built from the RGB components with lighter arithmetic than the coefficients YCbCr uses. It was adopted into video coding standards including H.264/AVC and HEVC, valued there for combining low computational cost with an exact, easily reversible RGB transform. | origin: 2003 Malvar & Sullivan (Microsoft) | channels: Y 0–1, Cg -0.5–0.5, Co -0.5–0.5 | ref: https://www.itu.int/rec/T-REC-H.273 - jpeg — The full-range YCbCr color space defined for JPEG still-image compression (ITU-T T.871 / JFIF), also called PC-range or full-swing YCbCr. Unlike broadcast YCbCr — which reserves the extremes of its 8-bit range as headroom and footroom for analog signal overshoot — JPEG YCbCr uses the full 0-255 range on all three channels, matching how still images are stored and displayed on computers. Y carries luma while Cb and Cr are blue-difference and red-difference chroma, using the same BT.601-derived coefficients as standard-definition video. | origin: 1992 Eric Hamilton / C-Cube Microsystems (JFIF) | channels: Y 0–255, Cb 0–255, Cr 0–255 | ref: https://www.itu.int/rec/T-REC-T.871 - ydbdr — YDbDr is the luma/chrominance encoding used by SECAM ("Séquentiel Couleur à Mémoire"), the analog color television standard developed in France and adopted across parts of Eastern Europe, the former Soviet Union, and Africa. Like YUV (its PAL counterpart) and YIQ (NTSC), it keeps a luma channel Y for backward compatibility with monochrome broadcasts, pairing it with two scaled color-difference channels, Db and Dr, derived from blue-minus-luma and red-minus-luma respectively. | origin: 1967 Henri de France | channels: Y 0–1, Db -1.333–1.333, Dr -1.333–1.333 | ref: https://www.itu.int/rec/R-REC-BT.470 - yccbccrc — YcCbcCrc is the constant-luminance encoding defined alongside ITU-R BT.2020 and BT.2100 for ultra-high-definition and HDR/wide-gamut video. Ordinary Y'CbCr derives luma from RGB values that have already been gamma-encoded, which lets highly saturated colors leak into the luma channel and distort perceived brightness — a problem that grows more visible with the wider gamuts and higher dynamic range BT.2020 and BT.2100 target. YcCbcCrc avoids this by deriving luma from linear light before applying the transfer curve, keeping brightness and chroma cleanly separated even for the most saturated colors UHDTV and HDR can reproduce. | origin: 2012 ITU-R | channels: Yc 0–1, Cbc -0.5–0.5, Crc -0.5–0.5 | ref: https://www.itu.int/rec/R-REC-BT.2020/en - xvycc — xvYCC (extended-gamut YCC), standardized by Sony as IEC 61966-2-4 and marketed as x.v.Color, extends traditional YCbCr to encode colors lying outside the conventional BT.601/BT.709 gamut triangle. Where legal-range YCbCr clips any signal exceeding the primaries it was built around, xvYCC keeps the same luma/chroma structure but permits values beyond that limited range, letting cameras and displays capture and reproduce more saturated colors than standard- or high-definition video normally allows. It has shipped in consumer camcorders, televisions, and Blu-ray players seeking a wider color gamut without abandoning the familiar YCbCr pipeline. | origin: 2006 Sony / IEC | channels: Y 0–255, Cb 0–255, Cr 0–255 | ref: https://webstore.iec.ch/publication/6168 - smpte-c — SMPTE-C is the RGB primary set standardized by the Society of Motion Picture and Television Engineers (SMPTE 170M) for 525-line NTSC broadcast in North America and Japan. It replaced the original 1953 FCC/NTSC primaries with phosphors that were actually achievable by contemporary picture tubes, paired with a D65 white point. As an RGB working space it shares its transfer curve with Rec. 709/BT.601 video, and remains the reference gamut for describing legacy analog NTSC color. | origin: 1987 SMPTE | channels: R 0–1, G 0–1, B 0–1 | ref: https://ieeexplore.ieee.org/document/7289701 - photoycc — PhotoYCC is the color encoding Kodak developed in 1992 for its Photo CD system, built to carry scanned photographic film into a digital, display-oriented format. Film captures a wider gamut and dynamic range than contemporary CRT monitors could show, so PhotoYCC extends the ordinary Rec. 709 encoding curve into an odd-symmetric function able to represent scene-referred colors and highlights beyond the normal [0,1] display range, storing the result as 8-bit luma (Yc) and two chroma channels (C1, C2). This let photofinishing labs scan a roll of film once and derive prints, monitor previews, and digital copies from a single scene-referred master. | origin: 1992 Kodak | channels: Yc 0–255, C1 0–255, C2 0–255 | ref: https://www.ilkeratalay.com/colorspacesfaq.php ## Film & camera - acescg — ACEScg — the Academy Color Encoding System's linear working space, defined by AMPAS in 2014 for CGI rendering and visual-effects compositing. Built on the wide AP1 primaries, it stores scene-referred light linearly rather than through a log curve, with headroom above white for highlights and light sources that would otherwise clip. It's the standard render and composite space in VFX and animation pipelines built around ACES. | origin: 2014 Academy (AMPAS) | channels: R 0–1, G 0–1, B 0–1 | ref: https://docs.acescentral.com/encodings/acescg/ - acescc — ACEScc — the Academy Color Encoding System's logarithmic grading space, sharing the AP1 primaries with ACEScg but applying a pure log2 curve so exposure stops map to code values the way film-trained colorists expect. Unlike its sibling ACEScct, it has no linear toe near black, favoring mathematical purity over legacy grading-control behavior. It's used as the working space for color grading within ACES-managed post-production pipelines, ahead of final render back to ACEScg or ACES2065-1. | origin: 2014 Academy (AMPAS) | channels: R -0.35828683–1.4679963120447153, G -0.35828683–1.4679963120447153, B -0.35828683–1.4679963120447153 | ref: https://docs.acescentral.com/encodings/acescc/ - logc3 — LogC3 — ARRI's third-generation logarithmic encoding, used across the ALEXA camera line for years before LogC4 arrived with the ALEXA 35. Referenced to EI 800, it compresses the sensor's scene-linear exposure into a curve that preserves shadow detail and highlight headroom for grading, paired with the ALEXA Wide Gamut 3 primaries. It was the dominant scene-referred camera space in digital cinema production for over a decade and remains widely supported in post pipelines today. | origin: 2010 ARRI | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.arri.com/resource/blob/31918/66f56e6abb6e5b6553929edf9aa7483e/2017-03-alexa-logc-curve-in-vfx-data.pdf - slog3 — S-Log3 — Sony's current-generation log curve, designed to mimic the tonal placement of film-scanning logs like Cineon for more intuitive grading than the earlier S-Log curves offered. It pairs with the S-Gamut3 primaries and is the recommended acquisition setting across Sony's modern CineAlta, Venice, and Alpha cinema-line cameras. S-Gamut3 has a companion variant, S-Gamut3.Cine, with narrower primaries closer to DCI-P3 for productions that skip a full grade — a separate color space from this one. | origin: 2014 Sony | channels: R 0–1, G 0–1, B 0–1 | ref: https://colour.readthedocs.io/en/develop/generated/colour.models.log_encoding_SLog3.html - sgamut3cine — S-Gamut3.Cine — Sony's cinema variant of S-Gamut3, carried here with its paired S-Log3 curve the way cameras record it (menu name "S-Gamut3.Cine/S-Log3"). Its primaries are pulled in toward DCI-P3 — a gamut designed after negative film, slightly wider than the P3 target — so footage grades to DCI-P3 or Rec.709 with less correction than full S-Gamut3 needs. That convenience made it the common pick on Alpha and FX-line cameras when a production skips a heavy grade; full S-Gamut3 (see slog3) remains the wide-archive choice. | origin: 2014 Sony | channels: R 0–1, G 0–1, B 0–1 | ref: https://colour.readthedocs.io/en/develop/generated/colour.models.RGB_COLOURSPACE_S_GAMUT3_CINE.html - aces2065-1 — ACES2065-1 — the Academy Color Encoding System's archival and interchange master format, built on the AP0 primaries, wide enough to enclose the entire visible gamut, with ACES's characteristic white point near D60. Like ACEScg it stores scene-referred light linearly, with values reaching far past nominal white to hold highlight detail for later grading or rendering. AMPAS designed it as the long-term, camera-agnostic exchange format for finished ACES masters, distinct from ACEScg's smaller AP1 primaries used for day-to-day rendering. | origin: 2012 Academy (AMPAS) | channels: R 0–1, G 0–1, B 0–1 | ref: https://docs.acescentral.com/encodings/aces2065-1/ - acescct — ACEScct — the Academy Color Encoding System's other grading space, sharing ACEScg's AP1 primaries and ACEScc's log2 curve but adding a linear toe near black. That toe keeps traditional lift/gamma/gain color-corrector controls behaving the way colorists expect instead of exaggerating noise in the shadows, which is why ACEScct is generally preferred over ACEScc on control surfaces built for legacy grading tools. | origin: 2016 Academy (AMPAS) | channels: R -0.358–1.468, G -0.358–1.468, B -0.358–1.468 | ref: https://docs.acescentral.com/encodings/acescct/ - logc4 — LogC4 — ARRI's fourth-generation logarithmic encoding, introduced with the ALEXA 35 in 2022. It compresses the sensor's 17 stops into a curve that keeps grading response uniform from deep shadow to specular highlight, paired with the ARRI Wide Gamut 4 primaries — the current standard for ARRI cinema workflows. | origin: 2022 ARRI | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.arri.com/resource/blob/278790/dc29f7399c1dc9553d329e27f1409a89/2022-05-arri-logc4-specification-data.pdf - cineon — Cineon — Kodak's printing-density log encoding from the early 1990s, created for the Cineon film-scanning and digital-intermediate system that first let film labs work with scanned negatives digitally instead of on an optical printer. Its 10-bit log curve maps negative density directly to code values, with reference black and white points chosen to mirror film stock's response. It has no gamut of its own — scanned imagery inherited whatever primaries the film stock and scanner implied — and it survives today mainly through the DPX file format it gave rise to. | origin: 1992 Kodak | channels: R 0–1, G 0–1, B 0–1 | ref: https://colour.readthedocs.io/en/develop/generated/colour.models.log_encoding_Cineon.html - davinci — DaVinci Wide Gamut — Blackmagic's own wide color space and log curve, introduced in 2020 with DaVinci Resolve 17 as the default working space for Resolve's color-managed pipeline. Rather than targeting one camera, it's built as a camera-agnostic intermediate that footage from any brand can be converted into and graded consistently, similar in purpose to ACES but native to Resolve. Its DaVinci Intermediate log curve preserves highlight and shadow detail from any source camera ahead of the creative grade. | origin: 2020 Blackmagic Design | channels: R 0–1, G 0–1, B 0–1 | ref: https://documents.blackmagicdesign.com/InformationNotes/DaVinci_Resolve_17_Wide_Gamut_Intermediate.pdf - slog2 — S-Log2 — Sony's second-generation log curve, refining the original S-Log with a scaling adjustment that captures more of the camera's dynamic range and improves shadow reproduction. It shares the S-Gamut primaries with S-Log and S-Log3, sitting between them chronologically and in capability, before Sony moved to S-Log3 as its recommended acquisition curve. It still appears in workflows built around older Sony camera firmware. | origin: 2012 Sony | channels: R 0–1, G 0–1, B 0–1 | ref: https://colour.readthedocs.io/en/develop/generated/colour.models.log_encoding_SLog2.html - vlog — V-Log — Panasonic's logarithmic curve introduced in 2014 with the VARICAM 35 cinema camera, built to hold the sensor's full dynamic range for grading rather than direct viewing. It pairs with the wide V-Gamut primaries, engineered to encompass color spaces like Rec.2020 with room to spare. This is the full cinema-camera curve; Panasonic's mirrorless GH-series bodies instead use a lighter variant called V-Log L, matched to a narrower 12-stop range. | origin: 2014 Panasonic | channels: R 0–1, G 0–1, B 0–1 | ref: https://pro-av.panasonic.net/en/cinema_camera_varicam_eva/support/pdf/VARICAM_V-Log_V-Gamut.pdf - log3g10 — Log3G10 — RED Digital Cinema's current log curve, introduced in 2017 alongside the REDWideGamutRGB primaries as part of RED's IPP2 image-processing pipeline. It maps the camera's very wide sensor dynamic range logarithmically so highlights and shadows both retain grading latitude, and it's the default acquisition space across RED's modern Komodo, V-Raptor, and Monstro/Helium-sensor cameras. | origin: 2017 RED Digital Cinema | channels: R 0–1, G 0–1, B 0–1 | ref: https://docs.red.com/955-0187/PDF/915-0187%20Rev-C%20%20%20RED%20OPS%2C%20White%20Paper%20on%20REDWideGamutRGB%20and%20Log3G10.pdf - clog — Canon Log — Canon's first cinema log gamma, introduced with the EOS C300 in 2011 to extend the dynamic range Cinema EOS cameras could capture ahead of grading. Its curve is symmetric around black, encoding a bit of below-black signal rather than clipping at zero. In this library it pairs with Canon's wide Cinema Gamut primaries, the same matrix shared with the later Canon Log 2 and Canon Log 3 curves. | origin: 2011 Canon | channels: R 0–1, G 0–1, B 0–1 | ref: https://downloads.canon.com/nw/learn/white-papers/cinema-eos/white-paper-canon-log-gamma-curves.pdf - clog2 — Canon Log 2 — Canon's wider-latitude cinema log curve, introduced with the EOS C300 Mark II to capture more of the sensor's dynamic range than the original Canon Log. Its flatter, lower-contrast curve trades a coarser midtone step for extra stops of highlight and shadow information, intended for heavier grading later. It shares the Cinema Gamut primaries with Canon Log and Canon Log 3. | origin: 2015 Canon | channels: R 0–1, G 0–1, B 0–1 | ref: https://downloads.canon.com/nw/learn/white-papers/cinema-eos/white-paper-canon-log-gamma-curves.pdf - clog3 — Canon Log 3 — Canon's balanced cinema log curve, added in 2016 via firmware, a cycle after the EOS C300 Mark II shipped (2015) with Canon Log 2. Rather than one log function, it blends a log shadow region, a linear midtone, and a log highlight region into a three-piece curve, aiming for close to Canon Log 2's dynamic range with gentler, easier-to-grade contrast. It shares the Cinema Gamut primaries with Canon Log and Canon Log 2, and has become Canon's most widely used cinema log curve. | origin: 2016 Canon | channels: R 0–1, G 0–1, B 0–1 | ref: https://downloads.canon.com/nw/learn/white-papers/cinema-eos/white-paper-canon-log-gamma-curves.pdf - flog — F-Log — Fujifilm's log curve, introduced with the X-H1 in 2018 and later brought to the X-T2 and other X-series and GFX cameras by firmware update. It combines a linear toe in the shadows with a logarithmic highlight rolloff to extend recordable dynamic range ahead of grading. It's defined over F-Gamut, Fujifilm's color space whose primaries match ITU-R BT.2020, and remains the standard flat profile on Fujifilm bodies that lack the newer, wider-range F-Log2. | origin: 2018 Fujifilm | channels: R 0–1, G 0–1, B 0–1 | ref: https://dl.fujifilm-x.com/support/lut/F-Log_DataSheet_E_Ver.1.1.pdf - flog2 — F-Log2 — Fujifilm's second-generation log curve, introduced on the X-H2S to capture roughly 14 stops of dynamic range, more than the original F-Log. Its curve is shallower than F-Log's, spreading those extra stops across the code-value range at the cost of needing more careful grading. It shares the F-Gamut primaries, matching ITU-R BT.2020, with F-Log. | origin: 2022 Fujifilm | channels: R 0–1, G 0–1, B 0–1 | ref: https://dl.fujifilm-x.com/support/lut/F-Log2_DataSheet_E_Ver.1.0.pdf - nlog — N-Log — Nikon's log curve, introduced with the Z6 and Z7 mirrorless cameras in 2018 to preserve highlight and shadow detail for later grading, and carried forward across the rest of the Z-series. Its curve pairs a cube-root shadow toe with a natural-log highlight region, rather than the log10 curves common elsewhere. It's defined over N-Gamut, whose primaries match ITU-R BT.2020. | origin: 2018 Nikon | channels: R 0–1, G 0–1, B 0–1 | ref: https://download.nikonimglib.com/archive3/hDCmK00m9JDI03RPruD74xpoU905/N-Log_Specification_(En)01.pdf - applelog — Apple Log — Apple's log profile, introduced with the iPhone 15 Pro in 2023 for ProRes Log recording aimed at professional and cinematic video workflows, with tight integration into Final Cut Pro's color tools. Its curve opens with a quadratic toe near black before switching to a log2 highlight region, extending recordable dynamic range well beyond the phone's standard video profiles. It's defined over BT.2020 primaries, matching the wide-gamut sensors across the iPhone Pro line. | origin: 2023 Apple | channels: R 0–1, G 0–1, B 0–1 | ref: https://github.com/colour-science/colour/blob/develop/colour/models/rgb/transfer_functions/apple_log_profile.py - bmdfilm — Blackmagic Film — Blackmagic Design's log curve for its Generation 5 color science, which debuted on the URSA Mini Pro 12K and rolled out across the Pocket Cinema Camera line. It combines a linear toe near black with a natural-log highlight region to hold detail across the sensor's full dynamic range for grading in DaVinci Resolve. It pairs with the BMD Wide Gamut Gen5 primaries and ships inside Blackmagic RAW (BRAW) footage. | origin: 2020 Blackmagic Design | channels: R 0–1, G 0–1, B 0–1 | ref: https://github.com/colour-science/colour/blob/develop/colour/models/rgb/transfer_functions/blackmagic_design.py - dlog — D-Log — DJI's log curve for its cinema-oriented cameras, including the Zenmuse X7 and Ronin 4D, designed to preserve dynamic range for grading rather than direct viewing. It pairs a linear toe near black with a log10 highlight curve, mapped to the D-Gamut primaries built for those cameras' sensors. It's distinct from D-Log M, the separate curve DJI uses on its consumer drones. | origin: 2017 DJI | channels: R 0–1, G 0–1, B 0–1 | ref: https://dl.djicdn.com/downloads/zenmuse+x7/20171010/D-Log_D-Gamut_Whitepaper.pdf - tlog — T-Log — FilmLight's log curve for its Baselight color-grading systems, paired with the wide E-Gamut primaries as a camera-agnostic working space that footage from almost any camera can be converted into for grading. Its curve is a near-pure log function with a linear extension below zero, avoiding the harsh clipping a pure log would give to noise and sub-black signal. Baselight facilities use T-Log/E-Gamut much the way ACES or DaVinci Wide Gamut are used elsewhere — as a common space for mixing footage from multiple camera sources. | origin: 2013 FilmLight | channels: R 0–1, G 0–1, B 0–1 | ref: https://github.com/colour-science/colour/blob/develop/colour/models/rgb/transfer_functions/filmlight_t_log.py - dcdm — DCDM — the Digital Cinema Distribution Master encoding embedded in every DCP (Digital Cinema Package) shipped to theatres, standardized by SMPTE under the DCI digital cinema specification. It encodes CIE XYZ directly through a 2.6 power-law gamma rather than an RGB transfer curve, tying relative white to the DCI reference projector's calibrated brightness. It's a display-referred, deliverable-only format — content is mastered into DCDM as the last step before packaging for theatrical release. | origin: 2006 SMPTE/DCI | channels: X 0–1, Y 0–1, Z 0–1 | ref: https://ieeexplore.ieee.org/document/7290729 - slog — S-Log — Sony's first logarithmic gamma curve, introduced on the F35 and F3 cameras to capture more dynamic range than conventional video gammas allowed. Paired with the S-Gamut primaries, it was designed for scene-referred acquisition ahead of color grading, but its tonal placement was quickly refined by S-Log2 and then S-Log3. It survives mainly for compatibility with archival footage shot in that era. | origin: 2008 Sony | channels: R 0–1, G 0–1, B 0–1 | ref: https://colour.readthedocs.io/en/develop/generated/colour.models.log_encoding_SLog.html - acesproxy — ACESproxy — the Academy's on-set monitoring and preview encoding, built to carry AP1 linear-light images as 10-bit legal-range code values over standard SDI video cables during production. It's a coarse, quantized encoding meant for on-set color decisions, dailies, and viewfinder-style preview — not for storage, compositing, or final grading, where ACEScc or ACEScct take over once footage reaches post. | origin: 2013 Academy (AMPAS) | channels: R 0.0626–0.9189, G 0.0626–0.9189, B 0.0626–0.9189 | ref: https://docs.acescentral.com/encodings/acesproxy/ - erimm — ERIMM RGB — Kodak's Extended Reference Input Medium Metric RGB, a log-encoded, scene-referred format standardized in ISO 22028-3 as the extended-range member of the ROMM/RIMM family. It shares the wide ROMM (ProPhoto) primaries and D50 white point with ProPhoto RGB, but its logarithmic curve lets it hold a much larger range of scene exposures — well beyond diffuse white — than a linear or gamma-encoded format could, which suits archiving raw, high-dynamic-range scene data. | origin: 2000 Kodak (Spaulding, Woolfe & Giorgianni) | channels: R 0–1, G 0–1, B 0–1 | ref: https://www.iso.org/standard/58005.html - llog — L-Log — Leica's log curve, introduced with the SL2-S and later brought to the SL and SL2 by firmware update, for grading on Leica's video-capable mirrorless cameras. Its curve opens with a short linear toe in deep shadow before switching to a logarithmic response, preserving highlight and shadow detail the way other manufacturers' log curves do. It's recorded in a BT.2020 color container, the same gamut Nikon's N-Log uses. | origin: 2020 Leica | channels: R 0–1, G 0–1, B 0–1 | ref: https://leica-camera.com/sites/default/files/pm-118912-L-Log_Reference_Manual_V1.6.pdf - protune — Protune — GoPro's flat color profile for its Hero action camera line, designed to minimize in-camera sharpening, saturation, and contrast so footage keeps more headroom for color correction afterward. It applies a single natural-log curve across the tonal range — simpler than the multi-segment curves cinema cameras use — over the Protune Native primaries. | origin: 2012 GoPro | channels: R 0–1, G 0–1, B 0–1 | ref: https://colour.readthedocs.io/en/develop/generated/colour.models.log_encoding_Protune.html - milog — Mi-Log — Xiaomi's log profile for the 14 Ultra and 15 Ultra smartphones, giving their cameras a flatter image with more grading latitude than the phones' standard color modes. Its curve follows the same quadratic-toe-plus-log2 shape as Apple Log, tuned with Xiaomi's own constants, and is recorded in a BT.2020 color container like other smartphone log formats. | origin: 2024 Xiaomi | channels: R 0–1, G 0–1, B 0–1 | ref: https://colour.readthedocs.io/en/develop/generated/colour.models.log_encoding_MiLog.html - olog — O-Log — OPPO's log profile for its Find X8 Ultra-era smartphones, giving the camera a flat, grading-ready image in the same spirit as Apple Log and Xiaomi's Mi-Log. Unlike those two-piece curves, O-Log applies a single, pure natural-log function across the whole tonal range, with no separate toe segment near black. It's recorded in a BT.2020 color container. | origin: 2025 OPPO | channels: R 0–1, G 0–1, B 0–1 | ref: https://colour.readthedocs.io/en/develop/generated/colour.models.log_encoding_OPPOOLog.html - redlog — REDLog — RED Digital Cinema's original log curve, dating to the RED ONE, the company's first digital cinema camera, released in 2007. It pairs with the REDcolor primaries, RED's earliest color gamut, and was RED's default acquisition log before being superseded first by REDLogFilm and later by the Log3G10/REDWideGamutRGB pairing used on modern RED cameras. | origin: 2007 RED Digital Cinema | channels: R 0–1, G 0–1, B 0–1 | ref: https://colour.readthedocs.io/en/develop/generated/colour.models.log_encoding_REDLog.html - redlogfilm — REDLogFilm — RED Digital Cinema's second log curve, built to match Kodak's Cineon printing-density curve exactly so RED footage could drop into existing film-style, Cineon-based color pipelines. It shares the REDcolor primaries with the original REDLog, sitting between it and the Log3G10/REDWideGamutRGB pairing used on today's RED cameras. | origin: 2008 RED Digital Cinema | channels: R 0–1, G 0–1, B 0–1 | ref: https://colour.readthedocs.io/en/develop/generated/colour.models.log_encoding_REDLogFilm.html - log3g12 — Log3G12 — an earlier RED Digital Cinema log curve, predating Log3G10 but sharing the same REDWideGamutRGB primaries. It allocates 12 stops of range above middle grey rather than Log3G10's 10, and its curve is sign-symmetric, encoding negative scene-linear values continuously instead of clipping them. RED has since moved to Log3G10 as its recommended acquisition curve. | origin: 2016 RED Digital Cinema (Graeme Nattress) | channels: R 0–1, G 0–1, B 0–1 | ref: https://colour.readthedocs.io/en/develop/generated/colour.models.log_encoding_Log3G12.html - panalog — Panalog — the log curve for the Panavision Genesis, a digital cinema camera developed jointly with Sony and released in 2005. Modeled on Kodak's Cineon printing-density curve with its own black and white reference points, it let Genesis footage slot into film-style, Cineon-based post pipelines, much like RED's REDLogFilm did later for RED footage. Panavision never published a native color gamut for the format, so it's handled here as a curve over linear RGB rather than a distinct primaries set. | origin: 2005 Panavision / Sony | channels: R 0–1, G 0–1, B 0–1 | ref: https://colour.readthedocs.io/en/develop/generated/colour.models.log_encoding_Panalog.html - viperlog — ViperLog — the log curve for the Thomson Viper FilmStream, one of the earliest digital cinema cameras, announced in 2002, well before the tapeless RED and ARRI ALEXA workflows that came to dominate the format. Its curve is a pure log10 function with no black offset, a simplicity that later curves from other manufacturers deliberately corrected to avoid crushing near-black detail. It's applied over linear-light RGB without a published native gamut of its own. | origin: 2002 Thomson Grass Valley | channels: R 0–1, G 0–1, B 0–1 | ref: https://colour.readthedocs.io/en/develop/generated/colour.models.log_encoding_ViperLog.html - filmicpro — Filmic Pro 6 Log — the log curve from Filmic Pro, a third-party iOS cinema camera app that gave iPhone footage a flat, grading-ready image years before Apple Log existed natively. Its curve blends a square-root term and a natural-log term into one mixed law, built so a full-scale input maps back to a full-scale output. Like the smartphone-maker log formats that followed it, it has no published native color gamut and is treated as a curve over linear RGB. | origin: 2017 FiLMiC Inc. | channels: R 0–1, G 0–1, B 0–1 | ref: https://github.com/colour-science/colour/blob/develop/colour/models/rgb/transfer_functions/filmic_pro.py ## Appearance models - cam16 — CAM16 is the color appearance model introduced by Li et al. in 2017 as a simplified, more robust successor to CIECAM02. It predicts how a color actually looks to a human observer under specific viewing conditions — accounting for the surrounding light, background, and the eye's state of adaptation — rather than merely describing the raw stimulus, yielding correlates of lightness, colorfulness, and hue (plus chroma, saturation, and brightness in the full model). Google adopted it, via its HCT derivative, as the foundation of Material Design's dynamic color system, and it is now the default replacement for CIECAM02 across color science. | origin: 2017 Li et al. | channels: J 0–100, M 0–105, h 0–360° | ref: https://doi.org/10.1002/col.22131 - ciecam02 — CIECAM02 is the color appearance model published by the CIE in 2002, developed to predict how a color will actually look to a human observer under real viewing conditions rather than simply specifying the color stimulus. It passes the physiological cone response through a chromatic-adaptation stage and an opponent-color stage to produce correlates of lightness, colorfulness and hue, along with chroma, saturation and brightness in the full model. Though CAM16 has since superseded it as a simpler, more robust successor, CIECAM02 remains embedded in ICC v4 color-management workflows and is still widely used for gamut mapping and cross-media color reproduction. | origin: 2002 CIE | channels: J 0–100, M 0–100, h 0–360° | ref: https://doi.org/10.1002/col.10125 - cam16-ucs — CAM16-UCS is the uniform color space Li et al. built on top of CAM16 in their 2017 paper, transforming CAM16's lightness and colorfulness correlates through a compressive scale so that equal numerical distances correspond much more closely to equal perceived color differences. Reprojected into Cartesian coordinates, it behaves like a CIELAB-style space but is far more perceptually uniform, so it is well suited to computing color differences (ΔE) and to gamut mapping, where straight-line distance needs to track actual visual difference. | origin: 2017 Li et al. | channels: J 0–100, a -50–50, b -50–50 | ref: https://doi.org/10.1002/col.22131 - zcam — ZCAM is the color appearance model Safdar, Hardeberg and Luo introduced in 2021, designed from the outset for high-dynamic-range and wide-gamut imagery rather than adapted to it after the fact. It plays the same role as CAM16 — predicting lightness, colorfulness and hue as a color will actually appear under given viewing conditions — but builds on the absolute Izazbz color space instead of CIE XYZ, so it can work natively with the absolute luminance levels HDR content requires instead of the relative 0-100 scale older appearance models assume. The full model also reports brightness, vividness, blackness and whiteness, suiting it to HDR display calibration and gamut mapping where standard appearance models run out of range. | origin: 2021 Safdar, Hardeberg & Luo | channels: J 0–100, M 0–100, h 0–360° | ref: https://doi.org/10.1364/OE.413659 - cam02-ucs — CAM02-UCS is the uniform color space Luo, Cui & Li built on top of CIECAM02 in 2006, transforming its lightness and colorfulness correlates through a compressive scale so that equal numerical distances correspond much more closely to equal perceived color differences. Reprojected into Cartesian coordinates, it behaves like a CIELAB-style space but is far more perceptually uniform, so it is well suited to computing color differences (ΔE) and to gamut mapping. CAM16-UCS later carried the same compression scheme over to CAM16. | origin: 2006 Luo, Cui & Li | channels: J 0–100, a -50–50, b -50–50 | ref: https://doi.org/10.1002/col.20227 - cam16-lcd — CAM16-LCD is a variant of the CAM16-UCS uniform color space that Li et al. tuned in 2017 specifically for LARGE color differences, carrying over compression coefficients from Luo, Cui & Li's 2006 work on perceptually uniform CIECAM spaces. Like CAM16-UCS it reprojects CAM16's lightness and colorfulness into a near-Euclidean, Cartesian layout, but its scaling is calibrated against large-difference visual data rather than the small, fine-grained differences most color-difference formulas target — the CAM16 counterpart to CAM02-LCD. | origin: 2017 Li et al. | channels: J 0–100, a -50–50, b -50–50 | ref: https://doi.org/10.1002/col.22131 - cam16-scd — CAM16-SCD is a variant of the CAM16-UCS uniform color space that Li et al. tuned in 2017 specifically for SMALL color differences, carrying over compression coefficients from Luo, Cui & Li's 2006 work on perceptually uniform CIECAM spaces. Like CAM16-UCS it reprojects CAM16's lightness and colorfulness into a near-Euclidean, Cartesian layout, but its scaling is calibrated against small, near-threshold visual differences rather than the coarser comparisons CAM16-LCD targets — the CAM16 counterpart to CAM02-SCD. | origin: 2017 Li et al. | channels: J 0–100, a -50–50, b -50–50 | ref: https://doi.org/10.1002/col.22131 - cam02-lcd — CAM02-LCD is a variant of the CAM02-UCS uniform color space that Luo, Cui & Li tuned in 2006 specifically for LARGE color differences, rather than the small, fine-grained differences most difference formulas target. Like CAM02-UCS, it reprojects CIECAM02's lightness and colorfulness into a near-Euclidean, Cartesian layout, but with scaling calibrated against large-difference visual data. CAM16-LCD later carried the same large-difference calibration over to CAM16. | origin: 2006 Luo, Cui & Li | channels: J 0–100, a -50–50, b -50–50 | ref: https://doi.org/10.1002/col.20227 - cam02-scd — CAM02-SCD is a variant of the CAM02-UCS uniform color space that Luo, Cui & Li tuned in 2006 specifically for SMALL color differences, such as those relevant to tolerance and quality-control judgments. Like CAM02-UCS, it reprojects CIECAM02's lightness and colorfulness into a near-Euclidean, Cartesian layout, but with scaling calibrated against small, near-threshold visual differences. CAM16-SCD later carried the same small-difference calibration over to CAM16. | origin: 2006 Luo, Cui & Li | channels: J 0–100, a -50–50, b -50–50 | ref: https://doi.org/10.1002/col.20227 - hellwig2022 — The Hellwig-Fairchild model, published in 2022, is the CIE-recommended refinement of CAM16 and the mathematical basis of CIECAM16 (CIE 248:2022). It keeps CAM16's chromatic-adaptation transform, opponent-color dimensions, and lightness correlate largely intact, but revises the achromatic response and brightness equations for more consistent behavior across the model's full range. Like CAM16 it reports lightness, colorfulness, and hue as its core correlates — a close drop-in successor wherever a CIE-endorsed appearance model is called for. | origin: 2022 Luke Hellwig & Mark Fairchild | channels: J 0–100, M 0–60, h 0–360° | ref: https://doi.org/10.1002/col.22792 - rlab — RLAB is the color appearance model Mark Fairchild published in 1996, developed for predicting how colors reproduce across different media and viewing conditions — for example, matching a printed image's appearance to how it looked on a display. It adapts the cone responses, via a von Kries-style transform through Hunt-Pointer-Estévez cone fundamentals, to the reference viewing condition, then maps the result into a CIELAB-like lightness and opponent-color space, giving it CIELAB's familiar structure while accounting for surround and adaptation effects that plain CIELAB ignores. It was among the earliest appearance models built specifically for cross-media color reproduction workflows. | origin: 1996 Mark Fairchild | channels: L 0–100, a -125–125, b -125–125 | ref: https://doi.org/10.1002/(SICI)1520-6378(199610)21:5<338::AID-COL3>3.0.CO;2-Z - llab — LLAB — Luo, Lo & Kuo's 1996 colour appearance model, developed as a candidate successor to CIELAB for cross-media image reproduction. It keeps CIELAB's opponent skeleton but swaps in a BFD chromatic-adaptation transform, a surround-dependent lightness exponent, and a logarithmic chroma compression that better tracks perceived colourfulness. CIECAM97s absorbed its ideas the following year, ending its short life as a standalone model. | origin: 1996 Luo, Lo & Kuo | channels: L -10–100, A -80–100, B -90–90 | ref: https://doi.org/10.1002/(SICI)1520-6378(199612)21:6<412::AID-COL4>3.0.CO;2-Z - nayatani95 — Nayatani95 — Yoshinobu Nayatani's 1995 colour appearance model, the culmination of a line of research focused on illuminant-level effects: how the Hunt effect (colourfulness grows with luminance) and the Stevens effect (lightness contrast grows with luminance) reshape colour as adapting illuminance changes. Built on a von Kries cone stage with logarithmic opponent responses, it predicts brightness, lightness, chroma, colourfulness and saturation for related colours. Alongside Hunt's model it fed the CIE effort that became CIECAM97s. | origin: 1995 Yoshinobu Nayatani | channels: L 0–100, C 0–190, h 0–360° | ref: https://doi.org/10.1002/col.5080200305 - hunt — Hunt — Robert Hunt's colour appearance model (1982-1995), the most ambitious of the classical CAMs: developed over decades at Kodak, it models cone AND rod responses, luminance-level adaptation, surround induction, and predicts the full set of appearance correlates for related and unrelated colours from dim starlight to bright daylight. Its complexity is legendary — and directly ancestral: CIECAM97s and CIECAM02 are, in Fairchild's phrase, Hunt models simplified for practice. | origin: 1994 Robert W. G. Hunt | channels: J 0–100, C 0–120, h 0–360° | ref: https://doi.org/10.1002/col.5080190504 - atd95 — ATD95 — Sherman Lee Guth's final ATD model (1995), a vision-science account of the opponent pathways: retinal illuminance drives gain-controlled cone responses into two sequential opponent stages — A (achromatic), T (tritan, red-green) and D (deutan, yellow-blue) — modelling discrimination and adaptation data rather than appearance scales. Guth himself stressed it "cannot be considered a colour appearance model"; it ships here as the coordinate system of its second (large-field) stage, the one his hue and saturation predictions read from. | origin: 1995 Sherman Lee Guth | channels: A 0–0.05, T -0.01–0.08, D -0.03–0.06 | ref: https://doi.org/10.1117/12.206546 ## Print & physical - cmyk — CMYK is the subtractive color model used throughout offset and digital printing, built from cyan, magenta and yellow inks plus a separate black channel (K, for "key"). Mixing cyan, magenta and yellow absorbs light rather than emitting it, the opposite of how RGB displays add colored light, so in principle their combination alone produces black — but real inks are impure, so a dedicated black channel keeps dark tones neutral, saves ink, and gives text and fine detail a cleaner edge. It remains the standard color model for prepress and printed output across the industry. | origin: 1906 four-colour process (Eagle Printing Ink Co.) | channels: C 0–100, M 0–100, Y 0–100, K 0–100 | ref: https://www.w3.org/TR/css-color-4/#device-cmyk - munsell — The Munsell color system was devised by the American painter and art teacher Albert Munsell around 1905 as a way to organize colors by how they actually look, rather than by how pigments mix or lights combine. It arranges every color along three perceptually spaced axes — hue, value (lightness) and chroma (saturation) — notated like "5R 5/10" for hue 5R, value 5, chroma 10, so that equal numerical steps in any one axis look equally spaced to the eye. The system was later refined through extensive visual experiments into the 1943 Munsell Renotation, the dataset still used today as its authoritative reference. It remains a standard for perceptually meaningful color specification in fields such as soil science, geology, and paint and pigment matching. | origin: 1905 Albert H. Munsell (renotation OSA) | channels: H 0–100, V 0–10, C 0–38 | ref: https://www.rit.edu/science/munsell-color-science-lab-educational-resources - ryb — RYB is the traditional artists' color wheel built on red, yellow and blue as primaries, the model taught in painting and design education long before RGB or CMYK existed. It captures how pigments actually mix on a palette rather than how light combines — blue and yellow mixed as paint make green, not the grey that additive red and green light would produce — matching painters' lived experience of color instead of colorimetric physics. The version implemented here follows Johannes Itten's chromatic color wheel from his Bauhaus color theory, still a standard reference for teaching color harmony in art and design. | origin: 1961 Johannes Itten | channels: R 0–255, Y 0–255, B 0–255 | ref: https://github.com/meodai/rybitten - cmy — CMY is the subtractive color model built from cyan, magenta and yellow alone, without CMYK's separate black channel. Each channel represents how much ink is applied to absorb its complementary portion of white light, so mixing all three at full strength approximates black — though in practice impure inks produce a muddy dark brown rather than a true black, which is exactly why CMYK adds a dedicated key channel. CMY remains useful as the direct three-ink subtractive counterpart to RGB, and underlies the arithmetic CMYK is built on. | origin: 1868 Louis Ducos du Hauron | channels: C 0–100, M 0–100, Y 0–100 | ref: https://doi.org/10.1002/col.20135 - ral-design — RAL Design System+ is a color specification system of roughly 1,825 colors, maintained by RAL gGmbH and widely used across Europe to specify paints, coatings and architectural finishes. Unlike the older RAL Classic system, whose colors are defined only by physical sample swatches, RAL Design colors are defined algorithmically as cylindrical coordinates in CIELAB space — a hue angle, a lightness, and a chroma — so every RAL Design code is a directly computable point in a standard, device-independent color space rather than a color that has to be matched by eye against a physical chip. | origin: 1993 RAL gGmbH | channels: H 0–360°, L 0–100, C 0–100 | ref: https://www.freiefarbe.de/en/thema-farbe/hlc-colour-atlas/ - coloroid — Coloroid — the Hungarian architectural color-order system, developed by Antal Nemcsics at the Budapest University of Technology and standardized as MSZ 7300. Grown from large-scale aesthetic experiments, it arranges hue (A), saturation (T) and luminosity (V) in steps that feel evenly spaced when composing whole environments — its home turf is architecture and urban color planning. | origin: 1980 Antal Nemcsics | channels: A 10–76, T 0–100, V 0–100 | ref: https://onlinelibrary.wiley.com/doi/10.1002/col.5080050214 - ostwald — Ostwald — Wilhelm Ostwald's colour system (Die Farbenlehre, 1917-1923), the Nobel laureate chemist's ordering of colour as mixtures of exactly three sensations: white, black, and a "full colour" (Vollfarbe). His full colours are ideal semichromes — optimal colours reflecting 100% over the half-spectrum bounded by a complementary wavelength pair and 0% elsewhere — the most saturated object colours physically possible for their hue. Every colour is then w·White + b·Black + f·FullColour with w+b+f=1, arranged as the famous double cone. The physical atlas died with its licensing, but the ideal system is pure mathematics over the CIE observer, and that is what ships here. | origin: 1917 Wilhelm Ostwald | channels: h 0–360°, W 0–100, B 0–100 | ref: https://doi.org/10.1364/JOSA.34.000361 ## Specialty & research - xyb — XYB is the internal color space of JPEG XL, the royalty-free image format designed as a modern successor to JPEG for both lossy and lossless compression. Rather than building on broadcast-derived YCbCr like its predecessor, XYB is modeled on the eye's LMS cone responses, split into a red-green channel (X), a luminance channel (Y), and a blue-yellow channel (B), then compressed with a perceptually motivated power law so encoding error can be concentrated where vision is least sensitive to it. It is not meant for authoring or display — images are still edited and viewed in ordinary RGB — but is what the JPEG XL codec actually compresses under the hood. | origin: 2019 Jyrki Alakuijala et al. (Google) | channels: X -0.0154–0.0281, Y 0–0.8453, B -0.2778–0.388 | ref: https://arxiv.org/abs/1908.03565 - osaucs — OSA-UCS (Uniform Color Scale) is a color space developed by an Optical Society of America committee and published in 1974, closely associated with David MacAdam's work on the project. It set out to solve a problem CIELAB and CIELUV don't fully address: making equal numerical distances correspond to equal perceived differences not just for small steps, but across large jumps anywhere in the space. Rather than a simple rectangular grid, its coordinates sit on a cubic close-packed lattice, matching how the committee's extensive visual-scaling experiments found colors to actually cluster perceptually. It has found its main use in industrial and scientific color-difference work that values this large-scale uniformity over the convenience of more common spaces. | origin: 1974 OSA committee (David MacAdam) | channels: L -10–10, j -20–20, g -20–20 | ref: https://doi.org/10.1364/JOSA.64.001691 - tsl — TSL (Tint, Saturation, Lightness) is a cylindrical re-encoding of RGB introduced by Terrillon and Akamatsu in 2000 for detecting human skin tones in images. By separating chromaticity (tint and saturation) from lightness, it groups skin-colored pixels into a tighter, more separable cluster than RGB does, so thresholding for face and gesture detection is more reliable. It remains a reference color space in computer-vision work on skin segmentation, alongside spaces like YCbCr and HSV. | origin: 2000 Terrillon & Akamatsu | channels: T 0–360°, S 0–1, L 0–255 | ref: https://doi.org/10.1109/AFGR.2000.840612 - yes — YES is a luminance/chrominance color encoding in the same family as YIQ and YUV: Y carries luminance, while E (green-red) and S (blue-yellow) carry chrominance as simple linear combinations of the red, green and blue primaries. Defined in Xerox's Color Encoding Standard (XNSS 289005, 1989), its coordinates are cheap to compute directly from RGB, which is the model's main appeal, but unlike CIELAB or CIELUV they are not perceptually uniform — equal steps in E or S do not correspond to equal-looking color differences. It appears in the color-imaging literature as one of several such encodings used for image analysis and compression. | origin: 1989 Xerox | channels: Y 0–1, E -0.5–0.5, S -0.5–0.5 | ref: https://hbfs.wordpress.com/2018/05/01/xerox-yes-colorspaces-iv/ - ohta — The Ohta color space, introduced by Yu-Ichi Ohta, Takeo Kanade and Toshiyuki Sakai in 1980, decorrelates RGB into three opponent channels — an intensity channel and two chroma channels — chosen empirically to approximate the Karhunen-Loève transform (the statistically optimal decorrelation) of typical natural images, rather than being derived from any display or broadcast standard. Because it is a simple, exact and invertible linear transform of RGB, it is cheap to compute in both directions while still concentrating most of an image's variance into a single channel. It has been used widely in computer-vision segmentation tasks — isolating vegetation, fruit, flames, and skin regions — where that decorrelation makes thresholding more reliable than working directly in RGB. | origin: 1980 Ohta, Kanade & Sakai | channels: I1 0–255, I2 -128–128, I3 -128–128 | ref: https://doi.org/10.1016/0146-664X(80)90047-7 - lalphabeta — The lαβ color space was introduced by Ruderman, Cronin and Chiao in 1998 to decorrelate natural-scene color statistics, and became widely known as the working space behind Reinhard et al.'s 2001 color-transfer technique. It converts RGB into LMS cone responses, takes their logarithm to compress the eye's wide dynamic range the way the visual system itself does, and then rotates the result into three near-uncorrelated axes: l for achromatic lightness, α for the yellow-blue axis, and β for the red-green axis. Because natural images tend to vary almost independently along these three axes, shifting one image's per-channel mean and spread to match another's — entirely in lαβ — transfers the color mood of one photograph onto another with minimal cross-channel artifacts. | origin: 1998 Ruderman, Cronin & Chiao | channels: l -6–0, alpha -1–0.9, beta -0.21–0.21 | ref: https://doi.org/10.1109/38.946629