F5.13.3Gamut clippingdesignresearch

Algorithmic ramps still need hand correction where a stop jumps

Aliases: ramp correction · visual jump · hand-tuned stops

What it is

A blue generated in OKLab looks smooth on the curve. After conversion to sRGB, 600 to 700 suddenly goes purple, as if the tube of paint changed. The algorithm does not know which stretch will hit the gamut wall. Stops that hit have to be nudged by hand. Do not leave the jump in components because the generator reported “uniform”.

Uniform space handles most steps; correction handles a few accident sites.

Why it happens

A straight line in a perceptual space, once outside the display gamut, is clamped. Clamping does not walk the original hue; it often walks toward the nearest displayable colour, so adjacent stops jump in hue angle and may also stop being equal in lightness. Blue and red show it most, because high-chroma mid-to-deep stops leave gamut first. Automatic methods (gamut compression, lowering C until in-gamut) reduce jumps, but compression parameters are global: saving 700 may wash 400 out. Local jumps still want a C or h edit on that stop, then a check that neighbours were not dragged with it.

The aim of a hand correction is to get the jump below “looks like another hue”, not to throw the algorithm away. After the edit, the whole column still has to be checked for evenness, so that fixing 700 does not break 800.

Studying it

Plot the generated column and the clamped column in ab or in hue angle, and mark spikes in adjacent Δh and ΔE. Independent variables: generation space, destination gamut, clamp versus compress. Dependent variables: spike location, whether observers report a “colour change” on that pair.

People who did not generate the ramp, looking only at adjacent pairs, are more sensitive than a view of the whole curve.

Where it stops holding

  • A jump invisible on a wide-gamut display still jumps on an sRGB target; correct against the narrowest shipping gamut.
  • Neutral greys almost never hit the wall; spend correction budget on high-C hues.
  • Unlimited hand-twisting wrecks evenness. Cap how far a stop may move; beyond that, go back to generation parameters instead of twisting further.

Applying it

  • After generation, lay each hue’s column out in the target gamut and circle adjacent pairs that hue-shift or stick in lightness.
  • Edit only circled stops; prefer cutting C to keep h; inspect neighbours immediately.
  • Record corrections in the table, not only in someone’s file, or the next regeneration will wipe them.
  • How to check: regenerate once and diff the corrected stops. Jumps that come back were never in the pipeline.

Related

  • Same group: F5.13.1 How many stops a scale has trades fine control against upkeep · F5.13.2 Name stops with index numbers, not semantic words, so meaning does not drift across versions · F5.13.4 Once a scale is shipped, changing how many stops it has ripples through every referencing component
  • Nearby: F5.01 Colour models and colour spaces · F5.09 Perceptual requirements of palettes
  • Search terms: gamut clipping · colour ramp · hue shift

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/F5.13.3