What it takes to deliver it

A profile is a fit between its nodes

A printer profile is a table, exact at every patch that was printed and interpolated everywhere else — and everywhere else is where every job lives. Going from a hundred and thirty-five patches to three and a half thousand is twenty-seven times the work for eight times the accuracy, and the exponents say that is as good as it gets.

Assumes A profile is a table, The separation is not unique and A fit can be exact and empty.

A profile is a table rather than a formula: a grid of ink combinations, each printed and measured, with a colour engine interpolating between them. That is a design decision made because a press is not describable by any small closed form, and it is the right one.

It has a consequence that no residual can report. A table is exact at its nodes, so a check made at the nodes returns zero for ever, and every job a press prints is somewhere else.

What the next thousand patches buy a printer profile. A profile is a table, exact at its nodes and interpolated everywhere else. Each mark is a grid: the horizontal axis is how many patches somebody had to print and measure, the vertical is the worst error found between the nodes. Going from 135 patches to 3645 — 27.0× the work — buys 8.4× the accuracy. The error falls with the square of the spacing and the count rises with its cube.
Fig. 1 Four grids. The horizontal axis is how many patches somebody had to print and measure; the vertical is the worst error found between the nodes.

The claim

A profile’s accuracy is a property of the spacing between its patches and of nothing else that can be improved after printing. The error falls with the square of the spacing while the patch count rises with its cube, so the marginal return falls as the fifth power — and a point arrives at which further patches are measuring the instrument’s repeatability.

  • A three-step grid — 135 patches — leaves a worst error of 2.93 ΔE00 between the nodes, and a mean of 1.34.
  • A nine-step grid — 3,645 patches — leaves 0.35 worst and 0.13 mean.
  • That is 27 times the patches for 8.4 times the accuracy, which is the exponents doing exactly what they must.
  • And zero of it is visible at the nodes, where the table reproduces the measurement by construction, so a profile checked on its own patch set reports a perfect instrument.
  • The last doubling is the one to argue about. Between seven and nine steps the worst error falls from 0.40 to 0.35, which is inside the repeatability of the measurement that produced it.

Every one of those numbers is between the nodes and none of them is visible from the target. A profile built on a three-step grid and checked on a three-step grid reports a perfect profile, and the check is not careless — it is the check the data support.

Why the error is where it is

Multilinear interpolation is exact on functions that are linear along each axis and wrong in proportion to the curvature between the nodes. The press’s response is not linear along any axis — dot gain is a curve, the Neugebauer construction is a product of probabilities, and the black separation is a family rather than a value — so there is curvature everywhere and the interpolation error is a second-order quantity in the spacing.

That gives the exponents directly. Halve the spacing and the interpolation error falls by four; halve the spacing and the patch count rises by eight in a three-dimensional grid, and by sixteen if the black axis is refined too. So accuracy costs work at a rate of about the fifth power of the spacing, and the fifth power is what makes the tail of the curve so flat.

How wrong a profile is between its entries. A device profile is a lattice of measured patches and an interpolation. At every node of every grid drawn here the error is exactly zero, which is why a profile checked at its own patches always looks perfect. Sampled between the nodes, a 3-step grid is worst by ΔE00 = 2.93 and a 17-step grid by 0.30. Both are honest tables of the same press.
Fig. 2 The same sweep as this site has drawn it since the delivery essays were written, over a wider range of grids. The shape is the second-order convergence the interpolation guarantees.
How wrong a profile is between its entries. A device profile is a lattice of measured patches and an interpolation. At every node of every grid drawn here the error is exactly zero, which is why a profile checked at its own patches always looks perfect. Sampled between the nodes, a 3-step grid is worst by ΔE00 = 2.93 and a 17-step grid by 0.30. Both are honest tables of the same press.
Fig. 3 And the convergence itself, which is the check that the machinery is doing what the exponent says rather than what the author hoped.

The observed order is not two, and the last step is why

The scaling law is stated as second-order convergence in the spacing, and the essay’s own four readings do not deliver it — which matters, because the whole argument for a stopping rule rests on the exponent being known before any patch is printed.

Taking the four grids at five black levels:

steps patches worst error order against the previous
3 135 2.93
5 625 0.85 1.79
7 1,715 0.40 1.86
9 3,645 0.35 0.46

The first two refinements converge at about 1.8, which is second order within the noise of a random-sample worst case. The last converges at 0.46, and it drags the end-to-end figure down to 1.53: from three steps to nine the spacing falls by four, second order would divide the error by sixteen, and it divides by 8.37.

