three approaches to AgX sigmoid curve

The shape of the AgX sigmoid curve is relevant. That shape is governed by three parameters: 1] black point, 2] white point and 3] the 0 EV, 18% point. The curve must pass through these three points.
Points 1] and 2] are anchor points. The curve must run between these points. However, an infinite number of paths are possible between these two points, so a third point defines a single, final line: the 0 EV, 18% point.

When you start up AgX default values are present for the black and white points (-10 EV and +6.5 EV). These defaults determine the shape of the curve, of course. The base curve parameters can now be altered.

When you engage the black / white point (or auto tune levels) pickers, the darkest / lightest part of the image are selected. New values for the black and white points are determined and the shape of the curve changes as the anchor points changed. In the recommended workflow section of the manual, this approach is chosen.

When you engage the camera icon, exposure data are read from the exposure module and metadata. Again, new values for the black and white points are determined and the shape of the curve changes again as the anchor points changed. In the recommended workflow section, this approach is not discussed.

So, there are three ways to define the curve, but how they compare? They are not equivalent and so will have a different effect. How to select one?

regards

pieter

1 Like

Try them and use the one that you like most.

The default values come from Blender, and ignore all data and metadata. You could say they are ā€˜fixed heuristic’ params.
The ā€˜camera icon’ is based on metadata (exposure) and heuristics.
The pickers work based on the actual image data (content). I only use this one.

You may still choose to adjust the sliders manually, if they try to preserve a tonal range you don’t care about. For example, you may not care about the deepest shadows, where there’s basically no image data, only noise, but the picker may still push your black relative exposure to -19 EV.

4 Likes

Nope, for a line you need two points, for a curve, the required number of points depends on the function describing the curve. In the case of the curves used for AgX, there’s already a fourth parameter in play: the contrast value…

2 Likes

If I recall correctly the camera icon is based on heuristics Kofa originally planned to trigger upon image import/module activation but it didn’t work out. Some people still liked the ā€œcamera buttonā€ so it was included. I personally also use the auto picker.

Yes. Unfortunately, the pipeline has some limitations and the complete exposure data (in-camera values exposure compensation value, default darktable exposure boost and camera highlight protection underexposure) are not available when the modules are created (AgX cannot read the values determined in exposure). filmic rgb does something similar, but it also cannot read exposure, so it duplicates the code (which has not been updated with the highlight protection enhancements). Therefore, I provided the camera icon: when the module is already visible, exposure settings are fully available.

3 Likes

I defer to kofa as the expert here. I personally use the picker for auto tunes levels and so far without fail it has picked the black and white relative exposure to my satisfaction from raw files. In comparison I found the auto tune pickers in filmic tended to over shoot the white relative exposure and I had to pull it back.

The second picker I use is the pivot target output, but then I adjust this to personal taste to give the brightness I like.

I should also mention I prefer to use the ā€œmaybe-matched-to-sigmoid-defaultā€ preset that kofa offer for testing in another thread. I prefer the extra contrast used in this preset which also increases saturation of the colors.

So for me at least there is only one way I use the module.

1 Like

That is also my experience. I wonder why that is though as I think the picker itself and the output of high/low brightness is the same between AgX and filmic.

1 Like

In my experience it is not the same. Kofa could probably give a definitive answer for this. Also in filmic I know that noise screwed up the the auto tune levels picker so you had to denoise the image before using the auto tune levels picker. I have not yet experienced this problem in AgX. For me AgX has resolved many of the challenges I had with filmic and it tends to give nice colors out of the box like sigmoid, which BTW is another great tone mapper.

1 Like

No, they are quite different, because the modules are different.
filmic rgb works on a norm, a metric derived from the RGB channels, like max RGB, Y luminance, Euclidean norm, power norm. AgX, on the other hand, is channel-based.

1 Like

I meant that the picker itself that derives the values from the images is a darktable-function and not specific to AgX? But maybe I am misremembering that.

This comment may be a bit too critical towards somebody who is potentially not a native speaker. I guess we all know what is meant by ā€œlineā€ here, and at least in German, a ā€œLinieā€ (= line) does not have the strict mathematical meaning but can be any curve drawn e.g. by hand.

Not sure why one needs to get insulting. IMHO, this kind of replies is exactly the reason why newcomers hesitate to post here …

6 Likes

It was not my intent to be insulting.

However, the original post seemed to show a misunderstanding of curves in general, in that you cannot determine an unspecified curve with only three points. (That works for some curves, those with three parameters, but not for AgX. It also doesn’t work for a straight line…). So, any discussion of AgX based on the initial assumption would be flawed.

1 Like

Yes, there is only kind one area picker in darktable, but the data delivered by the picker is used differently, and the parameters it is used for are also different:

  • the picker delivers the following: picked_color, picked_color_min, picked_color_max. These are all RGB triplets.
  • filmic calculates a norm from that data, and uses that to set black and white
  • AgX simply takes min(picked_color_min) as the minimum, and max(picked_color_max) as the maximum. Technically, the AgX sliders have incorrect names, but using channel min and channel max instead of black and white would just overcomplicate things, I think.

The norm is not the same as the value of any of those channels (in most cases).

2 Likes

I agree. The current names are informative to me and the picker does a good job. Better than filmic in my experience.

2 Likes

I have no intention to discuss this any further with you.

2 Likes

If you don’t want to help, why are you taking the time to write something like this?
It seems clear to most people here what is meant, and you’re getting hung up on one word?

What you’re saying here only applies to you (and perhaps a few others). So if you don’t feel like it, then let the people who want to help do so.

1 Like

To understand the line, you have to watch DipDap.

1 Like

Unfortunately not available in my region …

I take La Linea instead :wink:

6 Likes

When a line becomes a curve it’s not always good :slight_smile:

8 Likes