Source
Scene reference white 100 nits
Exposure 0.00 EV
Exposure gain applied before tone mapping. +1 EV doubles luminance.
Tone Mapping
Low-op A 0.00
Low-op B 0.00
Colour Decision List
Contrast 1.00
Saturation 1.00
Lift / Gamma / Gain
Temperature / Tint
Hue / Vibrance
Working & Output
Peak luminance 100 nits
Keyboard shortcuts
1-8 cycle operators  |  S toggle split  |  R reset  |  E export PNG  |  F false colour
Viewport
Working: ACEScg → Target: sRGB, TM: Hable
-
Scene-referred Intent: Photographic
Tone curve (luminance)
Filmic shoulder
Histogram (displayed)
Waveform (luma)
Vectorscope (UV 709)
Actions
Quick Presets
Presets configure source, target, peak luminance and OETF in one click.
Export
Import Settings
Share
State is encoded in the URL automatically.
A/B Compare
Overlays
Custom Curve (1D)
Knee 0.150
Mid 0.500
Shoulder 0.850
Benchmarks
-
-
Tone Mapping & Display Standards
SMPTE ST 2084 — Perceptual Quantizer (PQ)

ST 2084 (2014): Defines the PQ EOTF for HDR displays. Maps code values to absolute luminance from 0 to 10,000 cd/m². Used by HDR10, HDR10+, and Dolby Vision.

The PQ curve is derived from Barten's contrast sensitivity model, ensuring each code step is equally perceptible. A 10-bit PQ signal can encode the full luminance range without visible banding.

ITU-R BT.2100 — Hybrid Log-Gamma (HLG)

BT.2100 (2016): Defines both PQ and HLG transfer functions for HDR television. HLG is scene-referred and backward-compatible with SDR displays.

HLG uses a logarithmic upper half and square-root lower half, requiring no metadata for display adaptation. Widely used in broadcast HDR (BBC/NHK development).

ITU-R BT.2446 — HDR/SDR Conversion

BT.2446-A (2020): HDR-to-SDR conversion with integrated display light model. Uses a parametric curve derived from PQ-encoded luminance with perceptual uniformity preservation.

BT.2446-C (2021): Adaptive scene-content-dependent HDR-to-SDR mapping. Preserves relative luminance relationships with chroma preservation.

IEC 61966-2-1 — sRGB Standard

Defines the sRGB colour space for web and consumer displays. Piecewise gamma ~2.2 EOTF with linear segment near black. Rec.709 primaries, D65 white point.

Peak luminance nominally 80-100 cd/m². The de facto standard for all SDR web content and default monitor calibration target.

ITU-R BT.709 & BT.2020 — Primaries

BT.709: HD television standard. Same primaries as sRGB. Gamma 2.4 display EOTF. D65 white point. Covers ~35.9% of CIE 1931 xy.

BT.2020: UHD/4K/8K standard with ultra-wide gamut covering ~75.8% of CIE 1931 xy. Used with PQ or HLG for HDR content delivery.

Display P3: DCI-P3 primaries with D65 white. ~25% wider than sRGB. Standard for Apple displays and modern HDR monitors.

ACES — Academy Color Encoding System

SMPTE ST 2065-1: ACES defines a scene-referred linear colour encoding (ACEScg / AP1 primaries, D60 white) and a complete pipeline from camera capture through colour grading to display output.

The ACES RRT (Reference Rendering Transform) + ODT (Output Device Transform) provide a standardised tone mapping and gamut mapping path. The Narkowicz (2015) approximation is a commonly used real-time fit.

HDR10 & Dolby Vision

HDR10: Open standard using ST 2084 PQ, BT.2020 primaries, 10-bit, static metadata (MaxFALL, MaxCLL). No dynamic metadata.

Dolby Vision: Proprietary. 12-bit, dynamic metadata per scene/frame, RPU (Reference Processing Unit) for display mapping. Supports mastering up to 10,000 nits.

Mathematical Models and Formulas
Operators
Reinhard (2002) — Global photographic:
L_d = L / (1 + L)
Extended: L_d = L(1 + L/L_white²) / (1 + L)

