Looking at the DNG SDK (v1.4), I found that the exposure operation is implemented as a 1D function, with a small non-linearity in the very low part of the dynamic range for positive exposure values, and a significant non-linearity in the high part of the dynamic range. This can be seen in the DNG SDK at
In fact, for positive exposure values, while the operation is linear (with a small offset) for values higher than some small threshold (
fBlack + fRadius).
However, for lower values, the operation is quadratic.
For negative exposure values, the lower part of the dynamic range (up to 0.25) is handled linearly, the highlights are handled with a quadratic function.
My question, is what's the reason for that non-linearity, and how important is it for the final result.
(I'm asking about the reasoning behind the decision to perform a non-linear operation for exposure.)