filmic v4 on the way

I’m not set on the brightness name. It’s sort of another flavor of contrast, in the sense of the paper grade, but I can’t find a proper way to name it. Hardness perhaps ?

Coming up with a good name for the setting is definitely tricky. “Simulated paper grade” seems like the most descriptive but assumes the user is familiar with darkroom printing. Hardness seems like a decent option, a vague maybe but that might inspire the user to read the tooltip :slight_smile:. “Tonal range” or something like that might work too.

Wait so why is filmic itself doing the highlight reconstruction? Why couldn’t it just use data from a different highlight reconstruction method as the input?

Based on my testing with Filmulator using the RawTherapee-derived color propagation highlight reconstruction, you shouldn’t need to end up with the massive desaturated-to-gray area of the sky that you got.

(though it does need some processing, like impulse NR, to kill the phase detect pixels in the clipped area)

Because the highlights clipping threshold is derivated from filmic white bound, and because the whole reconstruction method is deepling inspired by film highlights blooming.

Clipped highlights should be achromatic, there is no other way around. White is supposed to be achromatic by definition.

Coloring highlights makes no sense, cyan clouds make no sense and are ugly, and any RGB space you pick has a zero saturation available in gamut at 100% luminance. So, coloring highlights is how you create out-of-gamut non-data.

Achromatic is what clipped highlights should ultimately look like, the only choice you get is the stiffness of the gradient to achromatic.

1 Like

The cyan clouds I admit I didn’t spend any time massaging away (I’d simply apply less negative exposure comp to hide it) but the idea that “coloring highlights makes no sense”…

Clipped highlights turning gray but retaining luminance information is what makes no sense to me and looks ugly.

Maybe it’s just a matter of opinion. Or a matter of perspective?

In Filmulator, highlight reconstruction is something done to fix bad data and make it represent the original scene more accurately. Only once I have a more complete depiction of the original scene, then the film simulation runs, changing the tone response and applying some tonemapping to style the image.

I don’t see why the highlight reconstruction should be something performed during the stylistic transformation of the image.

I will agree to that if you can find me a screen that can display actual blue at 100% luminance. Medium white is white thus achromatic. Whatever color you have in highlights is a by-product of some gamut-clipping artifact. You might be used to it or even like it, but it is wrong nonetheless, and I would actually be interested to see how that blue compares to the original scene chromaticity.

The grey vs. colorful reconstruction is parametric in my algo, so you can choose which reconstruction strategy you want to favor, but in this case, choosing the colorful one yields magenta highlights because of clipping + white balance (of course, there is still the option of clipping the whole pixed if any channel is clipped, so you avoid magenta in there, but that limits the reconstructing power too).

Same here, highlights recovery happens before tonemapping (in the same module, but still before). The difference is we don’t necessarily try to recover the original scene, but rather to blend clipped and valid areas in a more subtle way. So, in that regard, it makes sense to bound the clipping threshold to the right bound of the dynamic range.

Filmulator tries really hard not to clip hard (i.e. allow things to hit zero or full white), so what it gives you is an attenuation of chromaticity as you approach pure white. The closer you get to white, the less saturated it gets, in a way I prefer by default, though it can be tweaked.

In this case, actually, the magenta was phase detect pixels being wonky, not normal highlight clipping. So maybe if those were handled better, you wouldn’t have noticed the magenta and reacted by desaturating it as heavily as you did.

Instead of trying to desaturate them, I used RawTherapee’s impulse noise reduction to totally get rid of them in post.

The magenta highlights happen with Bayer CFA too and disappear on X-Trans and Bayer alike if you disable the white balance at all. I don’t have such patterns in dt on the X-Trans image anyway. This is solely on the WB factors, that mute the green channel a lot.

Same here.

Hmm, my experience is that magenta highlights happen:

  • when the actual sensor saturation point is lower than the white point used to clip the raw data (LibRaw doesn’t give per-ISO white points)
  • when phase detect pixels throw a wrench into things
  • when purple fringing influences color propagation

When none of those three are present, I never get magenta highlights, even with white balance.

Here is color propagation method in RT and nothing else. Settings were selected to eliminate blue tree fringing.


_DSF9414.RAF.pp3 (11.7 KB)

It is sublime for the blue skies, but awful for the cyan clouds and building highlights. View those at 100%. I don’t know if RT has a sat/luma curve that allows you to just desaturate the cyan out of those clouds? If not, then I would wish to export two different versions, and combine them together with masks.

Aurelien’s demonstration looks to strike a balance between the two. Nicer blending, cloud (highlight) colour, and no blue tree fringing, at the expense of some blue sky.

I wonder how highlight restoration and / or roll off would differ for those who view and work on images in HDR.

1 Like

It all about your expectations: filmic tries to bringt the information captured by the sensor - or more precise in the linear pixelpipe - in a range that can be displayed. It isn’t intended to add information that wasn’t available.
So this is a different approach and far away from correcting bad colors. If you want to do this, you have to do it yourself earlier in the pipe using the appropriate modules.
Don’t expect filmic to be magic

That looks very filmic!

Overall impression after playing with it yesterday evening and this morning: Very nice and it is an overall improvement compared to the previous version, which wasn’t bad to begin with.

A lot has been said already in the above replies, so I’m not going to repeat those.

I am going to mention the extreme luminance saturation slider: The de-/resaturation handling is much, much better in this version.

One, minor, interface related “issue”: Shouldn’t the reconstruction and look tab change places?

scene and look are the 2 that will be used most. The reconstruction one occasionally and the other 2, once set (be it for specifics via presets), will not be used at all or too often. The tab order should reflect that in my opinion.

As always, just my 2c.

Anyway: Thanks Aurelien, for improving this one!

1 Like

The tabs are organized in the order they should be used, given the order in which operations are applied. The logic is not in the most used first, less used last (except for the options). It’s easier to bypass one less used tab and go to the next, than to remember which comes when, if you don’t know the underlying code.

3 Likes

Actually, doing magic using this method should be possible by making the reconstruction process iterative, so we propagate the gradients from near to near at each iteration for each wavelet detail scale. However, if we go this way, you can kiss your realtime preview rendering goodbye.

A crystal clear reason why they are the way they are and the given logic is sound.

I should have known you had a good reason to do it this way :blush:

@anon41087856 Two questions:

  1. Would I neeed to turn off the Highlight reconstruction module when I want to use this?
  2. Since Filmic is quite late in the pipeline, a few modules would not benefit from the recovered highlights. In particular, how well does this work in terms of denoising?

Please enlighten me if my questions are nonsense.

If you want to recover some texture, yes. But for those hardcore cases where a large area is blown, and there is no hope, and/or highlights are made magenta, you may keep the highlight reconstruction in clipping mode to help filmic. But be aware you will not get the details back.

Actually, it’s the inverse: you want to reconstruct a denoised image, otherwise you might end up copying the noise and chromatic aberrations from one channel onto the others. Clipped pixels are not data, so it’s dangerous more than anything to let earlier modules play with these parts. They should ideally be discarded entirely by early processing steps.

Today’s version adds an extra step of reconstruction (in tab “options” → “enable high quality reconstruction”). It’s basically a second wavelet reconstruction but over ratios (RGB / norm), that helps a bit more with magenta highlights and fringes. Highlights should be whiter with a softer transition. However, it adds a 10% performance penalty.

1 Like