Where the model breaks

How bright is white

An sRGB value says a pixel is some fraction of whatever the display can manage. A PQ value says it is two hundred candelas. The change is the largest in display encoding since gamma, and what it removed was the honest admission that nobody knew.

Assumes The display is an unknown and The midpoint is not half.

Every value in an sRGB image is a ratio. A pixel at 60% is 60% of whatever the display’s white happens to be — 80 candelas per square metre in the reference viewing environment the standard describes, and anywhere from 200 to 1600 on a device somebody actually owns.

That is not a defect of the format. It is an accurate admission that the file does not know where it will be shown.

High dynamic range removes the admission by decree.

Three ways to spend a thousand code values. Normalised code value against luminance, for PQ, HLG and a conventional gamma curve, all covering 0.001 to 10000 cd/m². PQ spends 51% of its range below 100 cd/m² — roughly where a picture lives — and the gamma curve spends 15%, leaving the rest for highlights. A PQ code is the only one of the three that names a luminance rather than a fraction of whatever the display can manage.
Fig. 1 Three transfer functions covering the same range of light. Two describe fractions of an unspecified display maximum; one names candelas. The difference is not the shape of the curve, which is a detail, but what the number on the axis is a number of.

What absolute means

Under ST 2084 — the perceptual quantiser, universally called PQ — a code value denotes a luminance in candelas per square metre. Half way up the range is not half of white; it is 100 cd/m², on every conforming display, permanently.

The curve is neither a gamma law nor a logarithm. It is a fit to Barten’s model of human contrast sensitivity, and the exponents were chosen so that one step of code value is one step of just-noticeable contrast at every level from a ten-thousandth of a candela to ten thousand of them.

That is a genuinely different design goal from everything before it. A gamma curve exists because cathode-ray tubes had a power-law response and the encoding was chosen to cancel it — the perceptual near-uniformity that resulted was a happy accident, noticed afterwards. PQ was designed against the observer from the start, and the hardware does whatever it must to comply.

Two anchors, and a detail worth not tidying

The curve’s endpoints are what make the claim to absoluteness meaningful. Its normalised input is luminance divided by 10,000, so the top of the range is exactly 10,000 cd/m² and nothing about any display enters into it.

The bottom is more interesting. PQ does not map zero luminance to exactly zero code. With the input at zero the formula’s numerator collapses to a constant and the encoded value comes out at 7.3 × 10⁻⁷ — a real, nonzero number.

At twelve bits that is three thousandths of one code step, so it quantises to code zero and nothing is lost. But an implementation that “corrected” it to a clean zero would have changed the standard, and an assertion demanding a clean zero would have demanded the wrong thing. The requirement that actually matters is that black quantises to code zero, and that is what is checked here.

Small details like that are where a transfer function implementation goes wrong quietly. The curve is monotonic, smooth and plausible under almost any arithmetic error, and only the round trip and the anchors catch anything.

Is ten bits enough? Measured

The design claim can be tested rather than accepted, and the test needs a comparison rather than a property of PQ alone.

Take a bit depth. Walk the code values. At each step compute the contrast between adjacent codes and divide by the smallest contrast an observer can detect at that luminance. Anything above 1 is a visible step — banding.

PQ at twelve bits clears the threshold at every code. That is not a surprise — it is the curve’s design criterion, and finding otherwise would mean the implementation was wrong.

PQ at ten bits does not, and ten bits is what most HDR content is actually delivered in. 578 of its 1,021 code steps exceed the threshold, and not where the folklore puts them. That is the reason twelve-bit delivery exists in the standards and the reason banding in dark scenes is the characteristic HDR artefact.

A gamma curve stretched over the same range fails at more codes still, and fails in a different place: it spends its codes near the top, where highlights are, and starves the bottom two decades where the picture is. Asked to split its range at 100 cd/m², PQ puts about half its codes below and a gamma curve about a seventh.

What the ten-bit failure actually looks like

The failing codes are worth locating rather than gesturing at, because the usual account of them is wrong in a way that matters to anyone deciding where to spend a bit.