The essay reports the ratio correctly — 27 times the patches for 8.4 times the accuracy — and describes it as the exponents doing exactly what they must. They are not: the exponents require 16, and the shortfall is entirely in the last refinement.

The cause is in the sibling essay and not in this one. Every grid here is at five black levels, and once the chromatic lattice is finer than about seven steps the black axis’s fixed contribution is the whole of the residual — so refining the chromatic axes moves a number that has stopped being the one being measured. The 0.35 is not this grid’s interpolation error; it is the black axis’s, quoted in chromatic units.

That repairs the essay’s own puzzle in the same stroke. The last doubling is the one to argue about — between seven and nine steps the error falls by 0.05 — is presented as the returns flattening naturally. They are not flattening; they have hit a floor that a different axis is holding, and the right response is not to stop but to spend the next patches on black.

The cost per unit removed, which is the number a buyer wants

The exponent argument is easier to use in the currency somebody actually pays in.

refinement extra patches error removed patches per unit
3 → 5 steps 490 2.08 236
5 → 7 steps 1,090 0.45 2,422
7 → 9 steps 1,930 0.05 38,600

Cost-effectiveness falls by a factor of 164 across three refinements, which is the fifth-power law made concrete: the first five hundred patches buy two units and the last two thousand buy a twentieth of one.

That table is what a specification argument is really about, and it is one multiplication away from data every profile-maker already has. It also makes the stopping point sharper than the essay’s prose does.

Where the stopping rule actually falls

The essay’s stopping rule is a comparison against press repeatability, quoted as several tenths of a unit, and it stops short of naming the grid. The four readings name it.

At a press repeatability of about 0.5 units, the seven-step grid at 1,715 patches is already below it and the five-step grid at 625 is not. So the boundary sits between six hundred and seventeen hundred patches — which is exactly the range the commercial targets occupy, arrived at empirically by a trade that never computed an exponent.

That is a better result for the trade’s folklore than the essay gives it. The standard targets are not a compromise between accuracy and effort chosen by habit; they land within one refinement of where the arithmetic puts the boundary. And the nine-step grid, which is what a careful profile-maker reaches for, is spending 1,930 patches to move an error that is already a fifth of the press’s own variation.

The one qualification is that all of this is at five black levels. On the sibling essay’s numbers a 9³ × 9 grid reaches 0.22 with 6,561 patches, against the 13³ × 5 grid’s 0.31 with 10,985 — so the patches that would actually buy something go on the axis this essay’s sweep holds fixed, and the stopping rule as computed here is a stopping rule for the wrong refinement.

Where the patches should go

A uniform grid is the wrong shape and is what almost every target uses, for a reason that has nothing to do with accuracy: a table has to be addressable by an interpolator, and a rectangular lattice is what an interpolator wants.

The error is not uniform over the cube. It is largest where the response is most curved, and the response of a halftone press is most curved in two places: near the top of each ink’s coverage range, where dot gain saturates and the Yule–Nielsen effect is strongest, and near the boundary of the achievable solid, where two or three inks are heavy at once. It is smallest in the light tints, where the model is nearly linear and a coarse grid does perfectly well.

So a target with nodes spaced non-uniformly along each axis — dense at the top, sparse in the tints — would reach a given worst error with substantially fewer patches. That is what the better commercial targets do, and it is why a good six-hundred-patch target can beat a naive fifteen-hundred-patch one. The scaling law in this essay is the uniform case and is therefore a conservative bound.

The limit of that idea is a target chosen for the job rather than for the press, and it is a bad idea for a reason worth naming: a profile characterised only where one job went is a profile that will be used for the next job, and a fit is only as good as the directions its data visited.

Where a measurement stops helping

The interesting boundary is not where the curve flattens but where it drops below the noise of the measurement that produced it.

A good spectrophotometer measuring a printed patch repeats to a few hundredths of a ΔE on a stable stock, and a press repeats far worse than that — sheet to sheet variation on a well-controlled run is several tenths of a unit, and across a run it is more. So a profile whose interpolation error is 0.35 is describing a press whose own variation is larger than its residual, and the next doubling of the patch count is measuring the ink and the paper on the day rather than the press.

That is the honest stopping rule and it is not a rule about the profile. It is a comparison between two numbers that live in different documents: the profile’s interpolation error, which almost nobody computes, and the press’s process capability, which every print buyer has.

