Thanks for the feedback, Aurélien!
1. I used this formula for the vibrance:
http://redqueengraphics.com/category/color-adjustments/ (it can also be
computed together with saturation).
I changed it to your proposed formula, to be consistent with other
software. It's also cleaner to have the two formulas in one line
Normally this adds a minimal computational complexity (a power operation
for every pixel), so it shouldn't have an impact on processing speed. I can
optimize this a bit (if only the saturation is changed, but not the
vibrance), but I don't think it would have any measurable speed gain.
Instead of:
if(saturation OR vibrance) pixel=Y+saturation*(pixel-Y)^vibrance
I could use:
if(saturation)
if(vibrance) pixel=Y+saturation*(pixel-Y)^vibrance
else pixel=Y+saturation*(pixel-Y)
2. Yep, I imagine that Basic adjustments is difficult to program (as it's
basically several filters in one tool) and it brakes the one tool-one
function philosophy, but IMHO it's a great help from a usability point of
view. I missed it a lot when switched from AftershotPro to darktable.
On Thu, Oct 10, 2019 at 10:06 PM Aurélien Pierre <[email protected]>
wrote:
> Hi,
>
> 1. Vibrance is supposed to be *{ RGB } = Y + saturation * ( { RGB } - Y
> )^vibrance*, where Y is the luminance channel from XYZ space, and { RGB }
> a pixel vector. This way, you perform both operations at once. Also, using
> (R + G + B) / 3 instead of Y is generally not a good idea since it has no
> perceptual background (R = G = B values does not equal visual grey in every
> RGB space, RGB is just a random vector space until a proper profile is
> applied).
>
> 2. The basic adjustments module is a double edged sword : yes, it's nice
> to have a unified *UI* to quickely set-up pictures, but it's not just an
> UI, it's also an image operation that gathers at once several operations
> that need to be done at different places of the pixel pipe to get proper
> results :
>
> - exposure is a scene-referred operations that needs to be done
> preferable before input coulour profile, since input matrices are optimized
> approximations for mid-tones and skin-tones, in order to put the RGB values
> in this sweet spot before applying the profile
> - saturation needs to happen after the input matrice, when the Y
> channel is defined (actually, input matrices only profile the conversion
> from camera RGB to XYZ),
> - contrast needs to happen after any frequency filter.
>
> TL;DR the model/view/controller architecture got violated here.
>
> Cheers,
>
> Aurélien.
> Le 10/10/2019 à 21:21, Keresztes Barna a écrit :
>
> On Thu, Oct 10, 2019 at 8:58 PM parafin <[email protected]> wrote:
>
>> Is it any different from velvia iop in darktable?
>>
>
> Yes, it affects colors less than Velvia. It doesn't intend to emulate
> film.
> The results of this slider are very similar to the standalone Vibrance
> tool.
> There are some important differences:
> - The formula I use is different. It is run earlier in the pipeline, in
> the RGB color space (Vibrance tool runs on Lab)
> - This slider allows negative vibrance settings (so you can fade the
> colors without totally desaturating them)
> - it's a part of the Basic Adjustments tool, it can be used easily to set
> the color "amplitude" in the image together with the saturation slider.
> - It has a larger amplitude, so the results are more visible (sometimes
> the original Vibrance tool is barely perceptible).
>
> ___________________________________________________________________________
> darktable developer mailing list to unsubscribe send a mail to
> [email protected]
>
>
___________________________________________________________________________
darktable developer mailing list
to unsubscribe send a mail to [email protected]