Inconsistent ACES results

resolve
Tags: #<Tag:0x00007f3c602f57f8>

(Cary Knoop) #1

I took a video levels HLG (with Rec.2020) test clip, converted this clip to V-Log/V-gamut and saved the converted video using data levels.

Comparing the original clip and the converted clip using YRGB Color Managed Science with the proper conversions gave a satisfactory result, however under ACES there was a noticeable shift, predominately in the shadows. Also as an effect of these changed levels some noise shows up as saturated pixels

Unless I made a mistake something does not add up, it could be Resolve or some ACES definitions.

For a shift in the levels see here: https://forum.blackmagicdesign.com/viewtopic.php?f=21&t=79972


(Nick Shaw) #2

I do not know what the Resolve implementation does, but there is no official ACES Input Transform for HLG as far as I am aware. Are you sure that what you are using is not an inverse HLG Output Transform? That would not give the same result as an RCM transform.


(Cary Knoop) #3

My understanding is that ACES 1.1 supports an HLG IDT


(Scott Dyer) #4

That is incorrect. ACES 1.1 does not have an Input Transform for HLG.

ACES 1.1 simply added some additional ODTs, including an HLG Output Transform (which really just re-encodes 1000-nit ST.2084 (PQ) output to HLG using the method specified in Section 7 of ITU-R BT.2390-0).


(Cary Knoop) #5

Interesting!

So then what is Resolve using as IDT?

Is it the inverse of the RTT+ODT?

Would that give scene v.s. display referred issues perhaps explaining the gamma shifts and out of gamut issues in the shadows?


(Nick Shaw) #6

Quite possibly. I don’t have a Resolve 15 system here to test. But if you choose the HLG Input and Output Transforms, does the whole Resolve ACES pipeline become “transparent”? That is the test for whether it is an inverse Output Transform.


(Nick Shaw) #7

I had a quick look and the only HLG Input Transform I see in Resolve is the Rec.2020 HLG 1000 nits one, which is indeed the inverse of the HLG Output Transform. It is therefore not intended for scene-referred HLG recordings from a camera.

Bear in mind that even without the RRT, the HLG OETF and EOTF are not the inverse of one another. That’s why the Resolve Colour Space Transform includes HLG and HLG (Scene). I suspect, but haven’t tested, that if you set the Resolve Input Transform to ACEScct (i.e. do nothing) and then use a Colour Space Transform as the first node, going from Rec.2020/HLG (Scene) to AP1/ACEScct, you would get a match.


(Jeremy Dulac) #8

Hi Nick,

I was wondering if you or anyone else has any updates on HLG implementation in Resolve? At the moment I use HLG on my GH5 and use Colorspace Transforms to get in and out of ACES on a regular timeline ( one node at the beginning and one at the end and work in between). I have been using CSt for your reasons above - I can use HLG(scene) in CST. Is there any math difference here vs being in aces color managed timeline?

Thanks in advance for any help!


(Nick Shaw) #9

In a standard colour managed timeline you do not have an ACES Output Transform (RRT + ODT) applied after your grade, unless you add it yourself with the DCTL by @Paul_Dore, for example. Or I believe that ACES transforms are now available as an OFX operator, so knowledgable users can build their own ACES pipeline.

There is more to ACES than just the working space, and if you are not including all the transforms, you will not match the intended result. You can use the OFX Color Space Transform in an ACES timeline to apply an Input Transform. You just need to set the global input transform to match the working space (e.g. ACEScct) and then add e.g. an HLG(scene) to ACEScct transform at the start of your node tree. But be aware that this is non standard, and may not be simple to replicate in other applications. You may also find you need to add an exposure offset to get a “normal” looking image as a start point.


(Jeremy Dulac) #10

Thanks for the reply! This is tricky stuff. So would it make more sense for me to use an CST in a standard color managed timeline and convert from hlg(scene) to something like LogC with a CST then use an ACES transform ofx to go from Alexa to ACEScct? I’m not sure if I am making sense, I am just starting to dabble in ACES. I am pretty familiar with CSt’s and using them as Juan Melara shows in some of his videos. But ACES is a whole new beast.

Thanks for your help!