How wrong a profile is between its entries. A device profile is a lattice of measured patches and an interpolation. At every node of every grid drawn here the error is exactly zero, which is why a profile checked at its own patches always looks perfect. Sampled between the nodes, a 5-step grid is worst by ΔE00 = 0.95 and a 13-step grid by 0.63. Both are honest tables of the same press.
Fig. 4 The black axis, which is the cheapest place to spend patches and the one most often starved. Three levels against five is a large change in the count and a modest one in the error, because the black separation moves the colour less than the chromatic inks do.

The same table is one stage of a delivery chain, and the other two stages are where its error ends up being spent.

Where a delivered colour's error actually comes from. Three bars and two totals. The profile's interpolation between its nodes contributes 0.13 ΔE00; the rendering intent, at the colorimetric setting, moves nothing that was already printable and contributes 0.00; and looking at the result in a dim room rather than the booth it was proofed in contributes 4.30, which is 97 per cent of the total. The two totals are the three added — 4.43 — and combined in quadrature — 4.30. The gap between those two rules is 0.127, about the size of the entire profile stage, and no standard says which rule to use.
Fig. 5 The three stages of a delivery chain in one column. The interpolation this essay measures is the first of them, and it is the only one whose size is bought down by printing more patches.
What each choice contributes, and how much of the total it could move. Three pairs of bars, one pair per stage of a delivery chain. The upper bar is what that stage contributes at its usual setting; the lower is how far the whole delivered error moves across every setting that stage offers. The profile's node count contributes 0.13 and its whole range moves the total by 0.27 ΔE00 — less than any other stage does by existing. The rendering intent contributes exactly nothing at its usual setting and can move the total by 6.40, which is the case worth having a picture for: a stage can have no contribution and the largest reach in the table.
Fig. 6 And each stage’s contribution at its usual setting against how much of the whole a reader would notice. The nodes are not where the trouble is, which is the finding this essay’s own convergence curve is pointing at.

What was computed, and how

The press is this site’s halftone model: inks as stated absorbance bands, Neugebauer primaries as real patches, Demichel areas as a product of probabilities, and a Yule–Nielsen exponent for the light that scatters sideways under the paper. The table is built by evaluating that model at every node of a grid, and the error is measured by evaluating it at random coverages and comparing against the interpolation.

The samples are deliberately drawn between the nodes, uniformly over the coverage cube, which is the only place a table can be wrong. A check at the nodes would report zero for ever, which is exactly the failure mode this essay is about — and it is what a profile validated on its own patch set is doing.

The black axis is sampled over a narrower range than the chromatic ones, because a separation with heavy black at high chromatic coverage exceeds any sensible ink limit and the model would be extrapolating rather than interpolating. That is a stated restriction rather than a hidden one and it makes the reported errors slightly optimistic.

Three summary statistics are reported and the worst is the one that matters. A profile is judged by its failures rather than by its average: a mean of 0.13 with a worst of 0.35 is a good profile, and a mean of 0.13 with a worst of 4 would be a bad one, and the two are indistinguishable in any report that quotes a mean.

A coarser set of grids with a finer black separation is the combination a real profile is most often shipped as, and it says which of the two axes is doing the work.

How wrong a profile is between its entries. A device profile is a lattice of measured patches and an interpolation. At every node of every grid drawn here the error is exactly zero, which is why a profile checked at its own patches always looks perfect. Sampled between the nodes, a 3-step grid is worst by ΔE00 = 2.93 and a 13-step grid by 0.11. Both are honest tables of the same press.
Fig. 7 Four grids at nine black levels. At every node of every grid the error is exactly zero, which is why a profile checked at its own patches always looks perfect; sampled between them the three-step grid is worst by ΔE00 2.93 and the thirteen-step by 0.11.

The column that is infinite

The ledger entry deserves its own section because it is the one row whose third column cannot be made finite.

A camera matrix has nine parameters and a chart determines nine. A profile has no finite parameter count at all — the thing being characterised is a map from a four-dimensional coverage cube to a three-dimensional colour space, which is an infinite-dimensional object, and any table is a finite sample of it. The family of presses agreeing with a given table at every node is infinite-dimensional, and the interpolation error is a measurement of how much of that family anybody cares about.

That sounds like an argument for a different kind of model, and it is not, for a reason that is worth stating: a parametric press model would have a finite parameter count and would be wrong in ways a table is not. The Neugebauer construction with a Yule–Nielsen exponent has perhaps a dozen parameters and does not reproduce a real press to a tenth of a unit anywhere. A table trades identifiability for fidelity, deliberately, and the interpolation error is the price.

