(emphasis mine)
On the main RawTherapee page youâll find:
High Image Quality
Non-destructive, 32-bit (floating point) processing engine,
The floating point operations are also mentioned on the Features page:
performs calculations in floating point precision.
And itâs laid out in more detail on the page The Floating Point Engine.
Step 5 in the pipeline is: Scale colors (internal, no tool in UI). I assume that is the point where camera-specific (for example, 12- or 14-bit) sensor values are converted to 0âŚ1 (or whatever standard max value the pipeline uses) floating point. (This is one of the points emphasised in The Floating Point Engine: many converters scale the incoming (e.g., 12- or 14-bit) sensor data into 16-bit integers, but RT scaling the values to floating point, which it then uses later on for all processing.)
So, internally, youâll never have 8-bit values. While 8-bit images pretty much always use gamma encoding, gamma can also be applied to 16-bit integer values, as well as to floating point (that could use a 32-bit representation).
Edit: based on Jacquesâ response, there is actually no gamma applied to internal data, except in some very specific cases, so the following text in strike-through is not applicable.
It simply means that a 10% value in the part of the pipeline that uses gamma-encoded values does not represent 10% of the 100% brightness, but rather about 1%; an 50% value means about 21% brightness, an 80% value 60% brightness and so on.
Applying the gamma to represent the data does not mean itâs applied to adapt it for viewing on a screen; you have do that with the tone curves.
And, as mentioned previously, the data is then transformed and re-encoded for your display, and also for file output, according to the standards of the chosen output format (under the Output Profile of the Colour tab), with the data representation (8 or 16-bit integer or 32-bit floating point) set under File Format of the Queue.