The budget adds two units
Assumes A delivery tolerance is three tolerances, A budget drawn through one hue and The audit, read as appearances.
A colour reaches a reader through a profile, a gamut mapping and a room, and this collection prices each of the three and publishes the total. The publication is careful about one thing — it prints the sum and the quadrature and says the combination rule is not its to choose — and careless about two others.
The claim
The budget’s three numbers are in two units, it is missing a stage, and its parts do not add to the chain’s own error in any case.
- Two stages are ΔE₀₀ between stimuli and the third is a CAM16-UCS distance between appearances, and the conversion between those is not a constant.
- The chain has a fourth stage. The target the separation cannot reach, even after the mapping has moved it into the gamut, comes to 1.45 units — three and a half times the profile’s own contribution.
- The profile’s error where a job lands is 3.2 times its published average: 0.419 against 0.129.
- And the four do not add. The chain measures 5.05 against a sum of 7.66 and a quadrature of 4.79 — and most of that shortfall, on this intent, is the unit’s own exponent rather than the chain.
The two units
The first defect is visible by reading the code that produces the numbers, which is the shape most of this collection’s self-audits take.
The profile stage is the interpolation error of a printer’s lookup table, measured as a ΔE₀₀ between the colour the table promises and the colour the press produces. The mapping stage is a ΔE₀₀ between a colour and where a rendering intent moved it. Both are differences between two stimuli seen under identical conditions, which is what a matching difference is for.
The room stage is different. It takes a colour that arrived exactly right and asks what a change of viewing condition does to it, and there is no change of stimulus at all — the sample is the same sample and the room is different. That is an appearance change, and the only unit for it is an appearance distance.
So the budget’s three rows are two of one kind and one of another, and the sum adds them. The previous ladder measured what that costs: carrying a quantity from a matching unit into an appearance unit multiplies it by between 1.03 and 1.58 depending on which quantity it is, so there is no constant that would make the addition legitimate.
Putting everything in the appearance unit is the available repair, because the last stage cannot be expressed as a matching difference without inventing a stimulus — and inventing one is a step with its own factor of 1.7 in it. Re-measured that way the room stage is unchanged, the profile stage rises to 0.419 and the mapping stage to 1.50.
The stage that was not counted
The second defect is an absence, which is the class of defect this collection has written a gate against on the fleet’s ancillary pages and has no gate for here.
Running the chain end to end means asking, for each colour, what coverages a profile would choose. That is a search through the table’s own interpolant for the coverages it believes produce the target, and the search does not always succeed: the target has been moved into the destination’s gamut by the mapping, but the gamut is computed one way and the separation is solved another, and the two do not agree exactly.
The residual is 1.45 units at the mean — the distance between the colour the mapping asked for and the closest colour the separation could actually name. It is three and a half times the profile’s own interpolation error and is not in the budget.
That is not a criticism of the mapping or the separation; both are doing what they are for. It is a statement about the budget’s structure: it prices the stages somebody thought of, and a chain has a stage at every join as well as at every box.
Where a profile is actually used
The third defect is subtler and is the most transferable.
The published profile error is tableError, which draws random coverages, interpolates, and compares against the press. That is the right measurement of a table’s accuracy as an object.
It is not the error a job experiences. A job does not visit random coverages: it visits the coverages a separation chooses for the colours it contains, and those are not uniformly distributed — they cluster in the interior where a separation lands and avoid the corners where a random draw spends most of its time.
Measured at the coverages this ramp actually produces, the profile’s error is 0.419 against a published average of 0.129, a factor of 3.2.
That is the same fault this round found at its first rung, in a different place: a number averaged over a set is a statement about the set, and a set chosen for convenience is not the set a reader is in.
The consequence is a rule of thumb rather than a correction: a profile’s published accuracy is a lower bound on what a job experiences, and the factor is a property of where the job’s colours land rather than of the profile.
The four stages, one at a time
Setting the four out in the order a colour meets them makes the structure legible, and each has a different character.
The mapping, at 1.50. A systematic displacement: every colour the destination cannot hold is moved to a place it can, deliberately and in a stated direction. It is the largest of the three controllable stages and it is the one an operator chooses, by picking an intent.
The separation, at 1.45. The residual between the colour the mapping asked for and the closest colour the profile’s own table can name. It is not chosen by anybody and it is not a defect in either component: the gamut boundary is computed from one model and the separation solves against another, and two models of the same press agree to about a unit and a half.
The profile, at 0.42. The interpolation error at the coverages the separation chose — the smallest of the four, and 3.2 times the number the budget publishes.
The room, at 4.30. Larger than the other three together, uncontrolled, and the one stage a colour engineer cannot touch. That was the published budget’s headline finding and it survives everything here.
So the ordering is unchanged and the composition is not. The budget’s conclusion — that the room dominates and the profile is small — is right in both units and under every rearrangement. What changes is the total, the number of rows, and what may be done with them.
Why the sum over-predicts
A sum over-predicting by half again is worth explaining rather than only reporting, because the mechanism decides whether the over-prediction is safe.
Errors add to less than their sum when they point in different directions, and the four here do. The mapping moves a colour inward in chroma. The separation residual points wherever two models disagree, which is not systematically inward. The profile’s interpolation error points wherever the table’s curvature is, which is neither. And the room changes lightness and colourfulness with almost no chroma component at all.
Four displacements in four largely unrelated directions compose to something near their quadrature, which is exactly what the measurement finds at the standard settings — and which stops holding as soon as one of them is made large enough to dominate.
The safety argument is the reassuring half. A sum is an upper bound on a composition whenever the parts are treated as magnitudes, so a budget that adds is conservative, and a conservative budget is the right kind of wrong for a specification. The unsafe direction would be quadrature under-predicting, which is what happens under a perceptual intent, and quadrature is the rule practitioners actually use.
What the four come to
The fourth question is the one the published budget deliberately declined to answer, and having everything in one unit makes it answerable.
The chain’s end-to-end error — the source colour judged in a booth against the delivered colour judged in the actual room — is 5.05 CAM16-UCS units. The four stages sum to 7.66 and their quadrature is 4.79.
The sum over-predicts by a factor of 1.52. The quadrature is within five per cent, which reads like a vindication and is not one.
Changing the rendering intent settles it. Under a perceptual intent the quadrature under-predicts by 24 per cent; under a saturation intent, by 36. A rule that is right at one setting and wrong at another is a coincidence rather than a rule, and the reason is the one measured two ladders across: combining two errors needs the angle between them, and the angles here depend on what the intent did.
Three intents give quadrature errors of plus five, minus twenty-four and minus thirty-six per cent. Neither the sign nor the size is stable, and a practitioner using quadrature is using a rule that happens to be conservative on one of the three settings measured.
That is the practical form of the finding and it is the reason to measure a chain end to end rather than to assemble one. A chain’s error is one number and it can be computed; the stages are useful for deciding where to spend effort and are not the ingredients of an arithmetic.
What was computed, and how
The chain is run on twelve colours along a chroma ramp at lightness 55 and hue 30, which is the same ramp the published budget uses so that the two are comparable.
Each colour is mapped into the press’s gamut under the stated intent; the profile’s own interpolant is searched for the coverages it believes produce the mapped colour, over cyan, magenta, yellow and five black levels; the press model is then asked what those coverages actually produce. Every distance is a CAM16-UCS distance at a stated viewing condition, and the room stage is the same colour read in two conditions.
Changing the room is the control. The room stage falls from 4.30 to 1.50 and the other three are unchanged to the last digit, which is what independent stages should do and is worth confirming rather than assuming — a search whose answer depended on the room would be a search with a bug in it.
The end-to-end figure is the same twelve colours’ mean, computed once rather than assembled, so it is a measurement rather than a combination.
What a budget is for, once it cannot be added
If the stages do not compose, the natural question is what a stage-wise budget is still worth, and the answer is most of what it was for.
Ranking survives. The room is larger than the other three together in every unit and under every arrangement, and that is what tells an engineer where effort goes. A budget’s primary use is triage and triage needs an ordering rather than an arithmetic.
Sensitivity survives. Sweeping a stage’s own knob — the profile’s grid, the intent, the room — and watching the stage move is a measurement of what a decision buys, and it does not require the stages to add. The published budget’s sweep is exactly this and is unaffected.
What does not survive is a total. A number to put in a contract, a figure to compare against a tolerance, a claim that a chain delivers within so much: those need a composition, and a composition needs either the angles or an end-to-end run.
The end-to-end run is cheap. It is the same twelve colours through the same four operations, once, and it produces the number directly. There is no reason a budget should be assembled when it can be measured, and the reason it usually is assembled is that the stages are measured by different people at different times.
The habit that produced all three defects
The three faults here — two units, a missing stage, an average over the wrong set — have one thing in common that is worth naming, because it says where to look for the next one.
Each of them was introduced by measuring a component rather than a path. A profile’s accuracy is a property of the profile and was measured that way. A rendering intent’s cost is a property of the intent. A room’s effect is a property of the room. Each measurement is correct about its own object, and none of them is about the journey a colour takes.
A path has joins, and a component-wise measurement has no row for a join. The separation residual is a join; the unit mismatch is a join; the difference between where a job lands and where a random draw lands is a join.
The move that finds all three at once is to run the path. It is the same move as running a pipeline in a different order and the same as pricing a departure where it lands, and this round has now made it four times in four different places.
Where the model stops
Twelve colours of one hue at one lightness, which is the same narrowness the budget has already been criticised for. The purpose here is to compare against the published figures on their own ground, and a wider set would move every number.
The separation search is a grid refinement rather than a solve, so its residual includes whatever the search failed to find. Refining it further reduces the residual by a few per cent and does not remove it, because most of it is the gamut and the separation disagreeing rather than the search converging.
And the press, the profile and the rooms are all models. The relationships between the four stages are the result; their absolute sizes belong to this collection’s own machinery.
The generalisation
The habit is about a table of contributions with a total under it.
A budget, a breakdown, an attribution: the format invites addition, and the format is usually produced by measuring each contribution with whatever instrument suits it. Different instruments give different units, and a column of numbers does not carry its units unless somebody writes them in.
The move is to name the unit of every row. It is one column and it makes the illegitimate addition visible instead of inviting it.
The failure mode has two halves and the second is worse. The first is that the total is wrong. The second is that the total is plausible — a sum of numbers of similar magnitude in similar-looking units comes out looking like an answer, and the reader who most needs it is the one least placed to notice. A budget whose rows are in two units still produces a number, and the number is what gets quoted.
Who found it, and when
Error budgets in colour management are standard practice and their stages are conventionally added in quadrature, on the assumption that the stages are independent. The assumption is usually stated and the units usually are not.
The specific defect here is this collection’s own and was found by reading its own code, which is the same way three of the previous round’s findings arrived. The published budget’s caution about the combination rule was correct and did not go far enough: the rule is not the only thing that needed choosing.
Where the ladder goes next
Three of the four stages measured here are operations somebody chose. The fourth is not, and neither is the one every stage of the chain performs without naming it: an average. A resize, an antialiased edge, a composite and a chroma subsample are all averages, and in almost every pipeline they are taken on the values as stored.
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 lattice has no derivative colour difference · declared input · specification · uncertainty · worst case
- A mean is not a difference colour management · gamut mapping · the icc profile · specification
- No mapping preserves everything colour management · gamut mapping · the icc profile · specification
- Quadrature is exact in one room audit · colour difference · specification · worst case
- The proof is a different object colour management · the icc profile · specification · viewing condition
- Two converters and one highlight colour management · declared input · specification · worst case
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.
AuditColour differenceColour managementDeclared inputGamut mappingThe ICC profileSpecificationUncertaintyViewing conditionWorst case