At ten bits the visible steps run from 1.65 × 10⁻³ cd/m² all the way up to 187 cd/m², and only 145 of the 578 lie below 1 cd/m². The single worst step is at 0.91 cd/m², where it overshoots the threshold by 36 per cent — which is not the floor of the range but the bottom of the region where a picture’s shadows sit and where an eye adapted to a bright room is at its most sensitive to a gradient. Banding in dark scenes is the characteristic artefact, but the codes producing it are not the darkest ones; they are the ones a tenth to a hundredth of diffuse white.

And the margin is uniform, which says something about the curve. Taking the worst ratio at each depth: 2.7195 at nine bits, 1.3585 at ten, 0.6789 at eleven, 0.3394 at twelve, 0.1697 at thirteen. Each is half the one above it to within two parts in a thousand. A curve with a weak region would not behave like that — the weak region would dominate at low depths and be overtaken elsewhere at high ones, and the ratios would not scale cleanly. They do, so PQ has no weak region: its step is a constant multiple of the threshold at every luminance, exactly as the fit intended, and bit depth is nothing but a scale factor on that constant.

So the answer to the section’s question is eleven. Eleven bits clears the threshold everywhere with 47 per cent of margin in hand; ten misses it by 36 per cent. Twelve is not a marginal call, it is a factor of 2.9 of headroom, and the choice between ten and twelve in the standards skips over the depth that would actually have sufficed.

The comparison with a gamma curve sharpens on the same measurement. Gamma at twelve bits still leaves 239 visible steps with a worst ratio of 2.34, and it scales the same way — so it would need about fourteen bits to clear what PQ clears at eleven. That is the honest size of the advantage: three bits, a factor of eight in code count, bought entirely by spending the codes where the observer can tell them apart.

The other answer, which stayed relative

Hybrid log-gamma is the other HDR curve in use, and it is not a variation on PQ. It is a different answer to the same question, from broadcasters rather than from cinema.

HLG is relative, like sRGB. Its lower half is the familiar square root of a conventional camera curve and its upper half is logarithmic, and the whole thing is scene-referred — it describes the light that arrived at the camera rather than the light a display should emit. A display renders it by applying a system gamma chosen for its own peak brightness.

So the same HLG signal is legitimately reproduced differently on a bright television and a dim one, which is exactly what PQ forbids. Broadcasters chose it for two practical reasons: it degrades gracefully on a display that does not understand it, and live production cannot afford a per-programme grading decision about absolute levels.

The trade is clean and neither side is wrong. PQ delivers a creative intent exactly, to displays that can meet it. HLG delivers a scene, and lets each display make its own decision. One is a specification and the other is a description, and the argument between them is the argument this site keeps arriving at from other directions.

Where the unknown went

The claim that HDR removed the display’s unknown status deserves scepticism, and applying it is the most useful thing in this essay.

A consumer panel reaching 600 cd/m² receiving a signal specifying 4,000 must do something. What it does is called tone mapping: compressing the signal’s range into the display’s, preserving what it can.

That process is not standardised. Every manufacturer implements it differently, the algorithms are proprietary, and they change with firmware. Two televisions showing the same file produce different pictures for reasons documented nowhere.

So the unknown has not been eliminated. It has been moved out of the file, where it was declared and everybody reasoned about it, into the display’s firmware, where it is undisclosed. The sRGB situation was: this value is a fraction, and the display’s maximum is unknown. The HDR situation is: this value is 4,000 candelas, and what the display will do about being unable to produce 4,000 candelas is unknown.

The second is worse in one specific respect. The first admitted its ignorance in the standard; the second has the form of a precise specification, and the imprecision has moved somewhere it cannot be seen.

A two-hundred-nit peak is what a good desktop display actually reaches, and it is the range most of this argument is really about.

Three ways to spend a thousand code values. Normalised code value against luminance, for PQ, HLG and a conventional gamma curve, all covering 0.001 to 200 cd/m². PQ spends 51% of its range below 100 cd/m² — roughly where a picture lives — and the gamma curve spends 15%, leaving the rest for highlights. A PQ code is the only one of the three that names a luminance rather than a fraction of whatever the display can manage.
Fig. 2 The three curves over 0.001 to 200 cd/m². PQ still spends 51 per cent of its range below 100 cd/m² and the gamma curve 15, so the shares are properties of the curves and the peak only decides what the top of the axis says.

What absolute encoding is genuinely worth

