Improving clipping threshold selection UI

Monochromatic LEDs are the worst. Most of modern stage-lighting is evil.

So. Back from holidays, I was able to look a bit more into my clipping usability issues and found a couple of things.

I did say that I have a camera that didn’t cause problems where I had to change the white point setting, right? Wrong. It does so, sometimes, and it was probably what was driving me mad.

I exhibited a couple of examples since then. This one is for one channel of the RGBG matrix (I think that’s blue, don’t quote me on that, but the clipping point is the same on all channels) that is clearly saturated a good ~15% below the advertised white level:

image

This completely explains why I had some shots where the clipping mask in the “highlight reconstruction module” was randomly black despite obvious clipping, and I had to tweak the clipping threshold for it to be correct again. I’m not sure what causes this - I could reproduce it reliably at home with ISO100 but not for other ISO values, and I have several existing shots that exhibit a clipping point that’s either much higher than the advertised value or much lower.

I’m assuming Canon does something on the 550D that’s too clever for their own good, but I’m not sure exactly what — and I will probably never know.

My current take after playing a bit is that:

  • Either Filmic or raw higlight reconstruction should work now that I know that sometimes the white point is off — that makes me much more confident in using these tools.
  • For complex cases I played with color balance rgb with a mask so that I can give the tint and brightness I want to the clipped areas — I like it : it’s a bit clunky but is much more controllable than filmic.

As some of you fine folk said earlier reconstruction is a last ditch effort for when I messed up when exposing the scene but still want to salvage the shot, but it’s nice to have options! :smiley:

I think at some point I will revisit adding options to the UI to make these cases easier to navigate, but I need to figure out a nicer way to use existing tools first without cluttering everything!

1 Like

I came across this post… I think DT usually uses the same value per channel but Canon and maybe others don’t … Might be a bit of this that you are experiencing…

Also they vary it with iso and that might also not be captured by DT … you would have to check a few files…

https://www.cloudynights.com/topic/882804-variable-white-clipping-levels-in-a-canon-600dt3i/

If what you show in the image are the values for one channel of the raw file, then no, it doesn’t explain anything in what happens in filmic.
The filmic “threshold” value is relative to the filmic white reference as stated in the manual.

Just try with a correctly exposed image (no clipped highlights): your “clipping mask” will change for a given threshold when you change the filmic white reference or the value of the exposure (in the exposure module.
Too much has happened between raw black and white point and filmic to establish such a link as you make.

Otoh, if your “raw black/white points” are off, you should apply a correction in that module, as that’s what the highlight reconstruction module uses to decide what to correct. As black and white points should be fixed for a given camera/ISO combination, presets are your friends here. (even if dt changes the defaults for your case, that isn’t a problem).

@priort : in that excerpt you show, I noticed that the white points vary per channel, but by less than 1%. Is that really enough to bother with setting white points per channel? (black point is different, but dt already has 4 black point values).

For the 550D camera, dt uses the white point value from rawspeed. Rawspeed has a single value for the white point:

            <Sensor black="2048" white="15831"/>

But I dont think this is the correct approach/value for low ISO. Other canon cameras with a similar sensor use a different white point when the ISO is low. See, 600D:

            <Sensor black="2026" white="13584" iso_min="0" iso_max="199"/>

RawTherapee uses a similar approach with different values for some of the weird ISO steps

            { "iso": [ 100, 125 ], "levels": 13480 }, // typical 13584
            { "iso": [ 160, 320, 640, 1250, 2500 ], "levels": 12550 }, // typical 12650
            { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 5000, 6400, 12800 ], "levels": 15200 } // typical 15304

In summary, the white point is incorrect and the HR module will yield incorrect processing. Your options:

  1. Submit an Issue or a PR in Rawspeed with the correct white values per ISO. You can likely copy/paste the exact line from the 600D section. After merging, then dt will use the correct value for future users too.
  2. Since dt 4.4, you can now create auto applied presets based on different criteria to most modules. Create a preset in the Raw Black/White Point module that changes the white point value for that camera and that ISO. The 13584 seems correct.

Cool, thanks @g-man and @priort for the links! I was expecting much less guesswork on raw processing for such an old sensor, and I definitely wasn’t aware of the differences between RawTherapee and Darktable/rawspeed. The presets sounds like a doable workaround even if it’s not very user-friendly, so I think I’m going to try and do that.

@rvietor Everything you’re saying is correct — now I understand this a bit better after this thread!