Matching and measuring

A margin costs a press its corners

A gradient held inside a coated press by projection was predicted to tear if the press were first shrunk by a safety margin, at any pinch narrow enough for the shrinking to cut. The press has no such pinch: shrunk by any margin up to thirty CIELAB units it stays in one piece, and projected routes on it are neither trapped nor torn. What a margin costs is concentrated at the corners — the solid yellow moves nearly four times the margin to get inside, like the tip of a 31-degree spike.

Assumes A projection has no reason to detour, A press makes the cheap route a search and A gamut charges a gradient nothing.

A projection has no reason to detour replaced a penalty with a projection as the way to hold a gradient inside a coated CMYK press, and the traps the penalty had produced disappeared. It ended on the one way the projection might fail. Real gamut mapping is soft: a colour is often kept a little way inside the boundary rather than on it, because the boundary is where a press is least reliable — and an intent is not a function of the colour showed how far the perceptual intent in particular already moves colours that were printable all along. A projection can be made soft only by projecting onto a smaller set — the press eroded by a stated margin, every colour at least that far from anything unprintable. The essay’s prediction was that the traps would not come back, and its warning was specific:

The interesting failure would be at a pinch narrow enough that erosion disconnects it: the nearest point then jumps from one side to the other as a route passes, and a projected path can be torn in exactly the way this essay found it was not.

There is no pinch. Eroded by any margin up to thirty CIELAB units, the press is one connected piece, and it first comes apart at thirty-one, where a seventh of one per cent of it is left. Projected routes on the press eroded by two units and by four are neither trapped nor torn. The tear is not where a margin costs anything. The cost is at the corners: an end colour on a sharp corner of the press has to move several times the margin to get that far inside, and the solid yellow moves nearly four times.

What eroding means, and what it would take to tear

An eroded gamut is the set of printable colours whose distance to the nearest unprintable colour is at least the margin. It is computed here on the same voxel grid that a press makes the cheap route a search built for its penalty. The press’s printable colours are cells one CIELAB unit on a side. A distance transform gives every printable cell its depth below the boundary, and a margin keeps the cells at least that deep. Nothing about the press’s ink model enters twice: the eroded set is a function of the gamut and the number.

The tear the prediction describes needs a waist — a place where two broad parts of the gamut are joined by a neck narrower than twice the margin. Erode by more than half the neck’s width and the two parts become separate pieces. A route from one to the other then has no continuous path inside, and a projected path passes from being nearest one piece to being nearest the other in a single step. That step is the tear.

So the question the earlier essay said could be answered before any gradient was drawn is simply how many connected pieces the eroded set has, at each margin. Connectivity is counted across faces only, so two cells that touch at an edge or a corner are not joined. That is the strict reading, and the one least likely to miss a waist.

How much of a coated press is left at each margin inside its boundary. The share of a coated press's printable volume in CIELAB that lies at least a given distance inside its boundary, for margins from half a unit to 32. A margin of one unit keeps 88%, two keep 80%, four 66% and eight 45%. At every margin up to 30 what is left is a single connected piece; at 31 units, with 0.14% of the volume left, it first splits, into a core of 623 cells and 2 fragments of one or two cells — the deepest point is 32.7 units inside, so what splits is the last crumb of the core, not a waist.
Fig. 1 The share of the press’s volume kept at each margin inside its boundary, and where it first comes apart.

The figure is that count, drawn with the volume the margin keeps. The press stays one piece at every margin up to thirty. A margin of one unit keeps 88 per cent of its volume, two keep 80, four keep 66 and eight keep 45. At sixteen what is left is a sixth of the press, at twenty-eight under one per cent, and it is still one piece.

At thirty-one units it splits into three. That split is not a waist: the pieces are a core of 623 cells and two fragments of one and two cells, beside a core whose deepest point is 32.7 units inside. It is the last crumb of the middle coming apart at the grid’s own resolution. The deepest colours sit near L* 44 with a* and b* both about three — a slightly warm mid-grey, which is where a gamut built from three chromatic inks and black should have its thickest part.

Where the volume a margin removes lies

The curve falls steeply at first and then flattens, which says the volume is not spread evenly by depth. The histogram of depths makes it concrete.