The criticism above is about a gap between the claim and the practice, and it should not obscure what the change bought.

An appearance calculation becomes possible from the file. The Hunt effect depends on absolute luminance, and predicting appearance requires the adapting luminance — which a conventional image does not contain. Every appearance calculation on ordinary content begins by assuming one, usually silently. An absolute encoding supplies it.

The bit budget is spent where it is useful. The comparison above is not close. A perceptually matched curve at twelve bits is banding-free across four decades, which no relative encoding stretched over the same range achieves.

A creative decision survives transport. A colourist grading a film to a reference display in a dark surround makes decisions about specific luminances, and under a relative encoding those decisions are relative to a maximum that changes downstream.

Those are real, and the first is the one this site cares about most. The gap between what the format promises and what displays deliver is a problem of implementation and disclosure rather than of the design.

What was computed here

Both curves must invert exactly, and the round trip is the check that catches everything. PQ’s inverse involves subtracting a constant from a quantity raised to a reciprocal exponent, and a sign or a bracket wrong anywhere gives a curve that is monotonic, smooth, plausible and not ST 2084. Measured across the full range including the extremes where the arithmetic is worst conditioned, the worst relative error is 1.6 × 10⁻¹³.

The threshold model is a stated three-regime approximation, not Barten’s full integral — sensitivity is photon-limited in the deep shadows, plateaus across a broad middle range near 1%, and falls off again at very high luminance. It is stated as a model rather than presented as Barten’s numbers.

Two bounds are declared and both are worth stating because both were found by the check failing.

The walk skips the first code step, because the step out of absolute black has no contrast ratio at all: the relative difference is 2 whenever the lower value is zero, for every encoding ever devised, and including it reports every curve as failing at its darkest code for a reason that has nothing to do with the curve.

And it stops at a luminance floor of 10⁻⁴ cd/m². PQ’s lowest codes go below even that — code 2 sits at eight millionths of a candela — and no display emits there, no eye discriminates there, and the sensitivity model is not stated there. Running below the floor reported one failing code for PQ at twelve bits, at a luminance four orders of magnitude under the darkest black any panel achieves. That was an artefact of extrapolating the threshold model, so the range is bounded and the bound is declared.

Both are the same kind of correction: an assertion was failing for a reason outside what it was measuring, and the fix was to say where the measurement applies rather than to loosen it.

Three ways to spend a thousand code values. Normalised code value against luminance, for PQ, HLG and a conventional gamma curve, all covering 0.001 to 1000 cd/m². PQ spends 51% of its range below 100 cd/m² — roughly where a picture lives — and the gamma curve spends 15%, leaving the rest for highlights. A PQ code is the only one of the three that names a luminance rather than a fraction of whatever the display can manage.
Fig. 3 The same three curves over a thousand candelas rather than ten thousand — the range a good consumer display actually reaches. The allocation argument does not depend on the extreme peak, which is the part of the specification almost nothing meets.

A bright desktop panel sits between the two, and it is the level at which the absolute encodings begin to separate from the relative one at all.

Three ways to spend a thousand code values. Normalised code value against luminance, for PQ, HLG and a conventional gamma curve, all covering 0.001 to 100 cd/m². PQ spends 51% of its range below 100 cd/m² — roughly where a picture lives — and the gamma curve spends 15%, leaving the rest for highlights. A PQ code is the only one of the three that names a luminance rather than a fraction of whatever the display can manage.
Fig. 4 And over a hundred candelas, which is the range a page or a print actually occupies. The three curves are nearly indistinguishable here, so the whole disagreement between the two kinds of encoding lives above the range most pictures are looked at in.

Between those two settings the crossing from one kind of encoding to the other is continuous, and two more of them are enough to locate where it happens.

Three ways to spend a thousand code values. Normalised code value against luminance, for PQ, HLG and a conventional gamma curve, all covering 0.001 to 400 cd/m². PQ spends 51% of its range below 100 cd/m² — roughly where a picture lives — and the gamma curve spends 15%, leaving the rest for highlights. A PQ code is the only one of the three that names a luminance rather than a fraction of whatever the display can manage.
Fig. 5 Four hundred candelas, which is a bright desktop panel. The two absolute curves have begun to separate from the relative one, and the range where they differ is entirely above what a print can do.

