Shadow Rolloff Explained

Excellent post.
There are many issues in pipelines if you have negative numbers in the shadow.
You need to know that the negative numbers are not captured by the sensor (how should it). They are produced in the internal camera processing.
The reasoning is that a flat cap black image should be on average 0.0, but it isn’t in the first place. The camera processing calculates an average value and subtracts it from each pixel (this is where the problem arises). It means half of the pixels in the noise floor are negative, and half of them are positive. From a scientific standpoint (vacuum fluctuation), this might be the right thing to do.
But there are a few catches.
I believe it only is sensible if you don’t change the scope of your measurement.
When we take the average, our scope is on a very low spatial frequency, we want that the average is zero. However, to achieve this, we apply an operation on all spatial frequencies (subtracting the same value from each pixel). So we change the scope.
Now in an image we attribute the same importance to each pixel (we trust every pixel), every pixel has the same “confidence” (again the zone of trust, sorry).
But due to the black subtraction, we cannot trust those shadow values anymore.

There are two solutions to this I believe:

  1. Every operation in image processing needs to model a reduction in trust in the shadow (this is what you are doing with the shadow roll-off)
    or
  2. We treat the problem differently and raise our black-cap black level to something slightly positive. Then we do our image processing all the way to the final display rendering, without worrying about negative values. Then on the last step, we account for the black-cap black level.
    This is a common workflow in VFX called pre-flare.

Also, TCAM goes this route, and it works quite good so far. It forces the VFX pre-grade colourist to flare the image so that no negative values are in the VFX plates. Otherwise, the image would look crushed on final output.
In VFX pre-grading you try to put the deepest shadows slightly above 0.0 in display light. If the DRT strictly maps scene 0.0 to display 0.0 the colourist will flare the image correctly.

Option 2 greatly simplifies image processing. There are a few other academic catches with approach 2, like exposure tracking. But in practice this is much easier than option 1).

I guess what I am trying to say is, it is a broader discussion not necessarily isolated to gamut-compression.

4 Likes