How the press's volume divides by depth below its boundary. The share of a coated press's printable volume at each depth below its boundary, in bands of CIELAB units. 0 to 1: 11.9%, 1 to 2: 7.7%, 2 to 4: 13.9%, 4 to 8: 21.8%, 8 to 16: 28.5%, 16 to 33: 16.2%. The first band is one unit thick and holds more than a tenth of the volume; 20% lies within two units of an unprintable colour and 34% within four. The running totals are written under the bars; each is the share a margin of that depth removes.
Fig. 2 The press’s printable volume divided by how deep each colour sits below the boundary, in bands of CIELAB units.

Twelve per cent of the press lies within one unit of its boundary, and one fifth within two. A third lies within four units. The deepest band, sixteen units and more, holds a sixth. A ball of the same volume on the same grid has eight per cent in its outermost unit and fourteen within two, so the press carries about half as much again in its skin as a round gamut would. That excess is the first hint of where the margin’s cost goes: a surface with sharp features has more of its volume close to the boundary than a smooth one does, because every edge and spike is nothing but boundary.

That third within four units is the price a four-unit margin pays in volume, and it is not a small price. A designer asking for four units of safety against press variation has given up a third of the colours the press can print. A press is charged for the direction it barely moves measured how a press run actually varies, and it varies mostly along the direction a tolerance forgives. So a margin that is the same in every direction is already the crude version of what a press needs. But a margin of two or four is the order of magnitude a practical soft constraint uses, and at that size the press loses a fifth to a third of its volume while staying one piece.

The volume is not lost evenly by colour either, and one lightness shows it better than any total. At L* 50 the press is broad. At L* 85 it is a narrow tongue reaching out towards yellow.

Two planes of the press, shaded by how deep inside each colour sits. Two constant-lightness planes through a coated press's printable colours, seen down the lightness axis at one scale, with a to the right and b up. Each printable colour is shaded by its distance from the press's boundary in CIELAB units, in bands of under 1, 1 to 2, 2 to 4, 4 to 8, 8 to 16 and over 16. At L 50 the plane is broad and its middle lies more than 32 units from any unprintable colour. At L 85 it is a narrow lozenge reaching out towards yellow, and nothing in it is more than 6.6 units deep: a margin of four removes most of it and a margin of eight all of it.
Fig. 3 Two constant-lightness planes through the press at one scale, each printable colour shaded by its depth below the boundary.

At L* 50 the deepest colour is 32 units inside, and a four-unit margin keeps three quarters of the plane. At L* 85 nothing is more than 6.6 units inside. A two-unit margin keeps just over half of that plane, a four-unit margin keeps a sixth, and an eight-unit margin keeps none of it. The light tongue is where the press prints its brightest saturated colours: yellow, and the pale tints of the other inks laid over bright paper. It is thin in every direction at once, because at that lightness only a light ink or a pale tint can print at all: above it is paper white, and any more ink, of any colour, takes a colour below it.

That is the first form the corner takes. A margin is uniform by construction, and a uniform margin costs a thin region its whole cross-section. What looks like a small safety allowance on a colour’s distance to the boundary is, at L* 85, most of what the press can print there.

Routes on the eroded press

The census the earlier essays ran is ten gradients between colours on the press’s boundary whose straight line leaves the press, relaxed from six starting points each. It runs here unchanged, with one step added. An eroded gamut does not contain the press’s boundary colours, so each gradient’s two ends are first projected into the eroded set, and each route is priced against the free shortest path between its own moved ends.

What the best projected route costs on the press and on the press eroded by two and four units. Each row is one gradient whose straight line leaves a coated press, relaxed by projection from six starts. The dots are the best route's length over its free length, on the press itself and on the press eroded by two and by four units, with the eroded route's ends moved inside first and priced against its own free path; across is logarithmic from a thousandth of a per cent to one per cent. No eroded route costs more than 0.46 per cent, no start is trapped, and on the right is the worst ratio, over every start, of a route's longest step to its mean step — at most 1.44, where a tear across a pinch would show as a single step many times the rest.
Fig. 4 For each crossing gradient, the best projected route’s excess over its free path on the press, and on the press eroded by two and by four units, with the worst step ratio beside it.

No start is trapped at either margin, and every route stays inside. The best route’s excess over its free path is a median 0.02 per cent at a two-unit margin and 0.01 at four, and at worst 0.46 and 0.39. The press itself gave a median of 0.02 and a worst of 0.51, so eroding the press has not made the price of holding a gradient inside it any larger. If anything it is slightly smaller, possibly because moving the ends inward also moves them away from the concavities between the ink pairs; the census is too small to say. It stays the order of price a gamut charges a gradient nothing found on a display, where holding a gradient inside sRGB cost less than the relaxation’s own noise on every gradient tested.