Ten times that is where a high-dynamic-range television is specified, and it is where the three encodings part company for good.

Three ways to spend a thousand code values. Normalised code value against luminance, for PQ, HLG and a conventional gamma curve, all covering 0.001 to 4000 cd/m². PQ spends 51% of its range below 100 cd/m² — roughly where a picture lives — and the gamma curve spends 15%, leaving the rest for highlights. A PQ code is the only one of the three that names a luminance rather than a fraction of whatever the display can manage.
Fig. 6 And four thousand, which is a high-dynamic-range television at its peak. The three encodings disagree here by more than the difference between two of them at any level a page is read at.

Where the model stops

The contrast sensitivity model is the largest limitation. Barten’s actual model is an integral over spatial frequency with terms for optical transfer, neural noise and photon noise, and it depends on the size and spatial frequency of the target. The three-regime approximation used here has the right shape and is not the standard’s own curve, so the exact code counts should be read as illustrative of the comparison rather than as the standard’s numbers.

The comparison also treats a single channel. Real banding is a three-channel phenomenon and is often visible in chroma before luminance, and the interaction between the three is not modelled.

And nothing here addresses the actual dominant source of HDR banding in practice, which is not the transfer function at all — it is compression. A well-encoded ten-bit PQ signal has quantisation artefacts near the threshold; a heavily compressed one has artefacts far above it, and the transfer function is not what put them there.

Two thousand nits is a bright consumer panel, and reading it against the ten-degree observer says the shares are not an artefact of either choice.

Three ways to spend a thousand code values. Normalised code value against luminance, for PQ, HLG and a conventional gamma curve, all covering 0.001 to 2000 cd/m². PQ spends 51% of its range below 100 cd/m² — roughly where a picture lives — and the gamma curve spends 15%, leaving the rest for highlights. A PQ code is the only one of the three that names a luminance rather than a fraction of whatever the display can manage.
Fig. 7 The same three curves to 2000 cd/m² under the CIE 1964 observer. The two shares are unchanged again, so what a code value names is decided by the curve and not by the observer scoring the display.

What the pictures cannot show

This essay is about high dynamic range and every figure in it is being displayed on the reader’s screen, at the reader’s brightness, in the reader’s room.

The specific impossibility is worth naming: a figure demonstrating that PQ at ten bits bands in the near-black would need to show near-black at a stated luminance, and the page has no control over what luminance anything is displayed at. On a bright screen the dark end of any figure is above the region under discussion entirely.

The transfer curves and threshold ratios here are therefore plots, and they are plots of a quantity — visible or not visible — that the reader’s own apparatus decides. A reader with a good display in a dark room and a reader with a phone in sunlight are looking at the same figure and could reasonably disagree about every claim in it.

That is the site’s standing difficulty at its sharpest, and it is fitting that the essay about the format claiming to eliminate it is the one where it bites hardest.

Twenty thousand nits is beyond anything built and is the honest end of the axis, because PQ was defined out to it.

Three ways to spend a thousand code values. Normalised code value against luminance, for PQ, HLG and a conventional gamma curve, all covering 0.001 to 20000 cd/m². PQ spends 51% of its range below 100 cd/m² — roughly where a picture lives — and the gamma curve spends 15%, leaving the rest for highlights. A PQ code is the only one of the three that names a luminance rather than a fraction of whatever the display can manage.
Fig. 8 The three curves over the whole range PQ was defined on. The gamma curve is a fraction of whatever the display manages and PQ is a luminance, which is why only one of the three still means anything at the top of this axis.

What the reference display does to all of this

There is one place where the absolute claim holds exactly, and noticing where it is explains the rest.

HDR content is graded on a reference monitor with a specified peak luminance, a specified black level, and a specified viewing environment. In that room, on that display, a PQ code means what it says: the colourist sees the luminance the file specifies, and the creative decision is made against the actual light.

Everything downstream is an approximation to that room. The format’s promise is precise and it is a promise about one display, and every other display is performing an undisclosed transformation to approximate it.

That is a defensible architecture, and it is the same architecture print has used for a century: a proof under standard viewing conditions is the reference, and everything else is judged against it. What is new is the claim of absoluteness — print never said the ink was 200 candelas, because nobody could have meant it.

