Manual creation of UltraHDR images

I think mostly file size and colour profile metadata (unlike e.g. EXR). But since this is just a temporary file, 16-bit TIFF (or even 32-bit floating point) might be just as good. Even EXR might be okay, since we are managing the colour profiles by hand anyway. The main reason I used JPEG XL above is that I also wanted to store the HDR intent.

In case we want to keep JPEG XL, I think it might be sufficient to export to a visually lossless file, instead of a mathematically lossless one.

Interesting… I will have a closer look. For now, I would rather use a single-channel gainmap (-M 0). I think this is also what Lightroom does.

Your intuition is right, but currently Darktable seems to map [0, 1] RGB values to [0, 203] nits when using a SDR transfer curve (e.g. Display P3 RGB), but to [0, 10000] nits when using the PQ transfer curve. So the image is interpreted differently depending on the export parameters, and if I want the shadows/midtones to match between the SDR and HDR intents, I need to rescale the HDR intent by applying an exposure compensation of log2(203 nits/10000 nits) = -5.62 EV.

This is clearly suboptimal, and ideally Darktable would reason in terms of nits and display values > 203 as HDR. But this is an issue with HDR support, and not specifically with gain maps. So until this gets sorted upstream, I think we need to continue to apply the scaling.

They do! Although the effect is very subtle in the “dinosaur” and “sunset” images, and completely invisible in the “statue” one (I think because it entirely fits within the SDR range).

1 Like