rebooting color balance

The color picker gets you the average luminance. There is no rule saying that it should be your fulcrum, especially since scene-referred images tend to unbalance the histogram heavily towards highlights. In display-referred, the average of the image is really close to middle-grey. In scene-referred, regions 4 EV above middle-grey range around 400%, so the arithmetic mean will be overly sensitive to them. Maybe we should do a mean of the log(luminance), but there is no quick way to implement it in dt.

I have tested both on similar areas (areas, not the full image), I get the same results ± 15%. But don’t forget colorbalance RGB applies the contrast on the luminance (Y) and so the color picker takes an average luminance reading, while colorbalance legacy applies the contrast on separate RGB channels, so the color picker takes the average of all RGB channels, which may be biased toward low values for regions that have a uniform color (so only 1 or 2 channels will have really high values).

1 Like

Perhaps the “contrast grey fulcrum” slider should not be constrained to 100% only then ?

Waiting for a tutorial video…

Again, the problem is not the value of the average, but it’s connection to a decent fulcrum point. Nothing says fulcrum should or has to be the average. The fulcrum should be close to middle grey, and 100% is SDR white.

Maybe offtopic here but, I have found that you get very nice natural contrast when you turn on an instance of color balance over the filmic in multiply blend mode. So around 80% opacity.

Other than exposure, I didn’t make any other changes.

Without color balance:

Colorbalace with 80% multiply blend mode (above filmic):

5 Likes

Nothing should ever go between filmic and output color profile. The display-referred remnants that sit there should be progressively replaced by scene-referred counterparts, the ultimate goal is to have filmic probe the output color profile to measure the gamut volume and remap it straight there with knowledge of the linear original.

This is clear. I am just experimenting. I am interested in the effect that multiply blend mode has for contrast. I could achieve this contrast in other ways, but it is much more tedious. I am amazed at the simplicity of the method. There is something behind it.

The question is, how could you achieve this without breaking the scene-referred process?

2 Likes

I guess, you could use color balance rgb with global chroma at -100% (or any setting that completely desaturates the image) with multiply blend mode.
This way, the R, G, and B channels will all be multiplied with the same value, so you’ll have basically a pixel-dependent exposure compensation :slight_smile:

9 Likes

Thanks for the tip! That works. I’m too dumb for the math behind it but are you sure that using the multiply blend mody before the filmic doesn’t mess up the scene-reffered process? That was the reason why I always did everything that had to do with blend modes after the filmic in display-reffered part.

But otherwise, this works fine:

before:

multoply_contrast3

after:

multoply_contrast4

The nice thing about it is that with opacity, blend fulcum, contrast, contrast fulcum and luminance sliders you can still adjust everything afterwards nicely.

For the color change you can use the second instance of the module.

This also reduces my use of other modules considerably.

5 Likes

Blend modes that make assumptions on middle gray = 0.5 or that clip the data to be in the [0,1] interval are the ones that you shouldn’t use in the scene-referred part of the pipeline. Multiply should be fine.

2 Likes

I’ve tried too what @rawfiner proposes and the effect is nice. I’ve used it in play raw with the monkey
In the user manual (blend-modes) it’s shown what the multiply blending mode does in the display and scene referred workflow.

“Multiply the pixel values of the input and output together. When blending in display-referred color spaces, pixel values are between 0 and 1.0, the final output will be clamped and will always be darker. When blending in the “RGB (scene)” color space, this value is further multiplied by a value proportional to the “blend fulcrum”. In this case, values may be greater than 1.0 and therefore brighten the base image. This may have other side-effects, such as updating the white point in the filmic module.”

Where do you get contrast fulcrum?

Mask tab of the module…recently added

multiply blending mode (from RGB scene blending mode list) will just make the data non-linear, but that’s not an issue as long as we don’t blur the image after that.
Take a look at filmic rgb’s tooltip: “input: linear or non-linear”

As I understand the multiply blend mode (in scene) is similar as applying a quadratic contrast curve. The fulcrum point would be the pivot point.
Values below that point would be less than “1” so multiplying by the same value we get a lower value. And opposite to that, values over fulcrum we get higher values.

In display workflow the values are below “1” so we always get a darker picture. But this don’t happen in scene workflow.

One curiosity I have about the new module is the color correction is four ways (offset / lift / power / gain), while the old module was three ways (slope / offset / power or lift / gamma / gain).
Three parameters are associated to shadows / midtones / highlights, so what about the fourth ?

Thanks for the clarification. So that’s why lowpass module is before color balance. In its output it says “special, lab, scene-referred”. Does that mean, to stay in scene-reffered workspace, that you should then use blend modes from the “RGB (scene)” blend color space?

Given this statement from the manual I think that would make sense

Note: When using blend modes on any module, you should be aware that many of the blend modes are optimized for display-referred space and assume a mid-gray value of 50%. For the linear scene-referred space, stick with blend modes based on arithmetic operations (addition, multiplication, division, subtraction, average), on maximum/minimum comparisons (screen) or on channel separations (hue, color, chroma, etc.).

3 Likes

However, there are some blend modes available to both ‘RGB (display)’ and ‘RGB (scene)’: Addition, Subtract, Multiply, Difference, Average, Lightness, Chroma
Is there any difference between the blend modes familiar to both?

When in scene-referred part of pipeline (pre-filmic) we obviously stick to ‘RGB (scene)’ blend modes. But how about after filmic? Eg. modules like Local Contrast, should we use ‘RGB (display)’ for those? And what if we move a scene module such as Exposure after Filmic to perform a Multiply blend. Does it matter whether that blend is done in ‘RGB (display)’ or ‘RGB (scene)’?

This also leads to parametric mask questions. Pre-Filmic, I guess middle grey of ‘g’ slider is 18. But after Filmic, is middle grey of ‘g’ slider now 50?

Well try this one…take the rgb tone curve…don’t do anything …blend it on an image in display referred subtract and scene referred subtract…maybe try around 10%…the effect in display is way stronger…so even subtract does not equal subtract. I think the math is a bit different in the way it is applied. Someone familiar with the code or the nuance of this could comment its just an obervation…

1 Like