So the honest summary of what HDR changed is narrower than the marketing and larger than the sceptical reading. It gave the creative decision a defined reference, an encoding matched to the observer, and enough precision to deliver it. What it did not do is make every display show the same picture, and the standards do not claim it did — the claim is made by everybody except the standards.

The comparison is not only about how high the peak goes; running it at a peak a cinema screen would recognise says whether the way the three curves spend their codes depends on the range at all.

Three ways to spend a thousand code values. Normalised code value against luminance, for PQ, HLG and a conventional gamma curve, all covering 0.001 to 40 cd/m². PQ spends 51% of its range below 100 cd/m² — roughly where a picture lives — and the gamma curve spends 15%, leaving the rest for highlights. A PQ code is the only one of the three that names a luminance rather than a fraction of whatever the display can manage.
Fig. 9 The same three curves over 0.001 to 40 cd/m², which is roughly a projected image in a dark room. PQ still spends 51 per cent of its range below 100 cd/m² and the gamma curve still spends 15, because those shares are properties of the curves rather than of the range they are drawn over.

Sixty nits is a dim reference monitor, and it brackets the low end of what a grading suite is ever set to.

Three ways to spend a thousand code values. Normalised code value against luminance, for PQ, HLG and a conventional gamma curve, all covering 0.001 to 60 cd/m². PQ spends 51% of its range below 100 cd/m² — roughly where a picture lives — and the gamma curve spends 15%, leaving the rest for highlights. A PQ code is the only one of the three that names a luminance rather than a fraction of whatever the display can manage.
Fig. 10 The same three curves to 60 cd/m². The shares below 100 cd/m² are the same as at every other peak, which is the whole point: PQ’s allocation is absolute and the gamma curve’s is relative to a ceiling nobody states.

The range the eye actually covers

The peak of 10,000 cd/m² in the specification is worth putting beside what vision does with light, because the two ranges are not the same range.

The eye covers something like fourteen orders of magnitude from threshold to damage, and it does so by adapting rather than by having that range available at once. At any given adaptation state the useful range is a few decades, which is roughly what a good display delivers — so a display is not failing to match the eye’s dynamic range, it is matching the eye’s instantaneous range and the eye moves.

That is why the tone mapping problem is real rather than a temporary hardware limitation. A scene containing a sunlit window and a dark interior spans more than any display’s simultaneous range and more than the eye’s, and a person looking at the real scene handles it by adapting as their gaze moves. A picture cannot, because the whole picture is presented at once — and no increase in peak luminance fixes it.

Who found it, and when

Peter Barten published his contrast sensitivity model in 1999, in a book about the physics of image quality, and it was intended for medical imaging — where the question of how many grey levels a diagnostic display needs is a question with consequences.

Scott Miller and colleagues at Dolby derived PQ from Barten’s model around 2012, and it was standardised as SMPTE ST 2084 in 2014. The derivation is unusually direct: the curve is what falls out of requiring that code steps be threshold-sized, integrated over the range.

HLG was developed jointly by the BBC and NHK and standardised in 2016, from a different constraint entirely — that the signal degrade gracefully on displays that do not understand it, which matters when broadcasting to an installed base nobody controls.

The DICOM grayscale standard display function, from 1998, is the older sibling of all of this: a perceptually linearised transfer function derived from Barten’s model, standardised for medical displays fifteen years before consumer HDR existed. Radiologists got a perceptually uniform encoding, an enforced calibration regime, and a controlled viewing environment two decades before anybody’s television did, for the obvious reason that the consequences of banding in a mammogram are not the same as in a film.

Where this goes next

The admission this format was built to remove is the display is an unknown. The encoding question one layer down, about what a code value means before anybody asks how bright it is, is the midpoint is not half. And the appearance effect that needed the absolute quantity all along is brighter looks more colourful.

What this makes readable

Essays that name this one as a prerequisite.

Named alongside this one

Essays reaching for the same objects. Nobody chose these; they are what the index of named objects makes visible.

What links here

The 8 essays that link to this one and share the most of its objects, of 20 that link here.

The objects this essay names

Each one links to every other essay that touches it.

Absolute luminanceHigh dynamic rangeHLG, hybrid log-gammaLuminancePQ, the perceptual quantiserQuantisationThresholdTone mappingTransfer function