Working colour space
Overlay gamuts
Advanced overlays
Spectral locus and purples render on both xy and u′v′ axes.
Chromaticity axes
Standard observer
Controls spectral locus CMFs (2° vs revised 10°).
Peak brightness  1000 nits
Range 100–10 000 nits. Controls PQ absolute scaling and HLG system gain.
Tone curve
HLG environment
γsys: 1.20  ·  Only applies when HLG is selected.
Signal level (0–1)
Used with tone curve and peak nits to compute absolute cd/m² and ICtCp/JzAzBz. I = 
Perceptual plane
Tone mapping operator
Applies to display-mapped previews and image analysis.
Keyboard shortcuts
1-4 cycle curves  |  A toggle axes
Gamut chromaticity diagram
Axes: xy
Move cursor over diagram to sample chromaticity.

Chromaticity plane with gamut triangles, spectral locus and line of purples. Areas normalized against Rec.2020. D65 white-point marker shown.

Tone curve output
Peak: 1000 nits

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.

ICtCp Ct–Cp perceptual plane

Gamut boundaries in the chosen perceptual colour space at the signal level’s absolute luminance. Shows chroma extent for each enabled gamut.

Gamut metrics
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.

Copy data
JSON includes primaries, white-point, area, and coverage for all three spaces. CSV is spreadsheet-ready.
Export images
Share URL
Space comparison

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.
HDR & Wide-Gamut Standards Overview
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).

HDR Colour Science Equations
ST.2084 PQ EOTF

Maps encoded signal V to absolute luminance Y (cd/m², max 10 000):

Y = 10000 · max(0, V1/m₂ − c₁)1/n / (c₂ − c₃ · V1/m₂)1/n
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′ = √(3·E)               if 0 ≤ E ≤ 1/12
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₁:

[L M S]ᵀ = M₁ · [R G B]ᵀ

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:

I  = 0.5000·L′ + 0.5000·M′
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:

X′ = b·X − (b−1)·Z    (b = 1.15)
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
A = |½ · (xR(yG − yB) + xG(yB − yR) + xB(yR − yG))|

Coverage % = Aspace / ARec.2020 × 100

Tone mapping operators
Reinhard: Ld = L / (1 + L)

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
CIE 1931 xy:
x = X / (X+Y+Z)    y = Y / (X+Y+Z)

CIE 1976 u′v′:
u′ = 4x / (−2x + 12y + 3)
v′ = 9y / (−2x + 12y + 3)
Research, Standards & Citations

HDR Transfer Functions

[1] SMPTE ST 2084:2014. High Dynamic Range Electro-Optical Transfer Function of Mastering Reference Displays.

[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

[4] ITU-R BT.2020-2 (2015). Parameter values for ultra-high definition television systems for production and international programme exchange.

[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

[7] Dolby (2016). ICtCp: A new colour space for HDR and WCG. SMPTE Annual Technical Conference.

[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

[10] Reinhard, E., Stark, M., Shirley, P., Ferwerda, J. (2002). Photographic tone reproduction for digital images. ACM TOG (SIGGRAPH), 21(3).

[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

[14] CIE 15:2004. Colorimetry, 3rd Ed. (CIE 1931 2° observer, xy diagram, D-series illuminants).

[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.

Research & Visualization
EOTF Comparison — PQ vs HLG vs sRGB

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.

HDR Gamut Boundary Computation

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.

Click “Compute gamut boundary” to generate rings.
HDR Image Analysis

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).

Click “Upload HDR Image” to analyse.
Batch Colour Conversion

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.

Click “Run Batch” to analyse colours.
Research backend provides: CIE 1931 xy and 1976 u′v′ chromaticity diagrams, PQ/HLG/gamma tone curves, ICtCp and JzAzBz perceptual planes, gamut boundary rings at multiple luminance levels, EOTF comparison, HDR image analysis, batch colour conversion, gamut area metrics, tone mapping operators (Reinhard, Hable, ACES, Uchimura), and full JSON/CSV export. All computation is on-device with zero network dependency.