When it comes to neutralising the orange mask in practice, it’s important to note that printing density is metameric to a range of color negative stocks intended for their particular print medium. What this means is every stock designed for a particular print medium (assuming effective processing) will result in the same printing densities. The only relevant component that differs across color negative stocks within a printing system is the specific printing densities of D-min for each stock. D-min will have different printing densities for each stock.
If you have a scanner which achieves printing spectral responsivities. All you have to do is capture
D-min then subtract it. So let’s say D-min for the positive has 10-bit code values of R-22 G-60 B-87. Okay so just subtract 22 from every code value in the red channel, 60 from every code value in the green channel, and 87 from every code value in the blue channel, then offset all densities above D-min so the lowest density sits with enough room above 0 IRE to avoid potential clipping. Motion picture scanners typically encode a printing density of 0.000 above D-min at a code value of 95. Repeat this process for each stock and build an ICC profile for each transform.
This can only be achieved linearly if you have achieved printing spectral responsivities with your scanner. If you haven’t, you will have to deal with non-linear interpolation. A simple elegant offset won’t cut it.
Published characteristic curves for various color negatives are typically measured in status m density. These sensitometric tests are typically using Kodak supplied control strips containing various neutral grey patches across the entire dynamic range for a given stock. The reason why the blue channel is capturing the most density, then the green channel, then the red channel is because that is an inverted representation of the orange mask for that particular color negative. And if you recall what I said above, the goal is to subtract D-min. Representing that visually on a characteristic curve would be to offset all densities linearly until they are the same density. Because of course in order to achieve a perfect grey scale, all channel densities / code values need to be identical per patch.
Okay if we try that for status m density, this is the result.
As you can see, the problem is that because the dye density is not represented proportionately, a non-linear transformation will be required to neutralise every grey patch.
Why does this occur?
Like printing density and your scanner density, status m density has it’s own set of spectral responsivities. The peak spectral response of the red channel for status m sits around 640nm. For an example, the peak spectral dye absorption for the cyan dye layer of Kodak Vision3 stocks typical sits around 690nm. This is why if you look at the characteristic curve shown above for 200T, the red channel is not perfectly perpendicular with the green and blue channels, it has a lower status m density because status m is not effectively seeing the peak cyan dye absorption.
Here’s a visual representation of what that looks like. The dotted spectral responsivities represent status m, the streaked spectral responsivities represent printing density, and the black spectra represents the spectral dye absorption of 200T including the orange mask. Each hump in the 200T curve represents the individual yellow, magenta, and cyan dyes. Everything is tabulated in 10nm increments.
What do you notice? As you can see the cyan dye absorbs most light around 690nm, but the status m spectral response for the red channel is around 640nm. Compared to the printing density spectral response for the red channel which is right dead on 690nm.
If one were to create a characteristic curve in printing density, this is what you’d see for every grey patch.
Each underlying dye density is represented proportionately. They are perpendicular to one another. Now just subtract D-min via a simple offset, and you’ve achieved a balanced representation of that color negative.