What I call "signal-processing" here are all the module intended to
clean the data and turn an (always) damaged picture into what it is
supposed to look like in theory. That is :

 1. reconstructing missing parts (clipped highlights)
 2. recovering the dynamic range (tonemapping)
 3. reconstructing the damaged parts (denoising)
 4. reverting the optical artefacts (vignette, CA, distorsion),
 5. reverting the color inaccuracies (white balance and ICC color
    correction).

You think you can waltz around modules and do the retouch in the order
you like. Well, you can, but that is asking for trouble.

Take 2 examples :

1. Open a noisy image, turn on the laplacian local contrast, save a
snapshot, then enable a heavy denoising, and compare the 2 outputs : in
some case, the local contrast output will look harsher with denoising.
That means you should fix the noise before setting the local contrast.

2. On a portrait photo done with a camera for which you have an enhanced
matrix (basecurve = OFF), tweak the exposure until you get a nice
contrast (Lmax = 100, Lmin = 0). Then, in the color balance, tweak the
gamma factor to get the L_average on the face = 50. Save the snapshot.
Now, disable the color balance, tweak the exposure again to get a dull
image (fix Lmax = 96, Lmin = 18). Then, in the color balance, tweak the
gain factor to get Lmax = 100, the lift factor to get Lmin = 0 and the
gamma factor to get L_average on the face = 50. Which skin tones look
the more natural and which has less out-of-gamut issues ? (spoiler alert
: #2)

Nobody will think of crushing the contrast first in the exposure module,
then bring it up later in the pixelpipe, in order to get better colors,
until he has seen the math going on inside… In fact, the autoexposure
tool even lures you into doing the opposite.

Because darktable is modular by nature, modules are fully independant
and don't share data, but that leads to a fair amount of inconsistency.
You can tweak the contrast and lightness in 8 different modules
(exposure, contrast/saturation/lightness, tone curve, base curve, zone
system, color balance, unbreak input profile, levels) and people may
think they are equivalent, but they are not. I believe this
inconsistency should be adressed from the UI.

In order to get the color correction right, you need to input a
well-behaved, dull-looking, image. So I want to put all the modules
doing that (before the color correction) in a #1 tab, and say to the
user : at the end of this tab, your image should look dull (not
beautiful). If this is done, proceed to tab #2 and never go back.

Between tabs #1 and #2 -> correct the colors on (now) valid data.

In the tab #2, I want to put all the cleaning modules that can affect
all upcoming local contrast ones, and say to the user : at the end of
this tab, your image should look clean. If this is done, proceed to tab
#3 and never go back.

After tab #2, the image should be clean so do whatever you want and
enjoy your artistic life. And more importantly, if tabs/steps #1 and #2
are done properly, you can copy/paste the editing done in the following
tabs from one picture to the other (almost) without any adjustement. So
you gain in reproductibility.

If you want your daily-needed modules close to you, you will still have
the favorite tab. Currently, I bet they are mostly redundant with the
basic modules for most of us.

As for high-pass and sharpen modules, the maths inside are exactly the
same : they are an unsharp masking
<https://en.wikipedia.org/wiki/Unsharp_masking>. The sharpen module has
just an hard-set overlay blending mode whereas the high-pass lets you
choose.

What do you think ?

Aurélien.

Le 09/10/2018 à 15:11, Jason Polak a écrit :
>>   * in/out color profiles are stored in the color tabs, whereas they are
>>     "basic" in the sense they are needed from technical requirements and
>>     always on,
> Yes they are needed, but I wouldn't want them cluttering up the 'basic'
> group. If they have to be modified, it's likely to be not very often and
> then they can be found in the color group because they have to do with
> color (at least, not coming from an image processing background, it
> makes sense for them to be there).
>
>>   * signal-processing modules are mixed with creative ones
> Do you mean highpass and lowpass? If so, I don't think it's really
> strange. The highpass and lowpass modules create a sort of more advanced
> mask that could be used for sharpening, but they could also be used for
> more creative effects by using different blend modes. Regular sharpening
> and equalizer seem like more basic corrective modules (sharpening is
> typically because of anti-aliasing filters or softer lenses, equalizer
> for microconstrast-to-macroconstrast adjustments.
>
> The creative group consists of modules that provide a little more
> unusual effects that you might not really need for most shots but can
> often radically alter the look of them, or else things like framing and
> watermark.
>
>>   * you get sharpen in enhancements and high-pass in effects, but they
>>     do exactly the same thing
> Sharpening and highpass don't do exactly the same thing. In order for
> the highpass module to actually do something like sharpening, you have
> to combine its output with the image using a blend mode. If you use a
> different blend mode, the result wouldn't just be what you might call
> sharpening. Just try 'difference' blend mode for instance. You can
> create funny effects with it that might actually have an occasional use.
>
>>   * same for local-contrast and wavelet equalizer
> I agree that this could be confusing, but here is some logic to it as
> well. The local constrast module in 'local laplacian filter' mode has
> sliders for how it operates on shadows, highlights, and midtones. It is
> supposed to enhance by operating on these three brightness areas of an
> image, whereas the equalizer more emphasizes the whole image all at once.
>
>>   * same for the crop/flip and the perspective correction.
> Perspective correction is supposed to correct converging lines caused by
> the placement of the sensor plane away from the plane of converging
> lines. Crop isn't supposed to correct for anything. It's just taking
> part of the image.
>
>> I mean, even with my own workflow set apart, I just think it would make
>> sense to separate technical and creative modules completely. And by
>> technical, I mean everything related to image reconstruction and
>> normalization (things you would do in Matlab). Especially since the
>> technical modules mostly come early in the pipe, it would make sense to
>> have them grouped explicitely so that you set them first. 
> Look, I don't think the arrangement of modules is 100% perfect, and
> certainly people will have different preferences. But I am also not sure
> why modules should be separated based on where they are in the
> pixelpipe. The pixelpipe is just the order of how the modules are
> applied and there are technical reasons for the pipe to be in a fixed
> order.
>
> For example, in an image I processed today, 'defringe' comes before
> 'equalizer' in the pixelpipe. But fringing is one of the last things I
> think about when editing because I care a lot more about general
> composition and look and feel.
>
> Jason
> ___________________________________________________________________________
> 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