Nothing tears. The number on the right of each row is the worst, over all six starts, of the ratio of a route’s longest step to its mean step, in ΔE₀₀. A route that jumped across a pinch would show one step many times the rest. The worst at a two-unit margin is 1.06, and the worst at four is 1.44, on the gradient from solid yellow to yellow with three quarters of cyan. That route is short and both its ends sit on the sharpest corners in the census, which is where the next section finds the margin’s cost; a ratio of 1.44 is one step half as long again as the average, a stretched step and not a jump.

This settles the prediction in both halves. The traps did not come back, as it expected, since an eroded gamut is still a set with a nearest point, and a projection has no incentive to go round it. And the failure it warned about needs a waist the press does not have at any margin anybody would use. The worry was reasonable: a gamut built from inks is not convex, and non-convex sets can have waists. This one is non-convex in the way a lumpy potato is, not in the way an hourglass is. Its concavities are shallow notches between neighbouring ink pairs round the boundary, and none of them cuts through.

The corners pay several times the margin

The census’s ends are where the cost turned up, and they were not what the prediction was about. Every gradient in it runs between colours on the boundary — solid inks and their overprints, which is where a designer puts a gradient when they want it saturated. Each end has to be moved into the eroded set before its route can be relaxed, and the distance it moves is the colour change a margin costs that end.

A colour on a flat face of the boundary moves exactly the margin: straight in along the face’s normal. None of the census’s end colours does.

How far each end colour moves into the eroded press, per unit of margin. The 9 end colours of the gradients whose straight line leaves a coated press, each moved to the nearest colour at least a margin inside the press. Across is the distance moved in CIELAB, divided by the margin, for margins of one, two and four units; a colour on a flat face of the press moves exactly the margin, which is the line at one. Every end colour moves further than that. The solid yellow moves ×4.2, ×3.7, ×3.7; the red of magenta and yellow and the green of cyan and yellow move about three times the margin at two units; the least-moved, a yellow with a quarter of cyan, moves ×1.7. In ΔE₀₀ the solid yellow's move at a four-unit margin is 4.3.
Fig. 5 How far each end colour moves into the eroded press, as a multiple of the margin, at margins of one, two and four units.

Every end colour moves further than the margin, and the solid yellow moves furthest: 4.2 times the margin at one unit, 3.7 times at two and 3.7 times at four. In CIELAB distance that is 14.7 units at a four-unit margin. The red of solid magenta and yellow and the green of solid cyan and yellow move about three times the margin. The least-moved end colour, a solid yellow with a quarter of cyan, moves 1.7 times. Its neighbour on the ring with no cyan at all moves more than twice as far.

The ratios at a one-unit margin are the least trustworthy of the three. The voxel grid is one unit on a side, so a one-unit erosion is made of the same cells the boundary was, and the yellow’s 4.2 there is partly the grid. At two and four units the solid yellow’s ratio agrees to within a tenth and the fully chromatic end colours to within about a fifth, which is what a property of the shape rather than of the grid should do. The two end colours carrying half black are the exception: their ratios fall from 2.3 and 2.1 at two units to about 1.7 at four, as if the dark corners they sit on are sharp only at their very tip.

In ΔE₀₀ the solid yellow’s move is smaller than its CIELAB distance: 4.3 at a four-unit margin, because ΔE₀₀ compresses differences in chroma at high chroma and yellow is the most chromatic colour the press prints. The two end colours carrying half black move less far in CIELAB and further in ΔE₀₀. The solid yellow with half black moves 6.7 CIELAB units and 5.3 ΔE₀₀ at the same margin. So which end colour a margin costs most depends on which ruler reads it, which is a lesson this subject keeps teaching. What does not depend on the ruler is that every one of them moves more than the margin.

A move is a corner’s angle, read backwards

The geometry that turns a margin into a larger move is the geometry of a sharp point. At the tip of a cone whose sides open at an angle θ, the nearest point at least a margin m from both sides lies on the cone’s axis, at m ÷ sin(θ/2) from the tip. A flat face is a cone opened to 180 degrees and moves the margin exactly. An edge where two faces meet at a right angle moves the margin times the square root of two, and the corner of a cube, where three meet, times the square root of three.

