Log profile : fix the luma estimation in the auto-optimizer. #1765
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The luma is the energy of the light, computed from the RGB trichromatic signal.
This implies knowing in which RGB space we are, but this module is applied before
the input color profile, so it is a medium-relative RGB un-normalized space.
Previously, we assumed to be in ProPhotoRGB because it
is the largest RGB space. While it gives fair results most of the time, some sensors
behave quite poorly, especially those having a strong green cast in the shadows
at high ISO, because the G channel weighs for 72 % in the luma computation.
As a less precise, but more robust, estimator of the luma, we now take the max of the RGB
channels for each sample (grey, black, white). This doesn't always remap the L values (in Lab)
between [17; 96] (the black is sometimes in [0; 12]), but avoids silly remappings
(black = [25; 60]) that happened with the previous approach.