Chromaticity plane with gamut triangles, spectral locus and line of purples. Areas normalized against Rec.2020. D65 white-point marker shown.
Encoded signal (horizontal) vs absolute cd/m² (vertical, log scale). PQ maps 0–1 to 0–10 000 cd/m². HLG scales by peak nits and system gamma.
Gamut boundaries in the chosen perceptual colour space at the signal level’s absolute luminance. Shows chroma extent for each enabled gamut.
| Space | Primaries | White | Area vs Rec.2020 | Notes |
|---|
Spectral locus uses CIE 1931 2° observer. ICtCp uses PQ (BT.2100). JzAzBz uses Safdar et al. 2017 perceptual model.
Compare sRGB, Display-P3, and Rec.2020 gamut areas on the current chromaticity axes. Bar chart shows coverage normalised against Rec.2020.
| Space | Area | Coverage | Ref |
|---|---|---|---|
| Click “Compare all spaces” to run analysis. | |||
ITU-R BT.2020 — Ultra-High Definition Television
BT.2020 (Rec.2020) specifies the colour primaries, white-point (D65), and transfer characteristics for UHDTV systems. Its primaries enclose approximately 75.8% of the CIE 1931 visible gamut, far exceeding sRGB (~35.9%) and Display-P3 (~53.6%).
Primaries: R (0.708, 0.292), G (0.170, 0.797), B (0.131, 0.046). White-point: D65 (0.3127, 0.3290).
Bit depth: 10-bit (narrow range) or 12-bit for HDR content. BT.2020 defines a non-constant-luminance YCbCr encoding; the HDR extension is in BT.2100.
ITU-R BT.2100 — High Dynamic Range Television
BT.2100 builds on BT.2020 primaries and adds two HDR transfer functions: Perceptual Quantizer (PQ) and Hybrid Log-Gamma (HLG). It also defines the ICtCp colour-difference space for HDR content evaluation.
PQ (ST 2084): Absolute luminance mapping 0–10 000 cd/m². Designed around the Barten CSF for optimal quantisation of human-visible luminance steps.
HLG (ARIB STD-B67): Relative, scene-referred transfer function that is backward-compatible with SDR displays. Uses system gamma (γsys) to adapt to display peak luminance.
SMPTE ST 2084 — Perceptual Quantizer (PQ)
ST 2084 defines the Electro-Optical Transfer Function (EOTF) for mastering reference displays. PQ encodes absolute luminance from 0 to 10 000 cd/m² using a perceptual quantisation curve based on the Barten contrast sensitivity function.
PQ achieves near-invisible quantisation steps at all luminance levels with 10-bit or 12-bit encoding. It is the reference EOTF for Dolby Vision, HDR10, and HDR10+ workflows.
Key property: Display-referred — the encoded signal directly maps to absolute nits, making it independent of display peak luminance (requires tone mapping for non-reference displays).
ARIB STD-B67 — Hybrid Log-Gamma (HLG)
HLG is a scene-referred HDR transfer function adopted by NHK and BBC. It combines a square-root segment (low light) with a logarithmic segment (highlights), providing backward-compatibility with SDR displays without metadata.
System gamma: γsys = 1.2 + 0.42 × log10(Lw/1000). For 1000-nit display: γsys = 1.2. Adjusted for dim (+0.95×) and bright (+0.90×) surround.
OOTF: The Opto-Optical Transfer Function applies system gamma to convert scene-linear to display-linear, producing the final rendered image.
ICtCp — Perceptual Colour Space for HDR
ICtCp (Dolby, 2016) is a perceptually uniform colour space designed for HDR and wide-colour-gamut content. It decomposes colour into Intensity (I), Tritan chroma (Ct, blue-yellow), and Protan chroma (Cp, red-green).
Construction: BT.2020 linear RGB → LMS (BT.2100 matrix) → PQ encode each channel → 3×3 rotation to ICtCp.
Advantages: Better hue linearity than L*a*b* at HDR luminances. JND-calibrated by PQ non-linearity. Used for colour-difference evaluation (ΔEITP) in BT.2124.
JzAzBz — Perceptual Colour Space (Safdar 2017)
JzAzBz (Safdar, Hardeberg & Ronnier Luo, 2017) is a perceptually uniform colour space that handles both SDR and HDR luminance ranges. It improves upon CIELAB by using PQ-based lightness and a non-linear XYZ pre-processing step.
Components: Jz (lightness), Az (redness-greenness), Bz (yellowness-blueness). Unlike ICtCp, JzAzBz operates from XYZ rather than BT.2020 RGB.
ITU-R BT.709 & sRGB
BT.709 (Rec.709) defines the primaries for HDTV. sRGB (IEC 61966-2-1) shares the same primaries and D65 white-point but specifies its own transfer function (piecewise linear + gamma 2.4).
Primaries: R (0.640, 0.330), G (0.300, 0.600), B (0.150, 0.060). Coverage: ~35.9% of the CIE 1931 visible gamut.
Display-P3
Display-P3 (based on DCI-P3 cinema) uses wider primaries than sRGB, covering ~53.6% of CIE 1931. It is the default wide-gamut space on Apple devices and increasingly adopted in web content (CSS color Level 4).
Primaries: R (0.680, 0.320), G (0.265, 0.690), B (0.150, 0.060). White-point: D65 (same as sRGB).
ST.2084 PQ EOTF
Maps encoded signal V to absolute luminance Y (cd/m², max 10 000):
m₁ = 0.1593017578125
m₂ = 78.84375
c₁ = 0.8359375 c₂ = 18.8515625 c₃ = 18.6875
ARIB HLG OOTF & OETF
HLG OETF (scene linear → encoded E′):
E′ = a·ln(12E−b) + c if E > 1/12
a = 0.17883277, b = 0.28466892, c = 0.55991073
System gamma: γsys = 1.2 + 0.42·log10(Lw/1000)
ICtCp transform (BT.2100)
1. Linear BT.2020 RGB → LMS via BT.2100 matrix M₁:
M₁ = [ 0.3593, 0.6976, −0.0359;
−0.1921, 1.1005, 0.0754;
0.0071, 0.0748, 0.8433 ]
2. Apply PQ EOTF independently to each L, M, S → L′, M′, S′
3. Rotation to ICtCp:
Ct = 1.6137·L′ − 3.3234·M′ + 1.7097·S′
Cp = 4.3780·L′ − 4.2455·M′ − 0.1325·S′
I is intensity (luminance); Ct is tritan (blue-yellow); Cp is protan (red-green).
JzAzBz transform (Safdar 2017)
Absolute XYZ (nits) → JzAzBz:
Y′ = g·Y − (g−1)·X (g = 0.66)
[L M S] = M·[X′ Y′ Z]
PQ-encode each L, M, S → L′, M′, S′
Iz = 0.5·L′ + 0.5·M′
Jz = (1+d)·Iz / (1+d·Iz) − d₀
Az = 3.524·L′ − 4.067·M′ + 0.543·S′
Bz = 0.199·L′ + 1.097·M′ − 1.296·S′
d = −0.56 d₀ ≈ 1.63×10−11
Gamut area — Shoelace formula
Coverage % = Aspace / ARec.2020 × 100
Tone mapping operators
Hable (Filmic):
f(x) = ((x(Ax+CB)+DE) / (x(Ax+B)+DF)) − E/F
A=0.15 B=0.50 C=0.10 D=0.20 E=0.02 F=0.30
Result = f(L) / f(11.2)
ACES Filmic:
Ld = (L(2.51L+0.03)) / (L(2.43L+0.59)+0.14)
Uchimura (Gran Turismo):
Piecewise toe + shoulder with max brightness P, contrast a, mid-level m, and hue preservation.
Chromaticity conversions
x = X / (X+Y+Z) y = Y / (X+Y+Z)
CIE 1976 u′v′:
u′ = 4x / (−2x + 12y + 3)
v′ = 9y / (−2x + 12y + 3)
HDR Transfer Functions
[2] ITU-R BT.2100-2 (2018). Image parameter values for high dynamic range television for use in production and international programme exchange.
[3] ARIB STD-B67 (2015). Essential parameter values for the extended image dynamic range television (EIDRTV) system for programme production.
Wide-Gamut Colour Spaces
[5] ITU-R BT.709-6 (2015). Parameter values for the HDTV standards for production and international programme exchange.
[6] SMPTE RP 431-2:2011. D-Cinema quality — Reference projector and environment (DCI-P3).
ICtCp & JzAzBz Perceptual Models
[8] Lu, T., Pu, F., Yin, P., et al. (2016). ICtCp colour space and its compression performance for HDR and WCG video content. SMPTE Motion Imaging Journal, 125(1).
[9] Safdar, M., Cui, G., Kim, Y.J., Luo, M.R. (2017). Perceptually uniform colour space for image signals including HDR and wide gamut. Optics Express, 25(13), 15131-15151. DOI: 10.1364/OE.25.015131
Tone Mapping
[11] Hable, J. (2010). Filmic tonemapping operators. GDC presentation.
[12] Narkowicz, K. (2015). ACES filmic tone mapping curve. Blog post and shader implementation.
[13] Uchimura, H. (2017). HDR theory and practice: tone mapping (Gran Turismo). CEDEC presentation.
Colorimetry & Chromaticity
[15] CIE 170-2:2015. Fundamental chromaticity diagram with physiologically significant axes and derived colour spaces (2015 10° observer).
[16] Fairchild, M.D. (2013). Color Appearance Models, 3rd Ed. Wiley-IS&T. ISBN: 978-1-119-96703-3
About this tool
This tool implements chromaticity diagrams with gamut overlays, PQ/HLG tone curves, ICtCp and JzAzBz perceptual analysis, gamut boundary computation, tone mapping operators, and HDR image diagnostics — entirely client-side (zero network). Not a substitute for calibrated measurement or official CIE/ITU software.
Comparative plot of all three transfer functions on a log-nits vertical axis. PQ covers the full 0–10 000 cd/m² range; HLG scales by system gamma at 1000-nit reference; sRGB peaks at ~100 nits.
Computes gamut boundary rings at multiple luminance levels (0.1, 1, 10, 100, 500, 1000, 4000, 10 000 nits) in the selected perceptual space (ICtCp or JzAzBz). Shows how chroma extent changes with luminance.
Upload an image to analyse peak luminance, average luminance, and approximate gamut coverage. The image is processed entirely on-device (max 1024×1024 for performance).
Enter hex colours (one per line or comma-separated). Computes L*a*b*, ICtCp, and JzAzBz for each colour at the current signal level and peak nits.