Log images in an EXR

Hi for some odd reason we are being supplied films scans in exrs but they have not been linearised, they are still in native cineon log. I heard it was not a good idea to have 10 but log encoded material in an exr container as can lead to problems and lose accuracy. We are going to be doing VFX work so will be linearising them. But wanted to check in and see if any one foresees any issues as I may try to convince them to supply linear. They also want them back the same way they have been sent. Which just seems really wrong to me.

For 10bit log origination then there is no loss of information, however if the bit depth were to increase then you will start to see loss of information, the following tests the roundtrip of taking an integer representation and storing a normalised value in half float and decoding it back

A couple of Gemini and Claude prompts later…. Half float vs Integers · GitHub

n (bits)   | Total Integers   | Preserved Integers   | Percentage
----------------------------------------------------------------------
1          | 2                | 2                    | 100.00%
2          | 4                | 4                    | 100.00%
3          | 8                | 8                    | 100.00%
4          | 16               | 16                   | 100.00%
5          | 32               | 32                   | 100.00%
6          | 64               | 64                   | 100.00%
7          | 128              | 128                  | 100.00%
8          | 256              | 256                  | 100.00%
9          | 512              | 512                  | 100.00%
10         | 1024             | 1024                 | 100.00%
11         | 2048             | 2048                 | 100.00%
12         | 4096             | 3073                 | 75.02%
13         | 8192             | 4097                 | 50.01%
14         | 16384            | 5121                 | 31.26%
15         | 32768            | 6145                 | 18.75%
16         | 65536            | 7169                 | 10.94%

4 Likes

I should say I’m assuming you can’t change the scanning format other then the bit depth, technically most scanners use an approximately linear sensor with some handwavy number of bits of precision likely followed by some fixed point mathematics for performance reasons. This is measuring how much light passes through the film and so is capturing values related to the density of the layers in the film.

When you “log encode” the output and store as integers you are doing something quite similar to how floating point works and depending on the range of values there is nothing wrong with using a given integer bit depth log encoding, the issue comes from transforming between the two representations.

1 Like

We are not scanning as I said in opening post we are being sent the scans in EXR container and in 10bit Cineon log colorspace

Maybe the vendor would be more comfortable interchanging DPX sequences?

I feel like that would probably cause the least amount of confusion, considering you’re already shouldering the burden of managing color for VFX.

I think your instincts were correct to flag this… the earlier you can keep things from going off the rails, the happier and healthier everyone will be come delivery…