Transfer function — where it appears
Named by 25 essays across 5 fields — each of them below, with the objects they name alongside it.
The display is an unknown
This site is displayed on the very apparatus it is about, and it knows almost nothing about that apparatus. Two figures here stop assuming and ask instead — a probe for the transfer function and a probe for the gamut.
The midpoint is not half
Code 128 sits halfway along the sRGB scale and carries about a fifth of white's luminance. Half the luminance is code 188. Almost every gradient, blur and resize on the web gets this wrong, and the errors are visible once known.
A hex code is not a colour
Six hexadecimal digits identify three numbers. Turning three numbers into a colour needs a colour space, a transfer function, a white point and a display, and leaving any of them unstated is the everyday version of every confusion in colour management.
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.
Six numbers make a space
An RGB colour space is eight numbers — three primary chromaticities, a white point, and a transfer function — and everything else about it is derived. Deriving it rather than copying the matrix is the difference between having a colour space and having a table somebody else computed.
Raw is not a picture
A raw file is three integrals per site and a list of decisions nobody has taken yet. Every one of those decisions has a defensible answer and none of them has a correct one, which is why two converters open the same file and disagree.
A gradient is a path
Two colours fix the ends of a blend and nothing else. The middle is decided by the space the interpolation happens in, and four spaces in daily use put the halfway point of one ordinary gradient as much as thirty-seven units of colour difference apart.
Banding is not a bit depth
Eight bits bands at thirty times threshold in the shadows and at under three at mid grey, on the same ramp with the same encoding. What decides is where in the tone scale the gradient sits, how sharp each step's edge is, and how far away the reader is — and a bit count contains none of the three.
Every threshold was measured with a grating
An earlier essay here claimed that the model cannot explain why dither works, and named two missing pieces. One of them was real and worth thirteen times the guess; the other was not needed. The piece nobody named was the detector — and reading the same model two ways changes the answer by a factor of fifty.
A lattice has no derivative
Every departure priced here was priced by perturbing something and reading the answer, which requires the thing being perturbed to have a derivative. A file written on a code lattice does not have one — its output is flat almost everywhere and jumps on a set of measure zero — so quantisation can be bounded and never propagated. The bound is 1.15 colour differences at eight bits per channel against a mean of 0.19, and it is worst where the encoding spends fewest codes.
The order is not in the documentation
A raw converter performs a white balance, a colour matrix, a tone curve and a clip, and every account of the process lists them in that order without saying the order decides anything. Exchanging the first two moves the picture by nine colour differences at the mean and thirteen at the worst patch. The twenty-four arrangements collapse into five outcomes running out to sixty-five, and nothing a converter ships says which of them it is.
One step has no choice
Four of a raw converter's operations can be arranged twenty-four ways. The reconstruction cannot be arranged at all — a colour matrix needs three numbers and a mosaic site has one, so filling in the mosaic is forced to the front by arithmetic rather than by convention. What is not forced is whether it happens in linear light or after the curve, and that decision costs 5.8 colour differences at an ordinary edge and nothing at all four sites away from it.
A contrast control is three controls
A tone curve is a function of one number at a time and knows nothing about hue. Applied to each channel separately it rotates a hue circle by up to seventeen degrees, raises chroma by a factor of 1.27 at ordinary strength, and lifts lightness — so a photographer who moves a contrast slider has moved three things and the interface names one of them. All three scale with the curve's strength, monotonically, and the hue rotation depends on which hue it is.
A stop is not a stop afterwards
Doubling the light is exactly a factor of two in raw values and in tristimulus values, which is the one thing about exposure everybody is sure of. A stop taken after the tone curve is a factor of something else, and matching the two on an eighteen per cent grey leaves the rest of the frame between three and four colour differences apart at the mean and up to eleven at the worst patch. The gain that matches one stop is 2.47 rather than 2.
Two converters and one highlight
The clip is the only step in a raw pipeline that destroys information rather than moving it, and it is the step whose position varies most between converters. Below the sensor's ceiling its position changes nothing at all, exactly. Above it, clipping at the sensor and clipping after the matrix land twenty-one colour differences and seventy-eight degrees of hue apart, and which hues are affected is a property of the camera's own dyes.
An average on the stored values
A resize, an antialiased edge, a transparency composite and a chroma subsample are all averages, and in almost every pipeline they are taken on the numbers as stored. The numbers as stored are encoded, the encoding is a compression, and a half-and-half blend of black and white taken that way lands 18.7 colour differences from the half-and-half blend of the light — 22.7 units of lightness darker, on every pair, always in the same direction.
A resize with a negative weight in it
A blend taken on stored values is always darker than the blend of the light, because the encoding is concave and a convex combination of a concave function's values lies below the function of the combination. A bicubic or Lanczos resize is not a convex combination. Beside an edge its negative weights make the stored-value result lighter than the light's own — by up to 6.1 colour differences with bicubic and 12.2 with Lanczos on skin against its shadow — and on edges between full-scale values the clip hides the overshoot and the old guarantee appears to hold.
The corner of a resized patch is lighter than its edges
A resize taken on stored values is darker than the resize of the light wherever its weights are positive, and lighter beside an edge where a kernel's negative lobes fall. In two dimensions the kernel is a product, and just outside a patch's corner a Lanczos magnification of skin against its shadow comes out 14.5 colour differences lighter — more than along either edge. A reduction to a quarter is mostly an average and errs lighter by at most two. And an unsharp mask, whose negative weights are its whole purpose, is lighter on the stored values at every amount on every pair, and never darker.
The eye counts a corner's error, not its peak
A Lanczos-magnified patch errs a fifth more at its corner than along its edges, pixel by pixel, and an unsharp mask errs almost exactly as much at its corner as along its edges. Filtered by the eye over the plane rather than along a line, the two swap: the magnified corner is seen exactly as its edge is, and on a printed page the sharpened corner is seen at 2.4 times its edge. What decides it is whether the error changes sign. Ringing averages away and a one-sided halo does not, and a corner is where two edges' halos land on the same patch of retina.
The hue disagreement is the quantiser's
As a display brightens, the appearance model shifts every colour's balance between lightness and chroma by one factor, and ΔEITP shifts violets towards lightness and yellow-greens towards chroma. The proposed source was the perceptual quantiser acting on three cone-like signals at unequal levels. Replacing the quantiser with a pure power law and changing nothing else removes the disagreement exactly: every colour moves by a factor of one. With the quantiser, how far a colour moves follows the spread of its three signals, and which way follows where its S signal sits — above the other two, towards lightness; below, towards chroma.
A tone-mapped blue turns where it lands
In ΔEITP a display's blue corner, and the turn at which adding green to it changes which side of ICtCp's red–green axis it moves the colour to, both shift with the display's peak, because the quantiser reads absolute levels. A high-dynamic-range picture graded on a bright master and shown on a dimmer panel is tone-mapped, its blues delivered below the levels they were graded at. The prediction was that a blue at a tenth of full drive on a 1,000 cd/m² panel turns where a 100 cd/m² panel's full blue does, and that the corner's move differs, because the dimmed blue no longer sits at a vertex. The turn agrees within a hundredth of a nanometre. So does the corner, within half a per cent: the steps both are read from are directions at one absolute signal, whatever drive delivered it. The tone map's whole effect on the blue is where it puts the blue. Through ITU-R BT.2390's curve, a master's bright blues are gathered near a dim display's peak and share one turn there — two nanometres from where the master turned them — while blues under the curve's knee keep their turns exactly.
A tone curve per channel turns a sky towards cyan
A pure blue tone-mapped from a bright master to a dim display turns, in ΔEITP, wherever its delivered level puts it, and any tone curve that delivers it to the same level gives it the same turn. A picture's blue is not pure. The prediction for a blue mixed with a little green was that a tone curve applied to each channel separately raises the green's share by about half — the blue channel compressed above the curve's knee, the dimmer green left near it — turning the mixture's hue several degrees towards cyan and its turn a nanometre or more from where a curve that scales all three channels together puts it. The turn does move, by 1.6 to 3 nanometres on a 100 cd/m² display and up to 6.5 on a 300. But the share is not raised by half: through BT.2390 to a 100 cd/m² display, a blue graded with a tenth of green arrives with its green at 69 per cent of its blue, nearly seven times as much, and its ICtCp hue turns 23 degrees towards the green. The scaled curve keeps every mixture's hue within three degrees and its turn within half a nanometre of the pure blue's.
A curve on intensity cannot see a blue's brightness
ITU-R BT.2390's tone curve applied to each channel of a bright master turns a tone-mapped sky's appearance fifty-two hue-quadrature units towards green on a 100 cd/m² display; applied to the largest channel with all three scaled, it keeps hue and lightness to a quarter of a unit. BT.2390 also describes applying the curve to ICtCp's intensity and scaling its chroma, which keeps ICtCp's hue by construction, and the prediction was that it keeps the appearance's hue within three units and its lightness within two. It keeps the hue, within 2.3 units. It cannot keep anything on the display: a saturated blue's intensity is the PQ level of 79 cd/m², under the 300 cd/m² display's knee, so the curve barely touches it and every sky asks for two to seven times the blue the display has. Clipped channel by channel, the sky turns as far as the per-channel curve turned it; scaled back into the gamut, it lands where the scaled curve put it. The step back into the gamut decides the appearance, not the curve.
Lowering only the chroma turns the sky white and its hue with it
A tone curve applied to ICtCp's intensity keeps a high-dynamic-range sky's hue, but a saturated blue's intensity lies under the curve's knee, so the colour it asks for lies outside every display's gamut. The prediction was that bringing it back by lowering its chroma alone — intensity and ICtCp hue held — keeps the CIECAM16 hue within three units, lifts the lightness by ten and halves the chroma: a paler blue of the right hue. The ICtCp hue and intensity are kept to a hundredth. Everything else fails. The chroma must fall to a fifth or less on a 100 cd/m² display, the sky rises from a lightness of 22 to 76 and higher, and its hue quadrature moves eight to seventeen units toward green — a pure blue's by 17. Holding ICtCp's hue while lowering chroma does not hold the hue a viewer sees, and the intensity the curve chose was never a blue's.
The sky a dim display can show best is the master's own
A tone curve applied to ICtCp's intensity maps a saturated high-dynamic-range sky to a colour no display can show, and bringing it back by lowering only its ICtCp chroma turns it pale and toward green. The prediction was that a return along CIECAM16's own hue line, at the lightness the curve chose, holds the hue by construction, needs a deeper chroma cut, and still lies at least twice as far from the master as simply scaling the drives. It holds the hue to a hundredth, keeps more chroma than ICtCp's return rather than less, and lies two and a half to four times as far as scaling — because holding the true hue removes only one or two of seventeen units of difference. The rest is the lightness the curve held. And the nearest a dimmer display can come to the master's appearance turns out to be the master's drives, shown unmapped.
Named alongside it
The objects these essays reach for when they reach for this one.
Colour managementSpecificationDynamic rangeDeclared inputLightnessClippingStructural choiceΔEGammaGamut mappingHue quadratureInterpolation