Here is another idea: If we apply contrast in the scene-linear domain using a pivoted power function with linear extension, and use a “pure” michaelis-menten equation with no exponent, you can almost get reasonably consistent results from 108-4000 nits peak brightness with a constant contrast setting.
I will second Thomas’ comments, please do keep them coming.
Something I have been wondering about, is if only using peak output is appropriate for setting the parameters. I think we need to include the surround/adopting field luminance as one of the key parameters to allow us to understand how to bridge between dim and dark surrounds and to try rationalise the mid-grey luminance between the different outputs.
In a dark surround we assume the average picture luminance is scaled based upon the image luminance so we could make an assumption of ‘10%’ of peak for SDR when switching to Rec 1886 Output we switch our anchoring to be based on the reference surround value which by magic is also 10% of peak luminance. But when migrating to HDR this might break, so obviously we need to be a little more involved for choosing the mapping function, but this is just an off the cuff thought for consideration.
Yes please do keep those points coming. It is an interesting discussion to be had.
I’ll add my own grain of salt with regards to mapping SDR to HDR and I found that getting the black levels in the same place is important for a consistent experience given of course that both are viewed in the same viewing conditions.
I put together a Tonescale Model Selects colab, with the most successful models in my trash pile of experiments.
I would say they all have different pros and cons.
I like the simplicity and look of the pre-tonemap contrast with linear extension + michaelis-menten function. The Michaelis-Menten Spring Dual-Contrast model in the above colab is the one I will use moving forward I believe.
The post-tonemap contrast Michaelis-Menten Spring function is very neutral and performs very nicely in HDR, but the shadow contrast is too low in SDR. This is what I was previously fighting by modeling an exponent that started higher and decreased as peak luminance increased. I never liked this. Included in the Michaelis-Menten Spring model is an idea for a “default tonecurve lmt” which adds a bit of contrast to compensate and seems to work okay through the transition to HDR.
And I figured I would throw in a refinement of an earlier experiment with the Piecewise Hyperbolic Tonescale Model. In this one I do like that values below middle grey can be kept strictly linear if desired. It is more controllable. I also like the stronger highlight appearance, and the ease with which you can transition from SDR to HDR with a consistent contrast.
All models include a parameter for surround compensation using an unconstrained post-tonemap power function.
While doing the OkishDRT I wanted to use the same tonescale as the ACES2 candidates use, the Michaelis-Menten Spring Dual-Contrast and needed its derivative to drive the path-to-white. It turns out there is a sudden transition in 0.18 where the tonescale changes from the linear extension to the michaelis-menten function, as seen in the following desmos plot: ACES2 MM-SDC tonecurve. Not sure if this is a problem for the tonescale but for using the derivative to do things it probably would be better if it was smooth.
I made a modified version of your Desmos plot, where C_1 is automatically calculated to make the curve continuous as you vary C_0, instead of being a slider.
You need to drop C_0 to 1.0 instead of 1.2 to make the first derivative smooth. That is probably not enough contrast for our purposes. But it is interesting to see where the kink comes from.
Here is a version of the tone scale formula which compensates for the reduction in exposure introduced by the (Display) Flare compensation.
As the first equation does not change the slope at zero (besides the gamma value) one could change the order without significant difference, but I find this cleaner.
t_1 as most of the parameters is there to give us leverage on many different issues at once.
Some are:
it compensates the display flare without moving 0.0; this is important in a relative black system
it compensates for the shadow wash-out, which is introduced by the first part of the equation
most importantly, it compensates for the kink you get from the toe of the log grading space toe, this is important for the “gradeability” of the system.
with t_1 = 0.0 we get a ACEScct to Rec.1886 mapping like this:
The MM-SDC tonescale hit 1.0 quite early. With this new one ACEScct 1.0 output is 0.998 and with ACEScct 1.46799 the output is 0.9999. The toe t1 value should probably be a bit higher. But it’s all very close…
Yes, and Jed figured out all this with his tonescales. So here’s a variant that now adjusts the exposure and the peak luminance also for closer match to MM-SDC. The exposure should be a match.
It adds a new parameter w1 that can be pre-computed and was derived in same fashion as in MM-SDC using Linear Regression. This parameter determines how quickly the curve hits the peak luminance.
where do your destination values in the linear regression desmos come from.
I think it is unwise to scatter the origins of your constants in separate place.
Also it is a bit strange to have an analytical model be driven by an approximation to unknown data points.
I would try to express what those values should do and model that instead directly
Agreed. Personally I’d like the curves to hit peak luminance at ACEScct 1.0 (or around 10 stops above mid grey) but this isn’t doing exactly that but that’s what I tried to hit with those numbers. I’m equally unsure how Jed derived his numbers.