A second conversion is not a repeat
Assumes An intent is not a function of the colour, No mapping preserves everything and The budget adds two units.
A file rarely passes through one conversion. It is authored in one space, edited in another, soft-proofed to a third, delivered to a fourth, and archived in a fifth, and at each step somebody’s software applies an intent to whatever arrived. The mental model that makes this tolerable is that a conversion settles: what the destination can hold survives, what it cannot is moved once, and a colour that made it through is a colour that will keep making it through.
The claim
Only one of the three intents tested settles after a single conversion, and the two that do not are still moving after three.
- A relative-colorimetric conversion is idempotent: it moves the ramp 1.13 colour differences on the first pass and 0.0 on the second, exactly.
- A perceptual conversion moves 3.70 on the first pass and 2.73 on the second, and 2.42 on the third.
- A saturation conversion moves 6.51 then 3.09, and is nearly settled by the third at 0.27.
- So a file converted twice is not a file converted once, and nothing about a converted file says how many times it has been through.
Why one of them settles
Idempotence is a property with a reason, and the reason says which operations have it.
A relative-colorimetric mapping is defined by a condition on its output: if the colour is inside the destination, leave it; if not, move it to the nearest point on the boundary at the same lightness and hue. Its output is always inside the destination, so applying it again takes the first branch, which is the identity.
That is idempotence by construction rather than by arithmetic, and it holds to the floating-point floor — not to a tolerance, and not approximately. The measurement finds exactly 0.0 on every colour of the ramp, which is what a construction gives and a fit does not.
Why the others do not
The two document-dependent intents fail idempotence for the reason the previous rung measured, and the failure is a consequence rather than a separate defect.
A perceptual mapping compresses the source solid into the destination. Applied a second time, its source solid is the first conversion’s output, which is a solid the size of the destination — so it compresses a solid that is already the right size, and compresses it again.
The second pass has nothing to do and does it anyway. Its lightness rescaling maps the destination’s own range into the destination’s range, which is nearly the identity; its chroma compression takes a colour already inside and squeezes it further — moving colours that needed no help is what the intent is for — because the ratio it uses is now the destination’s maximum over the destination’s maximum and its held region is unchanged. The result is a further inward movement of 2.73 units.
The saturation intent fails the same way with a different profile. It reads chroma as a fraction of the source’s maximum, and on the second pass the source’s maximum is the destination’s, so the fraction is preserved and the colour barely moves — 3.09 on the second pass and 0.27 by the third, which is close to settled.
The rate, over five passes
Three passes says the operation does not settle; five says how it approaches whatever it is approaching, and the two intents behave differently.
The perceptual intent moves 3.70, 2.73 and then 1.89 by the fifth pass — a slow decay with no sign of reaching zero within the range measured. Its fixed point, if it has one, is the neutral axis, and the approach to it is geometric with a ratio near three quarters per pass.
The saturation intent moves 6.51, 3.09 and then 0.26 — a fast decay to a genuine fixed point. Every colour ends at its own fraction of the destination’s maximum, which is where the first pass was already trying to put it, and the residual after the second pass is the difference between the source’s maximum and the destination’s having been resolved.
So the two failures of idempotence are different failures. One is a slow drift with no obvious limit; the other is an overshoot that corrects itself in two passes. A workflow with two conversions is much worse off under the first and nearly unharmed under the second, which is the opposite of what their first-pass sizes suggest.
That reversal is the useful part. The intent that moves most on one pass is the safer one to apply twice, and nothing in either intent’s description would have said so.
What idempotence is worth as a property
The colorimetric intent’s exactness is worth a paragraph on its own, because it is a rare kind of guarantee in this collection.
Most of what this round has measured is a number: how far apart, how much larger, what fraction. Idempotence is not a number — it is a statement that a composition equals a single application, exactly, for every input, and it either holds or it does not.
A property like that is worth more than a small number, because it composes. A workflow that uses only the colorimetric intent can be reasoned about: any number of conversions into the same destination is one conversion, and a chain’s total is a chain’s first step. A workflow that uses a perceptual intent anywhere has to be traced.
This collection has now collected four such exact statements in one round: a monotone curve commutes with a clamp, a constant interpolates to itself, a clip below the ceiling is the identity, and a colorimetric mapping is idempotent. All four are about operations doing nothing, and all four are the reason the neighbouring measurements can be attributed.
What drifts, and where to
Watching a colour rather than a ramp says what the drift is towards.
Under the perceptual intent every pass pulls chroma inward — the compression is monotone and never pushes a colour outward, so successive conversions walk a colour down the chroma axis at a decreasing rate. After enough passes the ramp collapses towards the neutral axis, which is the intent’s own mechanism applied to itself.
A picture converted repeatedly under a perceptual intent gets progressively duller, and the effect is not a rounding — it is distinguishable colours being destroyed a second time: it is 2.73 colour differences on the second pass, which is above most delivery tolerances on its own.
Under the saturation intent the drift is towards the destination’s boundary rather than away from it, because that intent’s job is to put chroma at the maximum. Its second pass moves 3.09 and its third 0.27, so it converges to a fixed point — every colour sitting at its own fraction of the destination’s maximum, which is where the first pass was trying to put it.
The fixed points, named
An operation that is not idempotent still has fixed points — colours it leaves alone — and knowing where they are says which parts of a picture drift and which do not.
Under the perceptual intent the fixed points are the colours inside the held region. The compression leaves the inner seventy per cent of the destination’s chroma untouched, so a muted colour is a fixed point from the first pass onwards and never moves again. Everything outside that region moves on every pass.
So a picture converted repeatedly does not fade uniformly. Its muted areas are stable and its saturated areas walk inward, which means the relations the intent exists to preserve are exactly what successive passes destroy. The second conversion undoes the first one’s purpose, which is a sharper statement than saying it adds error.
Under the saturation intent the fixed points are everywhere after two passes, because the intent’s output already satisfies its own condition once the source and destination maxima agree. Its non-idempotence is a one-pass transient rather than a drift.
And under the colorimetric intent every colour is a fixed point from the first pass, which is what idempotence means and is the whole of its guarantee.
Naming the fixed points is the useful form because it tells a reader what to look at. A file that has been through several perceptual conversions shows it in its saturated regions and nowhere else, and comparing a saturated patch against a muted one in the same file is a test anybody can run without the original.
What this does to a workflow
Three consequences, and the third is the one worth acting on.
A round trip is not a check. Converting out and back and comparing against the original is the standard way of asking whether a conversion is lossless, and it measures the composition of two mappings rather than the first one. Under a colorimetric intent the answer is meaningful; under the other two it is not the question anybody meant.
A chain of workflows accumulates. Every stage that applies a perceptual intent adds most of a first pass’s worth of movement, and the total after four or five stages is well beyond any tolerance a specification would name.
And nothing in a file records the count. A converted file carries a profile that says what space it is in; it does not say how it got there or how many mappings it has been through. Two files in the same space, one converted once and one four times, are indistinguishable and are different colours.
The one intent to convert with
The practical rule follows and it is narrower than the usual advice.
The usual advice is to convert as few times as possible, which is right and is not always available: a workflow with a proof stage and a delivery stage has two conversions whether anybody likes it or not.
The available rule is to convert perceptually once and colorimetrically thereafter. The first conversion is the one that has to solve the hard problem — a wide source into a narrow destination, with distinctions to preserve — and every later one is between spaces of similar size where a colorimetric intent is exact and idempotent — which the delivery budget’s own stages assume without saying so.
That is what a well-set-up workflow does, and it is done for a different reason: perceptual rendering is used at the point where the gamut shrinks because that is where relations need preserving. The idempotence argument gives the same advice from a direction that also covers the case where nobody was thinking about relations.
Putting this rung beside the blend one gives the shape of a real workflow’s total. A file that is converted, resized, converted again and resized again has accumulated four movements, two of them from operations nobody files under colour, and none of them recorded anywhere. The chain’s error is not the sum of its stages and it is not the sum of the stages anybody counted either.
What a file would need to carry
The field this rung asks for is smaller than the previous ones and it is a count.
How many mappings this file has been through, and under which intents. Three or four values, appended once per conversion, which is what a processing history is and which some formats already have a place for.
The reason it is not there is instructive. A colour profile describes a state — what space this data is in — and a conversion count describes a history, and formats that carry state are not usually asked to carry history. The two questions a workflow needs answered are what space is this in and how did it get here, and every colour-managed format answers the first.
A state is enough when every operation is idempotent and is not enough otherwise, which is a general fact about formats rather than about colour. The colorimetric intent’s idempotence is precisely what makes a state sufficient for the files that used it.
That is a satisfying place for this ladder to end. The one operation with an exact property is the one that makes the existing format adequate, and the operations without it are the ones that would need the format to change.
What was computed, and how
The ramp is fourteen colours at lightness 55 and hue 30, from neutral to the source gamut’s boundary, mapped into this collection’s four-colour press gamut and then re-mapped into the same gamut two or four more times.
Each pass uses the same intent and the same destination, and the source solid is the standard sRGB one on the first pass only — after that the input is whatever the previous pass produced, which is the honest model of a file passing through successive workflows. Modelling a second workflow that re-declared the original source would be modelling a workflow nobody has.
The colorimetric result is the control and it is exact rather than small: 0.0 on the second pass, on every colour, which establishes that the machinery is measuring the intent’s own behaviour and not an accumulation of numerical error.
The distances are ΔE₀₀ between successive outputs, which is the right unit for how much did this pass move it and is not the right unit for how far is it now from the original — that quantity is the sum of the passes only if they all point the same way, which is not something to assume.
Where the model stops
One destination and one hue. A conversion between two spaces of similar size behaves differently from one into a much smaller space, and the perceptual intent’s second pass would move less.
The perceptual and saturation implementations are this collection’s own. The ICC specification does not prescribe either algorithm, so the exact drift rates belong to these implementations; the idempotence result for the colorimetric intent is structural and belongs to the definition.
And no real workflow converts into the same space twice. The interesting case is a chain of different destinations, where each pass has a genuinely different job and the accumulation is not a repeat — that measurement needs several device models and is not in this round.
The generalisation
The habit is about assuming an operation settles.
An operation described as cleaning up, normalising, fitting into, or correcting invites the assumption that a second application is a no-op, because the thing it was fixing has been fixed. That is true when the operation is defined by a condition on its output and false when it is defined by a relation between its input and its output.
The move is to apply it twice and subtract. It costs one extra call and it distinguishes the two kinds immediately.
The failure mode is a slow drift with no single step large enough to notice. A colour that moves two and a half units per conversion and passes through four workflows has moved ten, and no stage of that chain did anything a reviewer would have questioned.
Who found it, and when
That perceptual rendering is not idempotent is understood by colour engineers and is one of the reasons the advice to minimise conversions exists. It is not usually stated as idempotence and its rate is not usually quoted — in the way a dot gain is a feature rather than a defect until somebody measures it.
The colorimetric intent’s exact idempotence is immediate from its definition and is worth stating because the exactness is what makes the comparison a measurement rather than an impression.
Where the ladder goes next
Four rungs have followed a colour through the chain that delivers it and found the same shape at every stage: an operation whose behaviour depends on something the chain does not record — an arrangement, a variable, a solid, a count. What the round has not reached is the reader, who is the last stage of every chain and the only one with no profile at all.
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 chain measured in a unit that cannot add colour management · gamut mapping · the icc profile · specification
- A mean is not a difference colour management · gamut mapping · the icc profile · specification
- Dividing by the paper colour management · the icc profile · specification
- The paper is the white point colour management · the icc profile · specification
- The scale hangs from one measurement colour management · the icc profile · specification
- Two converters and one highlight colour management · reproducibility · 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.
ChromaColour managementConvergenceFixed pointGamut mappingThe ICC profileIdempotenceReproducibilitySpecificationWorkflow