ACES v2 Developer Release

After many months of work, the Output Transforms Working Group has reached a milestone where the algorithm is ready for release to developers. The content of this post constitutes the ACES v2 Developer Release.

Heavy development work is concluded, and, at this point we don’t anticipate changing the structure of the core math any further. However, we do still welcome your feedback and/or optimizations.

What has changed?

The core Output Transform rendering algorithm (formerly the RRT+ODT) has been completely rewritten.

This core code constitutes the bulk of what’s new in v2 and can be found on the v2-dev-release branch on the aces-dev repository.

The Output Transforms themselves (which depend on the core algorithms) have been segmented into their own repository, aces-output, and conformed to all use the same structure. The included transforms target the equivalent display presets as the stock ODTs provided in v1, with a few minor naming clean-ups for consistency. A few new transform presets are also included:

  • Rec.2020 ST2084 (500 nit)
  • Rec.2020 ST2084 (P3-D65 Limited, 500 nit)
  • Rec.2020 ST2084 (P3-D65 Limited, 1000 nit)
  • Rec.2020 ST2084 (P3-D65 Limited, 2000 nit)
  • Rec.2020 ST2084 (P3-D65 Limited, 4000 nit)
  • Rec.2020 ST2084 (Rec.709 Limited, 100 nit sim)
  • sRGB Gamma 2.2

The Input Transforms have tidied up with old outdated transforms, such as early gen ARRI IDTs, removed, and moved to aces-input-and-colorspaces.

Look Transforms have also been moved to their own repository, aces-look. As of now, only one example LMT has been provided, as CTL, to match the 1D contrast of v1 through v2 Output. It is anticipated that many more example look transforms will be developed by creatives and added before the User Release.

All Transform IDs in the system have been updated to v2 Transform ID specification.

Overview of Changes to Repository Layout

The ACES v2 release cycle grants us an opportunity to re-organize how the various transforms associated with ACES are presented. The reorganization aims to reinforce that the individual components of ACES are independent of each other and not themselves directly related to the current ACES system version number. For example, when new Input or Output Transforms are added, it does not dictate nor necessitate a “new version” of the “ACES System”.

As mentioned above, the reference version of ACES transforms are provided via Github and organized across a few separate repositories. Here is an overview of the repositiories and what they are intended to encapsulate:

  1. aces-core (formerly “aces-dev”)
    This is where the core algorithms and functions invoked by the Output Transforms lives. This is the code most closely associated with the ACES system version, as when it changes, the default look will change.

  2. aces-output
    Output Transforms that define preset parameters to invoke the aces-core transforms and are defined for standard or commonly used displays

  3. aces-input-and-colorspaces
    Transforms between ACES and other color encoding, such as camera encodings or ACEScct

  4. aces-look
    Transforms that modify the default appearance of images through an ACES pipeline. Can be empirical or analytical Transforms.

  5. aces-amf
    Schema and example files for ACES Metadata File

  6. aces-docs
    ACES documentation written using markdown and published online using mkdocs

Next steps

In the upcoming weeks, the next focus will include:

  • Developing more example Look Transforms to be used with the v2 transforms
  • Much new and updated documentation on how to use the new transforms and technical details of how why they are doing what they are doing. This will include examples comparing it to v1 and why we made the decisions that were made to lead us to this version.