Are ACES transforms via OpenColorIO lossless?

My daily compositing work in Aftereffects meanwhile includes many OpenColorIO transforms for certain effects and plugins that don’t work that well with linear or do clip above 1.

So when changing from linear to cct and back is that done with mathematical transforms inside OpenColorIO or is it more a collection of LUTs?



No, OpenColorIO uses LUTs, so a transform followed by its inverse may not be perfectly lossless. It uses 1D LUTs and matrices as much as possible, with carefully selected shaper LUTs where 3D LUTs are used, in order to minimise errors. But is not as precise as a purely mathematical implementation would be.

ok, thanks!
So far I haven’t noticed a problem visually, but I understand the underlying problem.

But I don’t think there is a way to do such mathematical transforms in Aftereffects.


Implementing ACES analytically is no small task as you need to port most of the CTL code base to the programming language your DCC application uses or reimplement it with its built-in algebra capabilities which last time I checked are not super convenient in After Effects.

If you can implement this CTL module without too much trouble in your DCC application:, then you likely can implement the whole ACES.

Thanks! But thats way out of my skills to do that myself. :slight_smile:

I just hope that Adobe will sometimes soon see the need for a proper ACES implementation.
Until then we have to live with the wonderful free opencolorio plugin by fnordware.


Hi Peter. Just curious: how are you using OpenColorIO in After Effects (and which Ae version are you using) ?

I use the latest Version of CC which is

I set the working space in Aftereffects to ACES or ACEScg (which ist provided by Aftereffects) with 32bit float of course. I then deactivate the “Display Color Management” and put a adjustmentlayer with the Fnordware OpenColorIO-Plugin over the compositin. This way everything below that adjustmentlayer is viewed through the RRT/ODT709 provided by OpenColorIO.

In some cases the Aftereffects color management can do the IDT to ACES or ACEScg. And if not possible I set the input to “Preserve RGB” and put an IDT to the footage, again through the fnordware OpenColorIO plugin.

The results get rendered out as OpenEXR-Files with the adjustmentlayer deactivated. Most of the time that layer is a “guide layer” anyways. So it’s not used on export.

So far that all works pretty well.