Le mer. 12 déc. 2018 à 09:34, Björn Sozumschein <wilecoyote2...@gmail.com>
a écrit :

> Hi,
>
> that's a really good question! I cannot understand that also, as the
> comments are not very useful unfortunately....
> Is it in some way related to issue
> https://redmine.darktable.org/issues/10704
>
>
It is possible that it is related to this issue indeed, thanks for spoting
that!

rawfiner


> best,
> Bjoern
>
> Am Do., 6. Dez. 2018 um 16:05 Uhr schrieb rawfiner <rawfi...@gmail.com>:
>
>> Hi,
>>
>> Looking at the code of denoise profile, I noticed a few things that seems
>> strange to me concerning the anscombe transform.
>>
>> For wavelet codes, there is a 2x multiplier on B and R channels, while it
>> is not the case for the anscombe transform of non local means:
>>   const float wb[3] = { // twice as many samples in green channel:
>>                         2.0f * piece->pipe->dsc.processed_maximum[0] *
>> d->strength * (in_scale * in_scale), piece->pipe->dsc.processed_maximum[1]
>> * d->strength * (in_scale * in_scale),  2.0f *
>> piece->pipe->dsc.processed_maximum[2] * d->strength * (in_scale * in_scale)
>>
>> Why is there this multiplier? I understand from the comment that it is
>> related to the fact that we have 2 times more green pixels than R or B
>> pixels on a bayer sensor (note that this is not perfectly valid on xtrans
>> sensor). Yet, I do not see the link between this, and the distribution of
>> the poisson noise, and thus of the anscombe transform to be done.
>> In addition, I do not understand why this multiplier is only here in the
>> case of the wavelets process, and not here in the case of the nlmeans
>> process.
>>
>> The second thing I noticed, is that the "processed_maximum" are all equal
>> if highlight reconstruction is activated. Basically, they are equal to the
>> maximum multiplier of the white balance. Thus, the anscombe transform is
>> the same for R and B for instance, even though one may be much more
>> "amplified" than the other.
>> If highlight reconstruction is turned off, the processed_maximum values
>> are equal to the white balance multipliers, so we don't get this effect.
>> On images were some white balance multipliers are very different, turning
>> off the highlight reconstruction results in a big change in the denoising
>> (more or less equivalent to a big reduction of the force factor).
>> I guess we should use piece->pipe->dsc.temperature.coeffs instead of
>> piece->pipe->dsc.processed_maximum in this code.
>>
>> Doing this correction will allow to "copy-paste" more reliably the
>> settings from one image to another, even across images that have very
>> different white balance.
>> Otherwise, a setting which works well on a picture with a white balance
>> of (1,1,1) for instance may not work well on a picture with a white balance
>> of (1, 1, 2) for instance.
>> Though, correcting this will break backward compatibility.
>>
>> What do you think about it?
>> Thanks! :-)
>> rawfiner
>>
>>
>> ___________________________________________________________________________
>> darktable developer mailing list to unsubscribe send a mail to
>> darktable-dev+unsubscr...@lists.darktable.org
>>
>

___________________________________________________________________________
darktable developer mailing list
to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org

Reply via email to