Thank you for RAW sample, it is much easier to understand the problem with file on hands.
This is well known 'pink clouds' problem.
Let's examine small selection on white dress with RawDigger histogram:
Selection area is shown on RawDigger screenshot (gray rectangle):
And here the RAW histogram on selected rectangle:
Green channel 'hits the wall' at 4095 (so, the camera is in 12-bit mode), while Red and Blue are not clipped in RAW data.
Next step: let's apply White Balance coefficients. To show it, we'll switch FRV to 'WB Coefficients mode' in Preferences - White Balance - WB Display mode.
For 'As Shot' White balance, coefficients are 2.66, 1.0 and 1.45 for Red, Green, Blue:
So, on first processing steps Red values to be multiplied to 2.66, so any RAW pixel with red value above 1539 will become large than 4095 (green channel limit).
Blue values to be multiplied to 1.45, so any pixel with blue value above 2824 will move to 'above 4095' (fortunately, very small fraction of white dress pixels are above 2824).
Let's examine small very small selection on white dress in RawDigger again (small gray square on screenshot):
The numbers are min/max/average of raw values in this small selection:
Red channel: average 1657 before WB applied, so after WB coeff of 2.66 it will become 4407.
Green: average 4058, multiplied by 1.0
Blue: average 2730, multiplied by 1.45, so becomes 3958 in average. Maximum value is 3226 (4667 after WB coeff 1.45 applied).
So, average color for this selection is RGB (4407,4058,3968). This is pink(-ish) color, not white.
That's because green channel is limited by camera (this channel is most sensitive in given light), while Red/Blue (not so sensitive) are not limited.
There are two ways to deal with this imbalance:
1) Perform some kind of highlights recovery (so, try to recover limited green channel by correlation with red and blue). This works well for neutral highlights, but not so good for colored highlights.
2) Cut white-balance-corrected values by lowest value of (channel limit * WB coeff for this channel). For given case: cut anything above 4095 (green limit * Green wb coeff /1.0/). This will preserve neutral highligths from colorization and also will simulate camera with equal channel sensitivity.
FRV uses second way, mostly because of speed issues, it it not easy to recover highlights fast.
Thank you for RAW sample, it
Thank you for RAW sample, it is much easier to understand the problem with file on hands.
This is well known 'pink clouds' problem.
Let's examine small selection on white dress with RawDigger histogram:
Selection area is shown on RawDigger screenshot (gray rectangle):
And here the RAW histogram on selected rectangle:
Green channel 'hits the wall' at 4095 (so, the camera is in 12-bit mode), while Red and Blue are not clipped in RAW data.
Next step: let's apply White Balance coefficients. To show it, we'll switch FRV to 'WB Coefficients mode' in Preferences - White Balance - WB Display mode.
For 'As Shot' White balance, coefficients are 2.66, 1.0 and 1.45 for Red, Green, Blue:
So, on first processing steps Red values to be multiplied to 2.66, so any RAW pixel with red value above 1539 will become large than 4095 (green channel limit).
Blue values to be multiplied to 1.45, so any pixel with blue value above 2824 will move to 'above 4095' (fortunately, very small fraction of white dress pixels are above 2824).
Let's examine small very small selection on white dress in RawDigger again (small gray square on screenshot):
The numbers are min/max/average of raw values in this small selection:
Red channel: average 1657 before WB applied, so after WB coeff of 2.66 it will become 4407.
Green: average 4058, multiplied by 1.0
Blue: average 2730, multiplied by 1.45, so becomes 3958 in average. Maximum value is 3226 (4667 after WB coeff 1.45 applied).
So, average color for this selection is RGB (4407,4058,3968). This is pink(-ish) color, not white.
That's because green channel is limited by camera (this channel is most sensitive in given light), while Red/Blue (not so sensitive) are not limited.
There are two ways to deal with this imbalance:
1) Perform some kind of highlights recovery (so, try to recover limited green channel by correlation with red and blue). This works well for neutral highlights, but not so good for colored highlights.
2) Cut white-balance-corrected values by lowest value of (channel limit * WB coeff for this channel). For given case: cut anything above 4095 (green limit * Green wb coeff /1.0/). This will preserve neutral highligths from colorization and also will simulate camera with equal channel sensitivity.
FRV uses second way, mostly because of speed issues, it it not easy to recover highlights fast.
--
Alex Tutubalin/FastRawViewer team