An appearance model flattens the blue by its hue
Assumes The yellow is sharp where the tolerance unit does not compress, A display's blue is sharp where the rotation is not and The units part by hue, not by light level.
A gamut margin is a promise that every colour kept will sit a stated distance inside what the device can make. Along a flat face of the gamut that costs exactly the margin. At a corner, where three faces meet, it costs a multiple of the margin, because the nearest colour that is a margin from all three faces lies further in than a margin from any one; and the multiple is set by the corner’s tangent shape, the three directions the device’s drive can move the corner in, measured in whatever unit the margin is written in. A display’s blue is sharp where the rotation is not read the six corners of an sRGB and a BT.2020 display this way and found each tangent shape predicting the curved solid’s own move to within a per cent.
It also found that the unit decides which corner is sharp. In CIELAB, sRGB’s blue is its sharpest corner, a margin moving it 3.35 times itself; in ΔE₀₀ the yellow is the sharpest of both displays’, at 1.75 and 1.78, and the blue has fallen to 1.42 and 1.26. The yellow is sharp where the tolerance unit does not compress took ΔE₀₀ apart to find out why. Its chroma length, which divides a chroma step by five to ten at a display’s corners, blunts every corner whose directions run back along chroma, and only one of the yellow’s three directions does. The yellow’s sharpness lies across hue, and ΔE₀₀’s largest term cannot reach it.
That left a question about the unit rather than the display. CAM16-UCS, the uniform space built on the CIECAM16 appearance model, compresses colourfulness too, but logarithmically rather than by a length that grows in proportion to chroma, and it takes its hue from the appearance model’s own hue angle rather than from a fitted weighting. The prediction was that CAM16-UCS levels the corners less than ΔE₀₀ does, because its logarithmic colourfulness compresses high chroma less steeply, so that the blue stays sharper than the yellow, and that the yellow’s two side edges open about as much as in ΔE₀₀, since both units weight hue similarly there.
The appearance model keeps the yellow and flattens the blue
Carried into CAM16-UCS at the display’s own D65 white, an adapting luminance of 64 cd/m² and an average surround, the yellow is the sharpest corner of both displays, moving 1.66 times a margin on each. The blue is the bluntest corner of all twelve, at 1.17 on sRGB and 1.10 on BT.2020 — lower than ΔE₀₀’s 1.42 and 1.26, nearly a face. Half the prediction holds: CAM16-UCS compresses chroma less than ΔE₀₀ at every one of the twelve corners, and its chroma length given to ΔE₀₀ alone it would sharpen the blue past the yellow. The other half fails because of hue. At a display’s blue a degree of CIELAB hue is three and a half to four degrees of CAM16 hue, so CAM16-UCS counts a hue step there as longer than CIELAB does, where ΔE₀₀ counts it as shorter by more than two; ΔE₀₀ given that hue length alone lands within four hundredths of CAM16-UCS’s move. Every edge at the blue opens past 115 degrees, the yellow keeps its edge towards green at 74 to 76, and the inset solid moves within one per cent of its tangent shape at every margin.
- The prediction found a real mechanism and the wrong sign of the result. The logarithmic colourfulness does compress the blue’s chroma less than ΔE₀₀, 4.0 CIELAB units to one rather than 7.0.
- The decisive term is hue, which the prediction treated as the same in both units. At the yellow it is the same; at the blue it differs by a factor of two and a half.
- Both tolerance units put a display’s yellow at the top, for the reason the ΔE₀₀ essay found: its sharpness lies across hue, and at the yellow the two units count hue alike.
- The room barely matters to the shape. Across five viewing conditions no corner’s move changes by seven hundredths, though a dark room is enough to pass the lead from the yellow to the green.
Each group of three bars is one corner read in three units. The upper bars are CIELAB, where the corners spread from 1.67 to 4.39 and the primaries are the spikes: sRGB’s blue at 3.35, BT.2020’s green at 4.39. The middle bars are ΔE₀₀, where every corner lies between 1.18 and 1.78 and the yellow leads. The lower bars are CAM16-UCS. How far apart are two colours traced how successive colour-difference formulae disagree with each other by more than a just-noticeable step. Two tolerance units with nothing in common in their construction — one a fitted correction to CIELAB, the other a model of appearance with a logarithm on colourfulness — agree that a display’s yellow is its sharpest corner, 1.75 against 1.66 on sRGB and 1.78 against 1.66 on BT.2020. They disagree most at the blue, which ΔE₀₀ makes a middling corner and CAM16-UCS the bluntest. A press’s corners told a gentler version of the same story — a tolerance unit rounds the corners found ΔE₀₀ levelling them, and a margin costs a press its corners found the press’s yellow its sharpest in both CIELAB and ΔE₀₀.
The disagreement elsewhere is smaller and runs the same way as the agreement: the red is sharper in CAM16-UCS than in ΔE₀₀, 1.45 against 1.18 on sRGB and 1.52 against 1.19 on BT.2020, the green a little sharper or level, the cyan and magenta within a tenth. A margin written in CAM16-UCS costs a display its yellows and greens most and its blues least, where in CIELAB it would cost the blues most.
What each unit does to a chroma step and a hue step
A unit changes a corner’s sharpness by stretching some of the directions that meet there against others, and the two units’ stretches can be read directly. At each corner, a small step along CIELAB’s lightness, chroma or hue axis is carried into the unit, and its length there is compared with its length in CIELAB. ΔE₀₀’s three lengths come from its own formula; CAM16-UCS’s are read off the space itself, by moving a colour a thousandth of a CIELAB unit and measuring how far it moves in CAM16-UCS.
The chroma lengths are what the prediction expected. At all twelve corners CAM16-UCS compresses chroma less than ΔE₀₀: 4.0 CIELAB units to one at sRGB’s blue against ΔE₀₀’s 7.0, 3.3 against 7.7 at BT.2020’s, 3.6 against 5.4 at sRGB’s yellow. The two come closest at BT.2020’s cyan, 5.3 against 5.9, and at its green, the most saturated colour either display reaches at a CIELAB chroma of 208, 8.3 against 10.4. A logarithm grows slowly where a proportional length grows fast, and at a primary’s chroma the difference is a factor of nearly two.
The hue lengths are not. At the yellow they agree within a twentieth on sRGB, 2.04 against 2.11, and within a ninth on BT.2020. At the blue they part completely: ΔE₀₀ counts 2.19 CIELAB units of hue to one of its own at sRGB’s blue, and CAM16-UCS counts 0.86 — a hue step at the blue is longer in CAM16-UCS than in CIELAB, where ΔE₀₀ makes it two and a half times shorter. BT.2020’s blue is the same at 0.80 against 2.27. Nowhere else in the twelve does CAM16-UCS count hue more finely than CIELAB.
The reason is the appearance model’s hue angle. Rotate sRGB’s blue by one degree of CIELAB hue, at its own lightness and chroma, and its CAM16 hue turns by 3.4 degrees; on BT.2020 by 4.0. At the yellow one CIELAB degree is 1.1 to 1.2 degrees of CAM16 hue, at the red and green under one. CIELAB packs the blues and violets into a narrow arc of hue angle — the region where its lines of constant hue are known to bend, a blue drifting towards purple as it pales — and an appearance model, fitted to judgements of hue, spreads them out again. The blue’s hue turn was lost with a matrix found the same region of hue unsettled for a different question, how far a blue turns as white is added, with the appearance model and Oklab four degrees and sixteen apart. The appearance model’s hue is finest exactly where a display puts its blue primary.
Which length blunts the blue
The two lengths pull the blue in opposite directions, and which one wins can be found by swapping them one at a time. ΔE₀₀ is rebuilt from its three lengths along lightness, chroma and hue — which at a display’s corners reproduces the full formula to within two hundredths, since its rotation term has almost nothing to act on there, as the blue corner has nothing to twist found at a press’s blue — and then rebuilt again with one of its lengths replaced by CAM16-UCS’s at the same colour.
Given CAM16-UCS’s chroma length alone, ΔE₀₀ makes sRGB’s blue sharper, from 1.40 to 1.85 times a margin, and BT.2020’s from 1.25 to 1.87 — both past ΔE₀₀’s own yellow at 1.75 and 1.78. That is the prediction’s mechanism, working as stated: a unit that compresses the blue’s chroma less leaves its two chroma-running directions closer together, and the corner between them sharper. Given CAM16-UCS’s hue length alone, ΔE₀₀ makes the blue 1.13 and 1.12, against CAM16-UCS’s own 1.17 and 1.10. The hue length carries the whole of CAM16-UCS’s verdict on the blue, and it overrides the chroma length by more than it needs to.
The yellow barely responds to either swap. With CAM16-UCS’s chroma length it sharpens by a tenth on sRGB and by four hundredths on BT.2020; with its hue length it does not move. The yellow is the corner the two units cannot disagree about, because the term on which they differ most is hue at the blue, and the term that sets the yellow’s sharpness is hue at the yellow, where they agree.
Why a finer hue scale blunts a corner is the same geometry the ΔE₀₀ essay found for chroma, with the sign turned round. From sRGB’s blue, lowering the blue drive and adding green both run mostly back along its chroma, and they leave it at a narrow angle because each also moves a little in hue and in lightness. A unit that stretches hue by two and a half relative to ΔE₀₀ stretches the small part in which the two directions differ, and a unit that compresses chroma stretches it again relative to the part they share. CAM16-UCS does both at the blue at once, and the three directions out of sRGB’s blue end up spread across lightness and hue: in CAM16-UCS adding green runs 0.88 of the way along lightness and lowering the blue 0.91, while adding red runs 0.89 of the way across hue. None runs mostly along colourfulness any more. A corner whose directions point along three different axes is nearly a face.
The blue’s edges open; the yellow keeps one
The edges read the corners along their length, two hundredths of drive from each corner. At the blue every edge opens past 115 degrees in CAM16-UCS: the edge towards magenta, the sharpest in CIELAB at 47 degrees on sRGB and 41 on BT.2020, opens to 112 and 118 in ΔE₀₀ and to 142 and 145 in CAM16-UCS; the edges towards cyan and towards black open to between 117 and 135. That edge towards magenta runs along the face of colours with no green in them, the blues, violets and purples, which is exactly the arc of hue CIELAB compresses and the appearance model spreads.
At the yellow CAM16-UCS keeps one edge sharp and opens the other. The edge towards green opens from 51 degrees in CIELAB to 76 in CAM16-UCS on sRGB, and from 40 to 74 on BT.2020 — slightly less than ΔE₀₀’s 81 and 79. The edge towards red opens further than in ΔE₀₀, to 96 and 89 against 72 and 69, and the edge towards white, which runs along chroma, is the blunt one in every unit. The yellow is sharp along its green side in all three units; the prediction that its side edges would open about as much as in ΔE₀₀ holds for that side and not for the red.
The census does not take the red side apart. What it does show is where the appearance model’s hue runs slow: one degree of CIELAB hue is 1.1 degrees of CAM16 hue at the yellow and 0.85 at the red, so the yellow-to-red edge runs through the oranges, where CAM16 hue lags CIELAB’s, and the yellow-to-green edge does not. The yellow is sharp in CAM16-UCS along the side where the appearance model’s hue keeps pace with CIELAB’s, and that is the side on which ΔE₀₀ and CAM16-UCS agree to within five degrees.
The room hands the lead to the green
A tolerance unit built on an appearance model has a viewing condition in it, and a display is watched in many. The census reads every corner again under four other conditions: an adapting luminance of 20 cd/m² in a dim and in a dark surround, and of 200 cd/m² in an average and a dark one, each against the display’s D65 white and a background a fifth of it. A viewing condition is an argument is the reason to ask: an appearance quantity without a room has assumed one.
No corner of either display changes its move by seven hundredths across the five conditions; the largest spread is BT.2020’s green, 1.599 to 1.663. The tangent shapes are ratios of directions, and an appearance model’s response to the room scales its correlates more than it rotates them. What moves is systematic: a darker surround sharpens the green by five or six hundredths and the red by three or four, and blunts the yellow by two to four. The census does not take the drift apart; it is the same in both displays and at both luminances. The yellow and green sit within six hundredths of each other everywhere, so that systematic drift is enough to change the order. At 20 cd/m² in a dark room the green leads sRGB, 1.657 against 1.630, and BT.2020, 1.663 against 1.638; at 200 cd/m² in a dark room it leads both again; in a lit or dim room the yellow does.
That is a real change of answer with almost no change of number, and it is the kind the units disagree in the dim found between CAM16-UCS and ΔEITP when a display’s luminance changed: the room rearranges which difference is largest without moving any of them far. For a specification it means that “the corner a CAM16-UCS margin costs most” is the yellow or the green depending on where the display is watched, and that either way it costs those two corners about two thirds more than a face, and the blue under a fifth more.
Insetting the two corners
The tangent shape is a prediction about the corner, and the curved solid is what a margin actually acts on. Because CAM16-UCS is a Euclidean space — a margin in it is a ball, the same at every colour, with no local matrix to carry — the inset can be computed directly in it: carry the display’s boundary into CAM16-UCS near the corner, and find the nearest colour to the corner that lies at least the margin from every sampled point of the boundary.
At margins of one, two and four CAM16-UCS units, sRGB’s yellow moves 1.66, 1.66 and 1.65 times the margin against its tangent shape’s 1.66, and its blue 1.18 at every margin against 1.17; BT.2020’s yellow moves 1.66, 1.68 and 1.66, and its blue 1.10, 1.10 and 1.11. Every found point lies at the margin’s depth to within two per cent, and every move lies within two per cent of the tangent shape. The ΔE₀₀ yellow had drifted two to three per cent below its tangent shape by four units; the CAM16-UCS yellow does not drift, because a Euclidean space’s margin does not change size along the faces as ΔE₀₀’s local lengths do. In a uniform space the tangent shape is the whole answer at these margins, which is the property a uniform space was built to have.
How the corners were read
The displays are those of the blue essay: each gamut the image of the unit cube of linear drive under its primary matrix, sRGB’s and BT.2020’s, with D65 white at the top. A drive is carried to XYZ with the white at a luminance factor of 100 and then through CIECAM16 to CAM16-UCS’s J′, a′ and b′, with J′ = 1.7J/(1 + 0.007J) and colourfulness compressed as M′ = ln(1 + 0.0228M)/0.0228. The reference viewing condition is the display’s D65 white, an adapting luminance of 64 cd/m² — a fifth of a 320 cd/m² white — a background luminance factor of 20 and an average surround; the other four vary the luminance to 20 and 200 and the surround to dim and dark. A corner’s three directions are the finite-difference images of its drive moved by a ten-thousandth; the move per unit of margin of a pointed cone is the shortest vector whose inward component on every face is at least one. The margin is CAM16-UCS’s Euclidean distance, ΔE′; the power-law form some uses apply to it, 1.41ΔE′^0.63, has no length (as a distance raised to a power has no length showed) and cannot state a margin.
The lengths along CIELAB’s lightness, chroma and hue axes are read by moving a colour a thousandth of a unit along each and dividing by its displacement in CAM16-UCS; ΔE₀₀’s are its own lengths read off its local quadratic form. The swapped metrics replace one of ΔE₀₀’s three lengths with CAM16-UCS’s and act on CIELAB steps as a diagonal map in the corner’s own lightness, chroma and hue frame. The edges’ dihedral angles are read two hundredths of drive along each edge. The inset samples each display’s six faces at drives crowded towards the corners, keeps the samples within thirty units of the corner in CAM16-UCS, and casts rays from the corner into the drive cube along the eighth of 1,200 evenly spread directions that points inwards, finding along each by bisection the first point at least a margin from every sample; the best ray is refined by a seeded search. Casting the rays into the drive cube rather than into CAM16-UCS reaches every interior colour exactly once and needs no inverse of the appearance model.
What the census does not reach
Two displays at D65. Another white moves the adaptation and with it every hue angle, and a display whose blue primary sits somewhere other than sRGB’s and BT.2020’s — both near CIELAB hue 305 — would sit somewhere else on the curve of CAM16 hue against CIELAB hue. The factor of three and a half at the blue belongs to that region of hue, not to blue primaries as such.
One appearance model. CAM16-UCS inherits CIECAM16’s hue angle, and other uniform spaces — Oklab, Jzazbz, ICtCp — draw the blues differently. The blue’s hue turn was lost with a matrix found two of them four and sixteen degrees apart on a neighbouring question. A unit fitted to hue data that spread the blues less would leave the blue sharper.
Small margins. One to four units is where a tangent shape holds and here it holds within two per cent. A margin wide enough to reach the curvature of the saturated faces would round both corners.
Still open: whether ΔEITP sides with the appearance model or with ΔE₀₀
Two units now agree on the yellow and disagree on the blue, and the disagreement has a single cause: how finely each counts hue among the blues. ΔEITP, the difference built for high-dynamic-range displays on the ICtCp encoding, is a third construction with no hue term at all — its two chroma axes come from a rotation of cone signals after a perceptual quantiser, and its hue is whatever angle those axes make.
The calculation is this census in ΔEITP, each corner carried through ICtCp at the display’s white and a stated peak luminance, with its chroma and hue lengths read off as here and the swap repeated. The prediction is that ΔEITP sides with the appearance model at the blue — its quantiser acts on cone signals, which spread the blues and violets as the appearance model does — and blunts it below ΔE₀₀’s 1.42, while its yellow lands near the other two because its yellow is where the eye’s luminous efficiency falls off, which every unit inherits. If ΔEITP instead leaves the blue sharp, the appearance model’s fine hue scale at the blue is its own, and the order of a display’s corners in a tolerance unit is a fact about that unit’s hue data.
A half-right prediction is two findings
The habit here is about what to do when the mechanism is right and the result is wrong.
The prediction named a mechanism — logarithmic colourfulness compresses high chroma less steeply — and drew a conclusion from it, that the blue would stay sharp. The mechanism is real and acts as stated, as the swap shows: on its own it sharpens the blue past the yellow. The conclusion is wrong because another term, assumed to be the same in both units, is not.
The failure mode is to discard the mechanism with the conclusion. A prediction that fails because a second term was held fixed has found two things: that the first term does what was claimed, and that the second term was not fixed. Taking the unit apart length by length is what separates them, and it costs nothing more than the census that failed.
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.
- A display's red takes the reds' move and leaves the pair ciecam16 · δe · display primaries · gamut
- At the gamut's edge the reds move as far as the violets ciecam16 · δe · gamut · tolerance
- How many colours are there cielab · δe · gamut · tolerance
- White turns a hue, and the models part at blue ciecam16 · cielab · hue · modelling assumption
- A catalogue is not a vocabulary cielab · δe · gamut
- A colour has a name cielab · δe · gamut
What links here
Every essay whose body links to this one.
- A quantiser keeps the blue a spike
- A violet primary is no spike to the quantiser
- A broad green sharpens the blue; a broad blue dulls it
- A green's long tail sharpens the blue; its short tail does not
- Brightness and the green sharpen the blue almost independently
- The green primary decides how sharp the blue is
- A tone curve per channel turns a sky towards cyan
- An appearance model sees the per-channel sky turn twice as far
The objects this essay names
Each one links to every other essay that touches it.
CIECAM16CIELABΔEDisplay primariesGamutHueModelling assumptionTolerance