A difference is not a distance
Assumes How far apart are two colours and Where the formula is not smooth.
Two essays on this site say, in prose, that CIEDE2000 is not a metric. One of them recommends ΔE76 for clustering on those grounds; the other says three colours can be arranged so that going via the middle one is shorter than going direct. Both are true. Neither had a number attached, anywhere on this site, which is exactly the kind of claim this site exists not to leave standing.
The claim
Of the four things a metric has to be, ΔE2000 keeps three and ΔE94 keeps two — and the failures are large, findable by search, and consequential for anything that chains differences.
| ΔE76 | ΔE94 | ΔE2000 | |
|---|---|---|---|
| non-negative | yes | yes | yes |
| zero only for identical colours | yes | yes | yes |
| symmetric | yes | no — up to 47.6 units | yes |
| triangle inequality | yes | no — 42% short | no — 51% short |
The first column is the control. ΔE76 is the Euclidean distance in CIELAB, so it satisfies all four by construction and the searches find nothing — asymmetry exactly zero, worst triangle deficit 7.5 × 10⁻¹², which is arithmetic noise. A search that found no violation of ΔE2000 either would be a search that does not work.
Symmetry, and the one nobody mentions
ΔE94 is asymmetric by construction, and it is not an implementation detail or a rounding artefact: its weighting functions are built from the chroma of the first argument, which the standard calls the reference and the second of which it calls the sample.
Swap the standard and the batch and the number changes. Searched over four thousand pairs:
- worst gap 47.55 units — one order giving 65.69 and the other 18.14, a ratio of 3.6
- mean gap 5.22
The worst case pairs a near-neutral light colour with a saturated dark one, which is exactly the arrangement a “compare this batch against the reference” workflow produces. And it survives at tolerance scale: restricting the search to pairs about four units apart still finds a gap of 0.73, on a quantity being compared against a limit of 1.
So a specification reading “ΔE94 ≤ 1” has an unstated argument in it. Two laboratories following it exactly, differing only in which sample they enter first, can disagree about whether a batch passes.
The triangle inequality
A distance obeys : no detour is shorter than going straight. Searching triples and then walking locally to the worst one found:
| formula | direct | via the middle | shortfall |
|---|---|---|---|
| ΔE94 | 112.71 | 65.04 | −42.3% |
| ΔE2000 | 123.65 | 60.53 | −51.0% |
The triple that does it is instructive: all three colours at L* 44, one at a* −84, one neutral, one at a* +88. Going from a strong green to a strong red via grey is half the price of going directly. That is CIEDE2000’s chroma weighting doing its job — differences between saturated colours are discounted heavily, and the discount is applied to each leg separately.
Those colours are enormously far apart, which is the honest objection: nobody chains differences of a hundred units. So the same search was run inside a five-unit ball, which is the scale a tolerance is written at:
- direct 4.996, via 4.965, shortfall 0.63%
Smaller, real, and in the range where somebody is actually accumulating differences.
What it costs a path
The practical form of a triangle violation is a route. Walk the straight line between two colours in equal steps, add up the differences, and compare with the direct figure:
| steps | sum | direct | short by |
|---|---|---|---|
| 4 | 54.22 | 57.14 | 5.1% |
| 8 | 53.92 | 57.14 | 5.6% |
| 16 | 53.72 | 57.14 | 6.0% |
| 32 | 53.69 | 57.14 | 6.0% |
| 64 | 53.68 | 57.14 | 6.1% |
The sum converges, from below, to about six per cent under the direct answer. That is a colour-difference formula reporting that a journey is shorter than its own endpoints, and it converges — so it is not a discretisation artefact that a finer walk would remove.
Anything that accumulates differences is affected: a gamut-mapping search that measures the cost of a route, a clustering algorithm that assumes distances behave, a palette optimiser that sums pairwise separations, a nearest-neighbour lookup in a profile.
The violation has a scale, and that is the useful part
The two headline numbers are 51 per cent at a hundred and twenty units and 0.63 per cent inside a ball five units across. That ordering is not a coincidence of the search, and saying why turns the defect from a curiosity into something a program can reason about.
Any difference formula that is locally a smooth positive-definite quadratic form obeys the triangle inequality on small enough triples, because on that scale it is a norm and a norm cannot fail. So a violation that shrinks as the triple shrinks is a sign that the failure is global — a property of how the formula reweights the space from one region to another, not something wrong at every point. That is exactly what CIEDE2000’s chroma weighting is: a discount applied according to where in the space the pair sits, which is coherent leg by leg and incoherent along a route.
Which leaves the 0.63 per cent inside the five-unit ball needing its own explanation, and the smoothness essay supplies it. ΔE2000 is not smooth everywhere: its hue-rotation term is switched by branch conditions, and across one of those the formula is not a quadratic form at all. So the small-scale residue is not a weaker version of the large-scale failure; it lives in a different place, and it lives where the formula stops being differentiable.
The two together predict the shape of the path result above. Refining the walk does not close the gap — it settles it — because the deficit is not accumulated at the joints, where a finer walk would put more of them. It is accumulated along the route, in proportion to how far the route travels through regions the formula weights differently. Halving the step doubles the number of joints and changes the journey not at all, which is precisely what a converging sum from below looks like and is why the sixth per cent is not a discretisation artefact.
And the knobs
There is a fifth thing wrong with treating ΔE as a distance, and it is not an axiom: the formula has parameters.
, and scale the three components before the distance is taken. Textile practice uses ; almost everything else leaves all three at 1. Both are written down as “ΔE2000”, and this site has twice said so without computing it. Computed:
| tolerance | pairs where the two settings disagree |
|---|---|
| 0.5 | 1.3% |
| 1.0 | 14.6% |
| 2.0 | 20.4% |
At the commonest tolerance in use, one pair in seven is accepted by one industry’s version of the formula and rejected by another’s. The two verdicts are not approximations of each other; they are answers to different questions, and only one of them is written on the specification.
Where it actually bites
Three places, in rising order of how badly.
A tolerance against a reference does not care. Pass-or-fail against a master is a single pairwise number, and none of the defects above touches it — which is why the formula has survived twenty-five years of industrial use without anybody minding. A tolerance is a shape, and the shape is drawn around one point.
A search or a sort cares quietly. Nearest-neighbour lookup, palette selection, clustering into named categories and gamut mapping all assume distances behave. They do not crash; they return a slightly wrong answer, consistently, and it is invisible without a reference implementation to compare against.
And a chain cares loudly. Anything that adds differences along a route — the cost of a gradient, the accumulated error through a pipeline, the total of a profile’s interpolation errors — is summing a quantity that does not sum. Six per cent under, on the path measured here, and there is no bound on it in general.
A formula that keeps all four, and this site already uses it
The table’s first column invites a pessimistic reading — that the four axioms and accuracy are in trade, with ΔE76 at one end and ΔE2000 at the other. That reading is too strong, and the counterexample is a formula quoted on nearly every other page of this collection.
CAM16-UCS is computed here as a Euclidean distance in the uniform coordinates , scaled and then raised to the power 0.63 — the exponent the partial-correction essay had to recover before its arithmetic would come out. That power is what gives the unit its near-end behaviour, and the natural worry is that it also breaks the geometry. It does not, and the reason is a one-line piece of analysis rather than a search: is increasing, zero at zero, and concave, so it is subadditive — — and a subadditive increasing function of a metric is a metric. All four axioms survive the exponent.
Asserted rather than assumed, the same search was pointed at it: the same box, the same sampler, the same local walk that doubles ΔE2000’s violation.
| ΔE2000 | CAM16-UCS | |
|---|---|---|
| worst asymmetry, over 4,429 pairs | 0 | 0 |
| worst triangle deficit found | −51.0% | none — best walk reaches −0.58% |
The second row is the one to read carefully. A negative number there means the direct route stayed the shorter one, so the walk that reliably manufactures a violation for ΔE2000 could not manufacture one at all. A search finding nothing means something only because the identical search finds the other formula’s failure immediately.
And this does not retire the rule at the end of this essay, for three reasons that are worth having in one place. CAM16-UCS is a metric because it was built as a distance in a space, not because anybody checked; it is fitted to how far apart plainly different colours look, so it is a good metric of the wrong quantity for threshold work; and it is not a function of two colours at all, but of two colours and a room, so two of its distances are comparable only within one viewing condition. Its domain is smaller too — 142 of 9,000 points sampled from the box these searches run in have no finite CAM16 report, because the appearance model is not defined out there and the matching formulae are.
That is why this site’s own difference.js keeps it out of the dictionary the other three share, with a comment saying so: putting them in one table would invite exactly the substitution this section might otherwise be read as recommending. The axioms are cheap. Agreeing with observers is not, and no formula on this page does both.
What was computed, and how
The search samples CIELAB in a box — lightness 0 to 100, chroma to ±60 — with a small deterministic generator, so the same figure is drawn on every build. Random triples give a starting point; a short coordinate walk on the best one typically doubles the violation, because the failure is a local property and a uniform sample is coarse.
The span limit turns the same search into the practical question. Points are placed within a stated ΔE00 of one another and any move that pushes a pair outside the ball is rejected, so the reported triple is genuinely inside it rather than merely near it.
The formulae are the site’s own implementations, and one of them is checked against a published table elsewhere on the site: CIEDE2000 follows Sharma, Wu and Dalal’s reference formulation, whose paper exists because the original CIE publication left several branch conditions ambiguous.
The appearance search is the same sampler and the same walk, with the points carried into CAM16 at the reference viewing conditions before the distance is taken, and with the non-finite reports dropped rather than clamped — clamping would have invented points the model does not have an opinion about, which is the failure mode a search for a negative result is most exposed to.
And the assertions are two-sided. ΔE76 is required to be a metric — a violation there would mean the search is broken, since a norm cannot fail — and ΔE94 and ΔE2000 are required to violate, against a floor. A search that quietly stopped searching would then be caught by the same suite that reports the violation.
The older formula fails the same axiom, and by considerably more, which is what makes the failure structural rather than a quirk of the newest revision.
Where the model stops
A violated axiom is not evidence about people. Nothing here says an observer’s judgements violate the triangle inequality; it says a formula fitted to those judgements does. Whether perceived difference is itself non-metric is a genuinely open question and a much harder measurement, and it is not made here.
The searches are searches. They report the worst case found, not the worst case that exists. Every number above is a lower bound on the defect.
A search that finds nothing is a bound, not a proof — except where it is not. The CAM16-UCS result above is stated twice deliberately: the argument from concavity is a proof and holds everywhere, and the search is there to catch an implementation that does not match the formula it claims to be. Only the first of those two is evidence about the metric; the second is evidence about this site.
The box is CIELAB and it is not all of it. Chroma is limited to ±60 and lightness to the full range; a wider box finds larger violations, and a box restricted to real surface colours would find smaller ones.
And the parametric result depends on the sample distribution. Fourteen and a half per cent of these pairs flip at a tolerance of 1, where the pairs are drawn to sit a few units apart in a uniform box. A real production distribution — clustered near a target, mostly lightness differences — would give a different number, and the direction is unknowable without the data.
The violation does not need distant colours: near threshold, where every tolerance actually lives, the same triple is still short by a measurable margin.
The generalisation
The useful distinction is between a measurement and a metric, and colour science needs both while conflating them constantly.
ΔE2000 is an excellent measurement. It answers “how different do these two colours look” better than anything else available, on the data it was fitted to, and its complexity is the price of that accuracy: every one of its correction terms exists because a simpler formula got a class of pairs wrong.
It is a poor metric, and for exactly the same reason. Each correction is a local reweighting of the space, and a distance that reweights itself depending on where it is measured is not the length of anything. The two properties are in tension by construction: a formula fitted pair by pair is not obliged to integrate into a geometry.
The smoothness essay makes the point in its differential form — ΔE2000 is not the geodesic distance of any Riemannian metric — and this one makes it in the finite form that a program can trip over. Together they say what the right shape for a future formula would be: a positive-definite tensor field on colour space, with differences as geodesic distances. That object is symmetric, obeys the triangle inequality and is smooth wherever the tensor is, all for free, because those properties are what a metric is.
The threshold essay makes a third version of the same complaint from the data side: MacAdam measured the smallest difference anybody could detect, CIEDE2000 was fitted to how far apart plainly different colours look, and the two are quoted interchangeably. A formula assembled from two incompatible families of measurement is under no obligation to be a geometry, and it is not.
Until such a formula exists, the rule is procedural rather than mathematical. Use ΔE2000 to compare a pair against a limit, and never to chain, cluster, average or search. That is not a compromise; it is using a measurement for what it measures.
Who found it, and when
That ΔE94 is asymmetric was known when it was published — the standard names one argument the reference — and it was one of the motivations for CIEDE2000, which weights on the mean chroma instead.
That CIEDE2000 violates the triangle inequality has been reported repeatedly in the colour-science literature since shortly after its adoption in 2001, usually as a remark in papers about colour spaces rather than as a result in its own right. It is not controversial and it is not widely known outside the field, which is the usual fate of a defect in a standard that works well for its intended use.
What is genuinely current is the search for a replacement of the right shape. Work on Riemannian formulations of colour difference, and on line elements going back to Helmholtz and Schrödinger, has never stopped; what has changed is that the computational cost of a geodesic distance is no longer an argument against one.
Where the ladder goes next
Two things follow directly from the machinery here.
The first is a positive construction: this site now has the pieces to build a geodesic difference — a tensor field interpolated from the ellipses, and a shortest-path solver — and to measure whether it agrees with CIEDE2000 where CIEDE2000 is trusted while behaving properly where it does not. That is a real piece of work and it would settle by measurement whether the metric properties cost accuracy or come free.
The second is the spatial one, and it goes the other way. A colour difference has no extent, and every number in this essay is about two large uniform patches. A formula that failed the triangle inequality by six per cent and mispredicted an image by a factor of five would have its priorities in the wrong order, and the second failure is larger.
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 difference has no place ciede2000 · cielab · δe · quality control · specification · tolerance
- A mean is not a difference ciede2000 · δe · gamut mapping · quality control · specification · tolerance
- A name is not a threshold assertion · ciede2000 · δe · perceptual uniformity · specification · tolerance
- One unit in another room assertion · ciede2000 · δe · quality control · specification · tolerance
- Three constants nobody quotes ciede2000 · δe · perceptual uniformity · quality control · specification · tolerance
- A catalogue is not a vocabulary cielab · δe · perceptual uniformity · quality control · specification
What links here
Every essay whose body links to this one.
The objects this essay names
Each one links to every other essay that touches it.
AssertionCIEDE2000CIELABΔEGamut mappingMetric axiomsPerceptual uniformityQuality controlSpecificationTolerance