Where the model stops

The press is a model rather than a press. Every number here is a property of this collection’s halftone machinery, and a real press has ink trapping, mechanical dot gain that varies across the sheet, and a substrate that changes with humidity. What is not a property of the model is the exponent: second-order convergence follows from multilinear interpolation of a curved function, whatever the function is.

A real profile is not a single forward table. It carries a forward table, an inverse table built from it, rendering intents, a black generation rule and a gamut mapping — and the inverse is the harder object, because a press has four inks and three numbers to match, so inverting the table means choosing among a family at every point.

And nothing here is about accuracy at the nodes. The measurement of each patch has its own error, which propagates into the table and then into every interpolation. This essay holds that at zero, which makes the reported errors a floor.

Who found it, and when

Interpolation error in colour tables is old and well studied, and the practical numbers have been folklore in the printing trade since profiling became routine in the 1990s: everybody knows that a bigger target gives a better profile and that the returns fall off. The standard targets encode that knowledge — a few hundred patches for a quick characterisation, one to three thousand for a production one — and the numbers were arrived at empirically.

What is rarely stated is the exponent, and the exponent is what makes the empirical rule of thumb transferable. Second-order convergence in the spacing with cubic cost in the count means the trade is the same for any interpolant of the same order on any smooth response, so a practitioner moving to a different process does not have to rediscover the curve.

The other thing rarely stated is the comparison with press repeatability, which is where the argument actually ends. It is not a subtle calculation and it settles the question that generates the most argument.

What a profile ought to be shipped with

The list is the same three items every fitted object in this collection needs, and for a table two of them are unusual enough to be worth spelling out.

The grid, which is already in the file and is not usually surfaced. A user opening a profile can see how many patches it was built from only by reading its tags.

The interpolation error between the nodes, sampled uniformly over the coverage cube, reported as a worst case rather than a mean. It costs one pass over a few hundred random coverages against the same model that built the table, and it is the number that says what the profile will do on a job.

And the press’s own repeatability, which is not the profile-maker’s to measure and is the term the interpolation error has to be compared against. A profile quoting an interpolation error of 0.35 for a press running at 0.8 is over-specified, and the honest thing to say is so.

The reason none of this is standard is the reason it is never standard: the number that exists is the one that flatters, and the number that would be useful requires admitting a second source of error. It is the same shape as a camera profile quoting its fit residual and a whiteness figure quoting no measurement condition.

What the inverse costs on top

Everything above is about the forward table — coverages in, colour out — and a profile is used the other way round. That direction inherits the interpolation error and adds one of its own.

A press has four inks and three numbers to match, so the map being inverted is not injective: for most colours there is a curve of ink combinations producing it, and something has to choose a point on that curve. That choice is the black generation rule, and it is a policy rather than a computation — more black is cheaper, drier and steadier, and less black is smoother through the shadows and more forgiving of registration.

The consequence for accuracy is that two profiles built from the same measurements can disagree while both being exact at every node, because they picked different members of the family. The disagreement does not show up as error against the forward table at all; it shows up as a different separation for the same colour, and the two separations behave differently when the press drifts.

So the interpolation error measured here is a floor rather than an estimate of what a profile delivers, and the part above it is a decision somebody made rather than a limitation of the grid.

The generalisation

The pattern is a model that is exact where it was measured and used where it was not, with a residual computed at the measurements.

It is the same failure as validating a camera matrix on its own chart and the same as checking a spectral reconstruction by its colour, and it has the same one-line repair: evaluate somewhere the fit did not see. For a table that means sampling between the nodes, which is trivial to arrange and is not standard practice.

What a table adds to the family is a clean scaling law, and a scaling law is the thing that turns a stopping decision from an argument into an arithmetic. Two numbers settle it — the order of the interpolant and the cost exponent of the grid — and both are known before any patch is printed.

Where the ladder goes next

The remaining question is what to do with the family a table leaves open, and the answer is the one this whole group of essays arrives at: a fitted object is reported with a residual and needs two more numbers beside it, neither of which is expensive and neither of which is usually there.

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.

What links here

The 8 essays that link to this one and share the most of its objects, of 11 that link here.

The objects this essay names

Each one links to every other essay that touches it.

Area coverageCalibrationHeld-out validationThe ICC profileIdentifiabilityInterpolationMeasurement errorModel selectionProcess inksProfile inversionQuality controlSeparation