So a measured move can be read backwards as an angle. It is an inference, not a measurement — the voxel gamut has no angles written on it, and a real corner is not a cone — but it says how sharp a corner would have to be to produce the move.

The corner a move implies: how sharp a spike has to be to move a colour that far. At the tip of a cone with opening angle θ, the nearest point a margin m inside lies m ÷ sin(θ/2) from the tip — the curve. Each end colour is placed on it at the angle its measured move at a two-unit margin implies, which is an inference from one number, not a measured angle. y1 c0 ×3.75, 31°; y1 c1 ×2.97, 39°; m1 y1 ×2.96, 39°; y0.75 c1 ×2.38, 50°; y1 c0 k0.5 ×2.31, 51°; y1 c0.75 ×2.14, 56°; y1 c1 k0.5 ×2.10, 57°; y0.5 c1 ×1.87, 65°; y1 c0.25 ×1.71, 71°. A face moves ×1, an edge between two faces at a right angle ×1.41 and the corner of a cube ×1.73; the solid yellow behaves like a spike of about 31°, more than twice as sharp as a cube's corner.
Fig. 6 The move a margin forces at the tip of a cone of each opening angle, with each end colour placed at the angle its measured move at a two-unit margin implies.

The solid yellow behaves like the tip of a spike about 31 degrees across. The red and the cyan-yellow green behave like 39-degree spikes, and the mixed end colours spread out towards a cube’s corner. The least-moved, yellow with a quarter of cyan, sits almost exactly at 71 degrees, which is the cube’s own figure.

That the most extreme end colour is a much sharper corner than a cube’s is not a surprise once the press’s shape is pictured. Solid yellow is the lightest saturated colour the press prints, and it lies where the thin tongue of the L* 85 plane ends. Towards paper white the gamut is bounded by the paper, and on every other side by the first trace of another ink: cyan turns it green, magenta turns it orange and black darkens it. The fifth ink buys a corner measured what a fifth colorant adds to a press’s boundary and found it all in the region of that ink’s own hue. That is the same finding from the other side: a gamut’s volume at high chroma lives in its corners, and corners are where a uniform margin hurts.

The result that is easy to miss in this is the scale. A two-unit margin sounds like a guard of two colour differences. On a flat face it is. At the most saturated colour a gradient could end on, it is a change of about seven CIELAB units, or 2.3 ΔE₀₀ — well past what most tolerances allow on a solid. The margin’s cost is not paid evenly by every colour it protects, and the colours that pay most are the ones a designer chose the press for.

One gradient, drawn

A drawn route shows the same thing without any ratios. The gradient from solid yellow to the green of solid cyan and yellow runs round the outside of the press at high lightness, from its sharpest corner to one of its next sharpest.

One gradient on the press and on the press eroded by two and four units. The gradient from solid yellow to the green of cyan and yellow, seen down the lightness axis, as the best projected route on the press and on the press eroded by two and four units. The eroded routes start 7.5 and 14.7 CIELAB units from the press's route at the yellow end, about four times the margin, and run 5.3 and 10.0 units from it at the middle, two and a half times the margin: the gradient runs along a ridge of the press, so every point of it moves more than the margin, the most at the yellow corner, and the route moves inward bodily and keeps its shape.
Fig. 7 The yellow-to-green gradient seen down the lightness axis, as its best projected route on the press and on the press eroded by two and four units.

The eroded routes are the press’s route moved inward, bodily, and they keep its shape. At the yellow end they start 7.5 and 14.7 CIELAB units inside it, 3.7 times the margin. At the middle of the gradient they run 5.3 and 10.0 units inside, about two and a half times the margin, and at the green end they arrive 5.9 and 11.3 units in, about three times. No point of the route moves only the margin, because none of it lies on a flat face. The whole gradient runs along the ridge where the yellow-and-cyan overprints meet the press’s light surface, and a ridge moves more than a face at every point along it.

The step ratio in the census is 1.00 for this gradient at both margins, so the moved route is as evenly spaced as the original. Being far inside does not tear anything or make it uneven. It changes colour: the eroded route passes through less saturated yellows and greens, by an amount that is largest at the yellow end.

That is the whole picture of what a soft constraint does to a projected route on this press, and it is the distinction the straight line is not the shortest gradient drew between a route’s length and the colours it passes through. The route is not torn, and it is not significantly longer than it needs to be between its own ends. What changes is where the route lies, and how far it moves depends on how sharp the boundary is under each part of it: a corner at the ends, a ridge between them.