Hable / Uncharted 2 (2010) — Filmic:
h(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 = h(x * exposureBias) / h(11.2)

ACES Filmic (Narkowicz 2015):
f(x) = clamp01((x(2.51x+0.03)) / (x(2.43x+0.59)+0.14))

Uchimura / Gran Turismo (2017):
Parametric S-curve: toe (power), linear mid, shoulder (exponential)
P=1, a=1, m=0.22, l=0.4, c=1.33, b=0

BT.2446 Method A:
Y_sdr = (Y^(1/2.4) × (peak_SDR/peak_HDR))^2.4

BT.2446 Method C:
Y_sdr = reinhard(Y × ratio) / ratio

Log (soft):
f(v) = log2(1+v) / log2(11)
EOTF / OETF
sRGB EOTF (IEC 61966-2-1):
V ≤ 0.04045: L = V/12.92
V > 0.04045: L = ((V+0.055)/1.055)^2.4

sRGB OETF (inverse):
L ≤ 0.0031308: V = 12.92 × L
L > 0.0031308: V = 1.055 × L^(1/2.4) - 0.055

PQ EOTF (ST 2084):
N^(1/m2) = Np; num = max(Np - c1, 0); den = c2 - c3·Np
L = (num/den)^(1/m1) × 10000 [nits]
m1=0.1593, m2=78.844, c1=0.8359, c2=18.852, c3=18.688

HLG OETF (BT.2100):
E ≤ 1/12: V = √(3E)
E > 1/12: V = a·log(12E-b) + c
a=0.17883277, b=0.28466892, c=0.55991073
Colour Spaces
sRGB / Rec.709 → XYZ (D65):
|0.4124564 0.3575761 0.1804375|
|0.2126729 0.7151522 0.0721750|
|0.0193339 0.1191920 0.9503041|

Display P3 → XYZ (D65):
|0.4865709 0.2656677 0.1982173|
|0.2289746 0.6917385 0.0792869|
|0.0000000 0.0451134 1.0439444|

Rec.2020 → XYZ (D65):
|0.6369580 0.1446169 0.1688810|
|0.2627002 0.6779981 0.0593017|
|0.0000000 0.0280727 1.0609851|

ACEScg AP1 → XYZ (D60):
|0.6624542 0.1340042 0.1561877|
|0.2722287 0.6740818 0.0536895|
|-0.0055746 0.0040607 1.0103391|
CDL / Grading
Lift-Gamma-Gain (ASC CDL):
out = (in × gain + lift) ^ (1/gamma)

Contrast (around mid-grey):
out = lerp(0.5, in, contrast)

Saturation:
lum = 0.2126R + 0.7152G + 0.0722B
out = lerp(lum, in, saturation)

Temperature / Tint (simplified):
R += temp × 0.1; B -= temp × 0.1; G += tint × 0.05

Vibrance (per-pixel adaptive saturation):
sat = 1 - min(R,G,B)/max(R,G,B)
amount = lerp(vibrance, 1, sat)
out = lerp(lum, in, amount)
Gamut Mapping
Hard Clip:
out = clamp(in, 0, 1) — simple truncation

Preserve Hue (scale):
mx = max(R,G,B); if mx > 1: RGB /= mx
Preserves hue and relative channel ratios

Soft Compress:
comp(v) = v > 1 ? 1 - e^(-(v-1)) + 1 : v < 0 ? -(1-e^v) : v
Smooth roll-off avoiding abrupt clipping
Limitations
  • CPU Processing: This tool uses CPU-based pixel processing. For large images, performance scales linearly with pixel count.
  • 8-bit Output: Final display is quantised to 8-bit sRGB. Internal pipeline operates in Float32 but display output is limited by canvas capabilities.
  • Simplified ACES: The Narkowicz (2015) approximation differs from the full ACES CTL RRT+ODT. For production colour management, use official ACES transforms.
  • No Spatial Processing: All operators are per-pixel (global). No local adaptation, bilateral filtering or spatial-aware tone mapping.
  • Bradford CAT: White-point adaptation uses Bradford matrix (ICC-mandated). No CIECAM02/CAM16 degree-of-adaptation modelling.
  • Display Dependent: Results depend on monitor calibration, gamma, colour profile, and ambient lighting.
Research, Standards and Citations

Tone Mapping Operators

[1] Reinhard, E., Stark, M., Shirley, P., Ferwerda, J. (2002). Photographic Tone Reproduction for Digital Images. Proc. SIGGRAPH 2002, 267-276. DOI: 10.1145/566570.566575

[2] Hable, J. (2010). Filmic Tonemapping Operators. GDC 2010 Uncharted 2 presentation.

[3] Narkowicz, K. (2015). ACES Filmic Tone Mapping Curve. Blog post on Krzysztof Narkowicz's site.

[4] Uchimura, H. (2017). HDR Theory and Practice: Practical HDR and Wide Color Techniques in Gran Turismo Sport. CEDEC 2017.

[5] Reinhard, E., Heidrich, W., Debevec, P., Pattanaik, S., Ward, G., Myszkowski, K. (2010). High Dynamic Range Imaging, 2nd Ed. Morgan Kaufmann.

Transfer Functions & HDR Standards

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

[7] ITU-R (2016). BT.2100 — Image parameter values for high dynamic range television. Recommendation BT.2100-2.

[8] ITU-R (2020). BT.2446 — Methods for conversion of high dynamic range content to standard dynamic range content and vice-versa.

[9] SMPTE (2013). ST 2065-1:2021 — Academy Color Encoding Specification (ACES).

[10] IEC (1999). IEC 61966-2-1 — Multimedia systems and equipment - Colour measurement and management - Part 2-1: Default RGB colour space - sRGB.

Colour Science & Gamut

[11] ITU-R (2015). BT.2020-2 — Parameter values for ultra-high definition television systems.

[12] ITU-R (2002). BT.709-6 — Parameter values for HDTV standards for production and international programme exchange.

[13] Poynton, C. (2012). Digital Video and HDTV Algorithms and Interfaces, 2nd Ed. Morgan Kaufmann.

[14] CIE (2004). Colorimetry, 3rd Ed. CIE 15:2004.

[15] Lam, K.M. (1985). Metamerism and colour constancy. PhD thesis, University of Bradford.

About this tool

This tool implements 8+ tone mapping operators with full CDL grading, gamut mapping, histogram/waveform/vectorscope analysis, 1D/3D LUT export, operator comparison, and batch processing — entirely client-side (zero network). Not a substitute for calibrated measurement or official ACES/Dolby tools.

Research & Visualization
Operator Comparison

Compare all 8 tone mapping operators against the current source image. Shows per-operator processing time and mean output luminance side-by-side.

Operator Time (ms) Mean Lum
Click "Compare all operators" to run analysis.
Batch Tone Mapping

Enter hex colours (one per line or comma-separated). Applies current tone mapping settings to each colour and shows source/mapped/OOG status.

Click Run Batch to analyse colours.
Pipeline Breakdown

The full tone mapping pipeline processes each pixel through these stages:

1. Linearise (EOTF: sRGB/PQ/HLG → linear)
2. Convert to working space via XYZ + Bradford CAT
3. Apply exposure gain (2^EV)
4. Low-level operator (optional: add/mul/softclip/power/sigmoid/exp/log/tanh)
5. Tone mapping operator (Reinhard/Hable/ACES/BT.2446/Uchimura/Log/Custom)
6. CDL grading: contrast → saturation → lift-gamma-gain
7. Temperature + tint adjustment
8. Hue rotation + vibrance
9. Gamut map to target (clip/preserve-hue/soft-compress) via XYZ + Bradford
10. Output OETF (sRGB/gamma/PQ/HLG)
11. Dithering (±0.5 LSB)
False Colour Zone Legend
≤ 0.01 nits — Crushed blacks
≤ 0.1 nits — Deep shadows
≤ 1 nit — Shadows
≤ 10 nits — Dark midtones
≤ 100 nits — Midtones / SDR
≤ 203 nits — SDR reference white
≤ 1,000 nits — Highlights
≤ 4,000 nits — Specular highlights
≤ 10,000 nits — Extreme highlights
Research backend provides: 8+ tone mapping operators, full CDL grading pipeline, gamut mapping (clip/preserve/soft), histogram/waveform/vectorscope analysis, operator comparison, batch processing, 1D/3D LUT export, false colour overlay, A/B split compare, URL state sync, JSON import/export. All computation is on-device with zero network dependency.