Skip to content

White Limiting

flowchart LR
  A("ACES 
  RGB 
  Input") --> 
  B[ACES 
  to 
  JMh] --> 
  C["Tonescale 
  (J Only)"] --> 
  D["Chroma 
  Compression 
  (M Only)"] --> 
  E["Gamut 
  Compression 
  (J & M)"] --> 
  H["White
  Limiting"] --> 
  F["Display 
  Encoding"] --> 
  G(Display 
  RGB 
  Output);
  style H stroke-width:4px

When a device is calibrated to a white point chromaticity different from the chromaticity of the creative white, an issue can arise from the steps required to make encode the RGB values such that when sent to the display, the intended colorimetry is produced.

For example, in order to produce an ACES white (~D60) on a display device calibrated to D65, the red channel must be higher than the red channel will be higher than green and blue in order to compensate for the "cooler" D65 white. Without white limiting, as a neutral value approaches the device maximum, the red channel will "hit the roof" first and clip, resulting in a chromaticity shift as the green and blue channels continue to increase.

To avoid a chromaticity shift as channels clip at different points, a slight scale factor is applied to all three channels to reduce the largest channel to "hit the roof" smoothly.

[Placeholder: Example graphs to visualize the behavior with and without the white limiting step applied.]