Hello
I have update Rawpedia (in english) - thanks to @Wayne_Sutton
Colorimetry and continued
As agreed, some additional thoughts on Tone Mapping and Exposure / Brightness.
Tone mapping & Dynamic Range
As far as Tone mapping or Dynamic Range algorithms are concerned, there are lots of them, and they don’t all do the same thing.
- the oldest ‘Tone Mapping’ one from 2011/2012 by Ben.S and Mantiuk is indeed a Tone mapping. That’s how it was presented at the time. It’s by far the most complex, using no Log , no traditionnal Blur function, but ‘Cholseky factorization’. It gives low DR compression (compared to the others) , but increases contrast considerably.
- the second implemented in 2017/2018 - ‘Dynamic Range’ is one of the many found in ‘HDR merge’: Fattal Tone mapping (we didn’t call it that, why?). It uses Laplacians + Fourier + Poisson: correct but slow
The rest you know: determination of the real BlackEv , WhiteEv, Dynamic Range (DR), Gray (middle gray, Yb, etc.) and notions of “Scene” (Source) , Image Adjustments, and “Display” (Viewing).
- Log encoding affects all components, but: a) is rather irregular and b) disturbs in some cases colorimetry,
- Sigmoid is dissymmetrical, clearly less good than Log for DR and real features to remember it allows: a) asymptotic shaping of Highlights, b) action on overall contrast, but c) handles Blacks badly on its own,
- Freeman tone mapping, as it’s called, can either: a) asymptotically shape Highlights, which I’ve called Gamma based, b) act on overall contrast, which I’ve called Slope based, but c) has a more limited action on overall contrast (although it does have one).
For me, the best all-round, assuming you need “something else” to go with it (in this case, TRC - gamma - slope - midtones) is Slope based (or Sigmoid), completed if necessary by actions on Lightness or Brightness (sliders or curves) in Cam16 Image Adjustments.
We’ve just renamed ‘Highlight attenuation & RGB channels’ to ‘Tone mapping operators’ for greater clarity.
Exposure, Lightness, Brightness, etc.
These commonly used concepts are often confused or misunderstood.
There are several reasons for this: there is no agreed definition of these terms. Moreover, depending on the nature of the environment in which these terms are used, their actions are very different: RGB, XYZ, Lab, Ciecam, JzCzHz, etc.
Exposure corresponds to an RGB data modification of the type: ‘2 power cursor value’. Why 2 ?: because it corresponds to 1 Ev of the camera (speed, aperture, etc.). Since RT, at least, uses linear data, the response will be perceptually non-linear in shadows, midtones and highlights. It’s true that retouching (black, highlight compression, etc.) can be used to restore balance, but the basic rule remains the same. In the case of Rawtherapee Exposure, acts rather late in the process.
Auto-matched Tone-curve:
This algorithm copies (when it can) the contrast of the embedded thumbnail with the Raw file. This ‘copy’ is in a way the signature of the brand (Nikon, Canon…) and the camera body (Z6 2, 750D, etc.). It gives the Raw file the appearance of a JPG. This ‘tone curve’ is also applied - like Exposure - rather late in the process, and can lead to RGB value overflows (below zero, or above 65535), especially if you use other processing that affects luminosity or contrast.
Lightness - or relative luminance - its response depends on the context:
- in RGB, it will apply a linear correction to the 3 channels in the limited range (0…65535).
- in Lab - which corresponds to a TRC (Tone Response Curve) – slope=9.03 gamma=3 - the correction is still linear and limited, but the rendering will be different, closer to human vision and only on the L channel (No action on ‘a’ and ‘b’ channels).
- in Ciecam: basic luminance correction, J, is far more complex than in RGB or Lab. This correction takes into account the notion of surround on the one hand, and physiological aspects such as simultaneous contrast on the other. The correction is not linear, but bounded, and only affects the J variable, although it does have an impact on the other variables Q, s, C, M and h.
- in JzCzHz, Lightness does not exist by default…
Brightness :
This concept involves absolute luminance, i.e. ‘The amount of perceived light from a stimulus’. In other words, instead of processing information in a bounded interval (0…1), (0…65535), we work in an open space. Obviously, to process data with sliders, curves, we provisionally reduce them to bounded values by dividing, then multiplying by the absolute luminance of white. To estimate this value, I use exif data: speed, f-stop, ISO, etc.
Software using this concept (brightness) is limited, mainly Ciecam, Jz, Perceptual Quantizer, etc.
- in Ciecam: the correction takes into account absolute luminance (La), in addition to brightness, correcting, for example, our eye’s perception of low light. The correction is non-linear, unbounded and affects only the variable Q, but has an impact on the other variables J, s, C, M, h.
- in Jz - this is the default mode, with no effect on other color variables.
In conclusion, the responses of sliders, curves in Exposure, RGB, XYZ, Lab, Ciecam, Jz, each have their own characteristics. Simply comparing them (other than what I’ve just done) is mission impossible.
Last executables - apseimprov - with Some Labels and tooltips changes
Jacques