Quantifying dynamic Range

Exposure compensation (in camera or in post) does not change the dynamic range:

  • dynamic range expressed in EV is a ratio between darkest and brightest areas;
  • exposure compensation in EV is a multiplication in scene linear space (where recorded signal is linear to the amount of light/number of photons);
  • a ratio doesn’t change when both elements are multiplied by the same factor.

You do need to correct any exposure compensation used for other than artistic reasons to get the correct mid-tones, but that again doesn’t change the scene dynamic range, as long as you apply the same correction to all parts of the scene.

If you want to change the dynamic range of the image, you can use “exposure” with (parametric) masks, or use “tone equaliser”. Or use filmic or sigmoid to map the scene range to the display range.

But “sigmoid”, just like “filmic”, doesn’t “provide” any range; both map what you give it to the range 0…1. They both have a pivot point that is always mapped to “middle gray” and they both provide tools to modify the range that is mapped. Filmic uses direct white and black reference points, sigmoid uses skew and contrast. Different ways to do (more or less) the same thing.

Indeed not a desirable working process. Then again, hoping to use sigmoid as a “drop-in replacement” for filmic might be a bit optimistic. I wouldn’t be surprised at all when sigmoid needs different settings earlier in the pipeline to be really efficient (*). And as it is a different curve, with different trade-offs, you’ll probably never get the exact same result.

(*: The extra controls in filmic do have a function, so simplifying the tonemapping/display conversion step means moving some functionality elsewhere. That’s what I see happening in various other posts about using sigmoid, and it is the reason I’m not in a hurry to use it with an “unstable” version of dt)

3 Likes

Ah yes snow pictures are harder as most of the pixel brightness distribution is centered at what should be brighter parts of the image. Anchoring the curve at middle grey is not aligning super well with that situation.

But for the actual image editing you essentially have two things to normalize in the scene, exposure and dynamic range. I would probably attack this particular image by adjusting the exposure for the wooden parts first. Then adjust the contrast value in sigmoid such that the wood looks “natural”. Probably needs a higher value for a foggy/overcast day like in your case. Use the per channel mode.

I guess the snow should be “blown out” at this point so the next step is to compress the dynamic range down. Try this:

  • Reduce the global contrast using the contrast slider in color balance rgb.
  • Increase or decrease the exposure for an specific area using tone equalizer / masked exposure.

Remember that snow is a bright material during this process!

The last step would be to add character to the snow. Add local contrast with either local contrast or diffuse or sharpen. Making to the brighter areas is a pretty good trick here. I would also make sure to color the darker parts of the snow a bit blueish, avoids the grey feeling @priort talked about.

All of these steps can be done subjectively based on what you like. The tricky part is to not try to fix all aspects at once but rather try to restrict yourself to one operating dimension at a time!

4 Likes

I don’t think that Dynamic Range is a useful measure when editing photos. In general, for SDR images, we want the pixel values to extend from zero (or slightly above) to 1.0 (or slightly below). That is easily measured and achieved, so we have used the full dynamic range, but says nothing more.

A measure I frequently use is Standard Deviation. This is a measure of overall contrast. If pixel values are mostly bunched together, we have low contrast, and SD is low. In the extreme, SD=0. The maximum SD is 0.5, where the contrast is a maximum, eg half the pixels are black and the rest are white.

I generally like the SD to be between 0.16666 and 0.2. Sometimes 0.16666 seems too flat, or 0.2 seems too garish, so there isn’t an “optimum” value that works for all images. But it is a useful measure for checking my edits. It is also useful for automatically determining what S-curve to apply to an image for a “first guess”. [EDIT: I should add that these numbers are for display-referred RGB images, specifically sRGB. Numbers for linear scene-referred images will be different.]

The image of the snowy bridge by @davidvj is:

C:\web\im>%IMG7%magick snowyBridge.jpeg -format "%[fx:standard_deviation]" info:
0.178506
3 Likes

I have downloaded the raw file as a Play Raw for those interested.

4 Likes

Well actually… I could offer a version of the control where you define a white* and black* level as the control points instead of contrast + skew.

  • Close to white 99% white and close to black.

It’s also possible to offer these values in the interface as feedback to the user.

My gut feeling is that this isn’t necessary the right thing to do. I think it’s better to focus on the mid tones of your picture and let the roll-off towards shadows and highlights happen naturally. But that’s my personal opinion so I will keep an eye out on this discussion and see where it takes us.

2 Likes

In post I agree, but when I have a scene with the brightest pixel at -3 EV and I expose +3 EV by changing shutter speed or aperture, I should have added 3 EV of dynamic range because the noise, which defines my lower boundary of DR is absolute and therefore, relative to the scene, 3 EV reduced for the “overexposed” but non-clipping image. I always thought that’s what ettr is all about … what is my misunderstanding?

I like the contrast graph or whatever you call it in the tonemapping tester… :slight_smile:

Can you point me to the ‘tonemapping tester’

Yes, you are right. The captured dynamic range will change in such scenarios. What is independant of the exposure compensation is the dynamic range your sensor could register, so if your scene covers more than that, exposure compensation changes the part of the scene range you capture.

https://jandren-tone-curve-explorer-streamlit-app-xca32q.streamlit.app/

1 Like

Did my little explorer app help anything?

And on a more general note, do you feel like your original concern has been address by now? I do understand the convenience in dragging the two boundaries and define your image from that. But I also don’t feel like that is the way to go in the sigmoid module. But maybe it should be covered a a different point in the workflow!

1 Like

My 2 spänn is that Sigmoid should avoid settings, knobs and geeky feedback as much as possible. It’s really great to have a robust tone mapper that you can basically forget about and instead use the other tools to achieve the image you want.

When/if lots of control, feedback is required and the salmon can be controlled filmic is there.

1 Like

Thanks very much for the app … now I really need time to more fully understand how it all works.
The comparative capability is really interesting … this really gives me more direction in selecting which module to use. Thanks again.

2 Likes