Where this stops

The margin is Euclidean in CIELAB. A tolerance is stated in ΔE₀₀, which is not a distance in CIELAB — at high chroma it counts a CIELAB unit as much less than one — and a tolerance in the wrong coordinates is the reminder that the coordinates a tolerance is written in decide what it allows. A margin of two ΔE₀₀ around solid yellow would be several CIELAB units wide in chroma and narrower in lightness. Eroding in CIELAB is what a distance transform on a CIELAB grid does naturally. Whether a margin stated in ΔE₀₀ would make the corner effect larger or smaller is the question the next section leaves open.

The grid is one unit. Every depth is quantised to a unit, and so is the gamut’s surface. A finer grid would sharpen the corners a little, because a coarse grid rounds a spike’s tip. That would raise the ratios for the most extreme end colours rather than lower them, which is the conservative direction for the finding.

The press is one press. A coated CMYK set at a 320 per cent ink limit, built from the print model used throughout. A lower ink limit clips the dark end of the gamut and can create a flatter face where there was a corner. An uncoated stock pulls the whole gamut in and shortens the light tongue. Neither would give a gamut a waist: that needs two broad regions joined by a narrow one, and a four-ink press’s colours are one broad region.

The angles are inferred. Reading a move as a cone’s angle assumes the corner is a cone. A real corner of a voxel gamut is a ridge or a wedge or a tip of something irregular, and the angle is a way of stating how sharp it behaves, not what it looks like.

And the census is the census. Ten gradients between boundary colours whose straight line leaves the press, the same ten throughout. They were chosen for leaving, which put their ends on the ring of saturated overprints, so the census over-represents corners compared with the press’s boundary as a whole. That is the right bias for a question about saturated gradients and the wrong one for a statement about every colour the press prints.

Still open: a margin stated in the tolerance’s own unit

The margin here is Euclidean in CIELAB because that is what a distance transform on a CIELAB grid gives. The number a print buyer or a designer would actually state is a colour difference in ΔE₀₀ — keep every colour at least two ΔE₀₀ inside the press — and that is a different set. At solid yellow a ΔE₀₀ unit across chroma is worth several CIELAB units, so a ΔE₀₀ margin would cut deeper into the yellow tongue’s chroma and less into its lightness. The corner effect might be larger or smaller in the tolerance’s unit, and the census does not say which.

The computation is an erosion by a non-Euclidean distance. A voxel is kept if no unprintable voxel lies within the margin as ΔE₀₀ measures it from that voxel. That is not a separable transform and needs a local search at each surface cell rather than three passes. Then each end colour’s move is re-measured in the unit its margin was stated in. The prediction is that the ratios fall towards one in ΔE₀₀ at the chromatic corners and stay above it at the dark ones — because ΔE₀₀’s compression of chroma is exactly the rounding a spike would need, and the half-black yellows already move further in ΔE₀₀ than the solid ones.

A predicted failure is looked for where it was predicted, and then where it was not

The habit here is about following a prediction past its own answer.

The earlier essay predicted one specific failure — a tear at a pinch — and said how to test for it before any route was drawn. That test took one computation: count the eroded press’s connected pieces at each margin. It answered cleanly: no pinch, one piece to thirty units. A reader who stopped there would record that a margin is safe for a projected route, which is true.

What that answer does not say is what a margin costs. The failure the prediction named was a failure of the route, and the route is fine. The cost turned up in something the prediction had not looked at, because it was not a failure at all — the ends moving inward by the amount the eroded set required, which is simply what an eroded set does. It became a finding only when the moves were measured as a multiple of the margin, and the multiple turned out to be four at the one colour a saturated gradient is most likely to end on.

The move is to measure what the change does to every quantity the method touches, not only the one the prediction was about. A prediction names the failure somebody could imagine, and it is usually right about that failure. The more useful result is often the one next to it: here, that a margin chosen to protect every colour equally protects them very unequally, and that the colours it costs most are the ones the press was chosen to print.

Named alongside this one

Essays reaching for the same objects. Nobody chose these; they are what the index of named objects makes visible.

The objects this essay names

Each one links to every other essay that touches it.

CensusCIELABColour differenceConstraintGamutGamut mappingProcess inksToleranceTrade-off