An intent is not a function of the colour
Assumes An average on the stored values, No mapping preserves everything and A budget drawn through one hue.
A rendering intent looks like a function. It is named in a document, it is applied when a colour is converted, and the conversion takes a colour and returns a colour. Everything about the interface says that handing it the same input twice will produce the same output.
The claim
Two of the four rendering intents are functions of the colour and two are functions of the document.
- Under a relative-colorimetric intent, the same colour from two source solids comes out identical — to 0.0, not to a tolerance.
- Under a perceptual intent the two land 0.69 colour differences apart at the mean and 2.64 at the worst.
- Under a saturation intent, 5.33 and 9.32 — the largest of the three and the one nobody warns about.
- And the affected colours are inside the destination’s gamut. Both worst cases are on colours the press could have printed unchanged from either document.
- Nothing in a converted file records which source solid it came from, so the delivery cannot be reproduced from the file.
The four intents, and which are functions
The four intents are four answers to one question — what should happen to a colour the destination cannot make — and they differ in a way that has never been described as a difference in arity.
Relative-colorimetric leaves a colour where it is if the destination can hold it, and moves it to the nearest point on the boundary at the same lightness and hue if it cannot. Both branches read the colour and the destination and nothing else.
Absolute-colorimetric is the same with the destination’s white treated as a colour rather than as white, which is what a proof of one stock on another has to do. Also a function of the colour.
Saturation holds chroma at the destination’s maximum for the hue and lets lightness move to buy more of it. It reads the colour’s chroma as a fraction of the source’s maximum and delivers that fraction of the destination’s, so the source solid is an argument here too — and a larger one than anybody expects.
Perceptual compresses the whole source solid into the destination, so that relations between colours survive and every colour moves — including the ones that needed no help. The source solid is the second argument, and it is not a colour.
For the perceptual intent that is not a subtlety in the implementation. It is what the intent is for: preserving relations between colours means knowing which colours there were, and a mapping that treated each colour independently could not preserve a relation between two of them.
For the saturation intent it is less obviously deliberate. The intent’s stated purpose is to produce vivid colours for charts and diagrams, and reading chroma as a fraction of the source’s maximum is one way to do that and not the only one. It produces the largest source dependence of the three.
How much it costs
The measurement takes a chroma ramp and maps it into a press’s gamut twice: once treating the source as the whole of sRGB, and once treating it as the same solid with its chroma limited to 55 per cent — which is what a document containing only muted colours amounts to.
Under the colorimetric intent the two runs agree to the floating-point floor at every point, which is the control and is worth having: a measurement that showed a difference there would be measuring the machinery rather than the intent.
Under the perceptual intent they differ by 0.69 at the mean and 2.64 at the worst. Under the saturation intent, by 5.33 and 9.32.
Both worst cases are on colours inside the destination’s gamut. That is the part worth emphasising: the colour needed no mapping at all, both runs could have delivered it exactly, and the two delivered it differently because of what else was in the file.
The ordering is the surprise. The perceptual intent is the one described as compressing a whole solid, so its dependence on the solid is expected; the saturation intent is described as making things vivid, and it turns out to depend on the source four times as strongly. The intent whose document-dependence is documented has the smaller of the two.
The control, and why it is the important half
The measurement’s most useful line is the flat one.
Under a relative-colorimetric intent the two runs agree at every point on the ramp, to 0.0 — not to a tolerance, not to a rounding, but bit for bit. That is what establishes that the machinery is measuring the intent rather than the apparatus around it: both runs build the same destination gamut, walk the same fourteen colours, and call the same mapping function, and the only thing that differs is an object one of the intents reads and the other does not.
An exact zero is a stronger result than a small number, and this round has now leaned on that four times: the tone curve commuting with the clip, the reconstruction agreeing away from an edge, the clip’s placement below the ceiling, and this. In each case the flat half is what makes the large half attributable.
The habit is worth stating on its own. A measurement of a difference is only a measurement of the thing named if there is a case where the difference is exactly nothing — otherwise the number includes whatever else the two runs did not share. A control that comes out at a small number leaves that possibility open; one that comes out at zero closes it.
What that does to reproducibility
Three consequences and they compound.
A converted file cannot be reproduced from the original plus the settings. The original, the profile, the intent and the destination profile are the four things a colour-managed workflow records, and under a perceptual intent they do not determine the output — the source gamut does, and a gamut is a property of the whole document rather than of anything recorded — which is a declared input nobody declared.
Two implementations may well disagree about what the source solid is: whether it is the source profile’s nominal gamut, the convex hull of the colours actually present, or something between. Both readings are defensible, both are implemented, and the difference is the number above.
A brand colour is delivered differently in two documents. A colour specified once and used everywhere — which is what a brand colour is — appears in a photograph-heavy brochure and in a two-colour form, and under a perceptual intent those two documents have different source solids and the colour is delivered two different ways.
And the budget’s mapping stage is a number about a document. The previous rungs re-measured that stage and treated it as a property of the intent; under the perceptual intent it is a property of the intent and the source together, so the figure transfers only to documents of the same shape.
Which colours move, and by how much each way
The two document-dependent intents move different colours and it is worth separating them, because a reader deciding what to do about it needs to know where the damage is.
The perceptual intent’s dependence is concentrated near the boundary. Its compression holds the inner seventy per cent of the destination’s chroma unchanged and spends the whole of the squeeze in the outer part, so a muted colour is delivered identically from either document and a nearly-saturated one is not. That is a defensible design: the colours whose delivery depends on the document are the ones that were going to be moved anyway.
The saturation intent’s dependence is everywhere. It reads a colour’s chroma as a fraction of the source’s maximum and returns that fraction of the destination’s, with no held region at all — so a colour at a tenth of the source’s maximum is delivered at a tenth of the destination’s, and halving the source’s maximum doubles the fraction and doubles the delivered chroma.
So a neutral is safe under both and everything else is exposed under one of them. Under the saturation intent a pale grey-blue in a muted document comes out considerably more chromatic than the same pale grey-blue in a photographic one, which is not a subtle effect and is the intent behaving exactly as specified.
That asymmetry decides the practical advice. A perceptual conversion’s document-dependence is a property of colours near the gamut boundary and can be reasoned about; a saturation conversion’s is a property of every colour in the file.
The reproducibility claim, stated exactly
Colour management’s central promise is that a colour can be moved between devices and arrive predictably, and the promise has an exact form worth writing out so that this finding can be placed against it.
The promise is that the quintuple — source colour, source profile, destination profile, rendering intent, and black-point setting — determines the delivered colour. Everything in that list is recorded in a colour-managed file or in the conversion settings, so a conversion is reproducible.
Under two of the four intents the quintuple is a quadruple plus a solid, and the solid is not in the list. Whether an implementation takes the source profile’s nominal gamut or the hull of the colours actually present is left open by the specification, both are done, and the two differ by more than the numbers above.
So the honest statement of the promise is that it holds exactly for the colorimetric intents and holds up to an implementation choice for the other two. That is not a small caveat on a claim about reproducibility, and it is not usually attached to it.
Why it is nevertheless right
The defence is strong and the essay would be dishonest without it.
A perceptual intent exists because no mapping preserves everything: a colorimetric intent leaves what fits and collapses what does not, so two colours outside the gamut that were plainly different become the same colour — and how many distinguishable colours an intent destroys varies with hue. That is what a photograph cannot tolerate, because the distinctions it loses are exactly the ones in the saturated regions somebody photographed on purpose.
Preserving those distinctions requires making room for them, which requires moving colours that did not need moving, which requires knowing how much room is needed — which is the source solid. The dependence on the document is not an implementation shortcut; it is the intent’s whole mechanism.
So the finding is not that the intent is wrong. It is that a workflow describes the intent as a per-colour conversion, records it as a per-colour conversion, and reasons about it as one, when it is a per-document one.
What a file could carry
The repair is a field again and this one is slightly larger than the others this round has proposed.
The source solid the conversion assumed. Either a named profile whose gamut is to be used, or the actual hull of the colours present, or an explicit statement that the nominal gamut was taken. One of three values, recorded once per conversion.
That would make a perceptual conversion reproducible, which it currently is not, and it would let two implementations agree — which they currently cannot, since they are not solving the same problem.
And a specification could say that a colour is to be delivered colorimetrically. A brand colour whose delivery must not depend on its neighbours is a colour that wants a colorimetric intent, and specifications routinely name a perceptual or a saturation one because those are the defaults for pictures and for charts.
What a workflow can do today
Nothing in this needs a specification change to act on, and three moves are available now.
Convert once. Every additional conversion re-reads a source solid, and the second conversion’s source is the first one’s output, whose solid is not the original’s. A workflow that converts to a working space, then to a proof space, then to a press space under a perceptual intent has read three different solids, and the last one bears no relation to the document.
Use a colorimetric intent for anything specified. A colour that was named in a contract wants the intent that reads only the colour. Mixing intents within a document is supported by every colour engine and is done rarely, because the intent is usually set once for the job.
And check by re-rendering with a swatch added. The cheapest test of whether a workflow’s perceptual conversion is reading the nominal gamut or the document’s own hull is to add a saturated patch somewhere off the page and re-render: if the delivered colours move, the engine is reading the hull. It takes one job and it settles which of the two implementations is in use.
None of the three is a repair. They are ways of working around an argument that is not recorded, which is what this whole round’s findings have in common.
What was computed, and how
The destination is this collection’s four-colour press model and the source solids are sRGB and a version of it with the maximum chroma at each lightness and hue scaled to 55 per cent. That second solid is a construction rather than a real document’s hull, and it stands for a document with no saturated colours in it.
The ramp is fourteen colours at lightness 55 and hue 30, running from neutral out to the source gamut’s own boundary, so that some of them are inside the destination and some outside — neither gamut contains the other, which is why both cases occur on one ramp.
The colorimetric control is the part of the measurement that establishes it is measuring the intent. Both runs use identical machinery, identical destinations and identical colours; the only difference is the source solid, and under an intent that does not read it the answers are bit-identical.
Where the model stops
One narrowing of the source, at one factor. A real document’s hull is a complicated shape and the difference between two real documents would not be a uniform chroma scaling; the size of the effect would move and its existence would not.
The perceptual and saturation implementations here are two of many possible ones. The ICC specification does not prescribe the algorithm, only the intent’s purpose, so different vendors’ perceptual tables differ by more than this measurement does — which strengthens the reproducibility point rather than weakening it.
And the destination is fixed throughout. A perceptual intent also depends on the destination solid, which is recorded and is therefore not part of this problem.
The generalisation
The habit is about an operation whose second argument is invisible.
A conversion, a normalisation, a scaling, a ranking: each of them looks like a function of the item and is often a function of the item and the set. The set is not in the signature, it is not in the file, and it is not in the reader’s mental model — so the operation reads as reproducible and is not.
The move is to ask, of any per-item operation, whether removing another item would change this item’s answer. If it would, the set is an argument and it belongs wherever the other arguments are recorded.
The failure mode is a mismatch between what a format records and what an operation reads. A file that records every argument but one is a file that cannot be reprocessed, and the missing argument is the one nobody thought of as an argument — the same shape as an arrangement nothing records and an average nobody names.
Who found it, and when
That perceptual rendering is gamut-dependent is explicit in the ICC specification’s own description of the intent and is understood by everybody who implements one. The consequence for reproducibility is discussed in the colour-management literature under the heading of perceptual rendering being vendor-specific, which is a related complaint about a different cause. The nearest measured thing in this collection is what an intent costs in distinguishable colours.
What does not appear is the measurement: how far apart two deliveries of the same colour land when only the source solid differs, on colours the destination could hold either way. Two and a half colour differences is larger than most delivery tolerances and is invisible to every check a workflow performs.
Where the ladder goes next
An intent that depends on the source has an obvious consequence for a file that is converted more than once, because the second conversion’s source is the first one’s output. A round trip is not the identity and a second is not a repeat of the first — one of the intents is idempotent and two of them are still moving after three passes.
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 · declared input · gamut mapping · the icc profile · specification · structural choice
- Two converters and one highlight colour management · declared input · reproducibility · specification · structural choice
- A mean is not a difference colour management · gamut mapping · the icc profile · specification
- One step has no choice colour management · declared input · specification · structural choice
- A contrast control is three controls declared input · specification · structural choice
- A delivery tolerance is three tolerances declared input · gamut mapping · the icc profile
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.
Colour managementDeclared inputDisplay gamutGamut mappingThe ICC profilePerceptual intentReproducibilitySaturation intentSpecificationStructural choice