ACES 2.0 Missing IDT and ODT for Rec2020 gamma2.4 and P3 DCI

,

Hi
I’m testing the new ACES 2.0 in DaVinci Resolve 20.
I found that the Rec2020 gamma2.4 and P3-DCI options are missing from the IDT and ODT.
I checked the “github” hosting for ACES-ouput and it is also missing.
Hopefully it will be added back sometime.

Found out today that Rec2020 HLG (1000nit) is missing too!

Rec.2100 HLG (1000 nitsP3-D65 limited) is included in both the CTL and Resolve 20 Output Transforms. Do you have a need for a Rec.2020 limited version.

Regarding Rec.2020 2.4 gamma, it was agreed during development that nobody was aware of anybody using that Output Transform. There are no common wide gamut SDR delivery specs. Therefore it was dropped from the standard list in order to keep the length manageable. The only wide gamut SDR transforms currently included are for Display P3 and 48 nit theatrical P3.

Similarly P3-DCI was always problematic for a number of reasons. Nobody uses a DCI creative white, so it was always a D60 or D65 “sim”, which necessitated additional highlight roll-off making it different from all other Output Transforms. The preferred approach is to grade using a projector calibrated to the actual creative white (or close to it, such as D60 in D65). So the consensus was to drop the DCI Output Transforms for ACES 2.0.

The hope in the longer term is that implementers will include a mechanism for users to add custom Output Transforms which are not in the standard list. As of Resolve 20 beta 1, the parametric ACES Output Transform supported in DCTL is still at ACES 1.3.

Hi

As you say for HLG, the requirement should be Rec2100 HLG (1000nit Rec2020 limited)
I have been using Rec2020 HLG (1000nit) in ACES version 1.3 for documentary deliveries for TV stations.
One of the criteria for delivering material, the color gamut needs to be Rec2020.
I’m not sure if the TV stations will reject it because the gamut is limited to P3-D65.
So hopefully Rec2100 will be added in the future (1000nit Rec2020 limited)

Understood about the removal of Rec2020 2.4 Gamma
Used it because I used it for HDR color grading for ACES after mapping the kodak print film information to Rec 2020 2.4Gamma.
For some reason I couldn’t get ColourSpace to map the print film info to Rec2020 ST2084 correctly, and made a compromise.
Maybe I can use the 1.3 version of the color conversion under ACES 2.0

The need for P3-DCI is due to the fact that some of the previous indie films have been using P3-DCI (D60) as delivery.
If P3-D60 2.6 Gamma under ACES 2.0 works the same as it does, then there should be no special need

Thanks!

As Nick mentioned, we consciously eliminated a few transforms believed to be used by only a few, if any, and added some others that had been commonly requested (e.g. 500 nits). The list was already quite long so we wanted to keep it from getting longer.

NOTE: The working group debated not including “ACES white” (~D60) variants of everything, which would have cut the list in half, but there are productions known to be using ACES creative white (~D60) and it was feared that if they weren’t on the list of presets, that they wouldn’t be supported in initial releases. These “ACES white” variants are all nearly identical to their D65 counterparts, except have the limiting gamut white point set to the ACES white chromaticities so that the gamut boundaries estimated for the gamut compression to target align with ACES (~D60) white point.

So, in ACES 2.0, all outputs are simply calling the core “output transform” algorithm and passing in a few key parameters specific to the output transform:

  • peak luminance (luminance the tonescale maps to)
  • chromaticities of limiting primaries and white - determines the gamut boundary and white to which the rendering and gamut mapping is targeted

Then the output colorimetry from the output transform (rendering) is encoded for display, determined by:

  • chromaticities of display primaries and white (e.g. Rec.2020 D65, P3-D60, etc)
  • display EOTF
    (there are a few other small parameters used for special cases, not relevant here)

These parameters are set for individual “Output Transforms” in the aces-output repository. By design, it is incredibly simple to create additional output(s) that deviate from the pre-sets to meet specific custom needs you might have (at least in the CTL it is).

The issue is that the CTL is just a reference, and this “adaptable” functionality has not yet been implemented by vendors - most have just provided the subset that is on the list in the aces-output repo in a list of transforms. It is hoped that most will eventually add a “custom” option which will either expose menus to select luminance, limiting primary/white, display primary/white, display EOTF or a way to add these in a custom folder (akin to how you can call the v1.3 Output Transform module in Resolve as explained in Developer/DaVinciCTL/README.txt


Example

For Rec.2100 primaries in 1000nit HLG, just set the luminance to 1000, limiting gamut and the display gamut both to Rec.2020 primaries and D65 white, and HLG as the EOTF of the display. So the header of the CTL would look something like this.

// <ACEStransformID>urn:ampas:aces:transformId:v2.0:Output.Academy.Rec2100_1000nit_in_Rec2100-D65_HLG.a2.v1</ACEStransformID>
// <ACESuserName>Rec.2100 HLG (1000 nit)</ACESuserName>

import "Lib.Academy.Utilities";
import "Lib.Academy.Tonescale";
import "Lib.Academy.OutputTransform";
import "Lib.Academy.DisplayEncoding";

// ---- ODT PARAMETERS BELOW ---- //

// Rendering intent
// Chromaticities of limiting primaries and white point
const Chromaticities limitingPri = // Rec.2100 Primaries / D65 White
    {
        {0.7080,  0.2920},
        {0.1700,  0.7970},
        {0.1310,  0.0460},
        {0.3127,  0.3290}
    };
    
const float peakLuminance = 1000.; // luminance the tone scale highlight rolloff will target in cd/m^2 (nits)
const bool scale_white = false;   // apply scaling to compress output so that largest channel hits 1.0; usually enabled when using a limiting white different from the encoding white

// Encoding
// Chromaticities of display primaries and white point
const Chromaticities encodingPri = // Rec.2100 Primaries / D65 White
    {
        {0.7080,  0.2920},
        {0.1700,  0.7970},
        {0.1310,  0.0460},
        {0.3127,  0.3290}
    };

// EOTF of display (output is encoded with the inverse EOTF)
//  0 - display linear
//  1 - ST.2084
//  2 - HLG
//  3 - gamma 2.6
//  4 - BT.1886 with gamma 2.4
//  5 - gamma 2.2
//  6 - sRGB IEC 61966-2-1:1999
const int eotf_enum = 2;

// ---- ---- ---- ---- ---- ---- //

Hi, Scott.
Thanks to you and Nicke for the details!

I now know that ACES 2.0 also includes an “Output Transforms” functional component.
It will implement the contents of the lists under ACES-Output, as well as other ODTs that are not in the lists, such as: Rec2100 HLG (1000nit Rec2020 limited), P3-DCI, etc.
The “Output Transforms” component will have to wait for DaVinci Resolve to be implemented.

Thanks to you and Nicke for your replies.

Broadcasters want material delivered in Rec.2020. However Rec.2020 is a “container” format, and no commonly available TV can display the whole of Rec.2020. Limiting to P3 is common practice, and a way to ensure consistent appearance across a range of TVs, since exactly how Rec.2020 values outside the gamut of a particular display will appear is unknown, and manufacturer dependent.

I do not believe that any delivery spec that asks for Rec.2020 requires you to fill that gamut, any more than one which asks for 1000 nit HDR requires you to include content which hits 1000 nits.

So I would suggest that the P3-D65 limited Rec.2100 HLG Output Transform is appropriate for HLG deliverables.

1 Like