Auditing Vendor Deliveries of ACES EXRs

I am curious if there are any tools or a workflow to check gamuts and verify which ACES space files are encoded to.
We here at IKEA are working to audit, provide feedback to our suppliers and enforce our technical requirements on our suppliers and would love a quick and reliable way to perform a check for color space among many other aspects of our deliveries, but I not sure where to even start looking for gamut checking tools.

any advice would be greatly appreciated!

1 Like

For the exr files, the primary chromaticities field should have the exact colors of the primaries (supposed to be AP0 ). Because some people do use another working space, and may have used that when writing EXRs, it is worth checking. Unfortunately, not all vendors write this field and generic EXRs may also not have this set. There is no easy way to check if the container color space is unknown (or mistaken), a visual review can only tell you if it is off.

Also, you can use exrheader to get this…

file DigitalLAD.2048x1556.exr: (located for testing at

file format version: 2, flags 0x0
acesImageContainerFlag (type int): 1
channels (type chlist):
A, 16-bit floating-point, sampling 1 1
B, 16-bit floating-point, sampling 1 1
G, 16-bit floating-point, sampling 1 1
R, 16-bit floating-point, sampling 1 1
chromaticities (type chromaticities):
red (0.7347 0.2653)
green (0 1)
blue (0.0001 -0.077)
white (0.32168 0.33767)
compression (type compression): none
dataWindow (type box2i): (0 0) - (2047 1555)
displayWindow (type box2i): (0 0) - (2047 1555)
lineOrder (type lineOrder): increasing y
pixelAspectRatio (type float): 1
screenWindowCenter (type v2f): (0 0)
screenWindowWidth (type float): 1
type (type string): “scanlineimage”

1 Like

thanks for this,
do i understand correctly that you are saying there is not really a way to audit the gamut of an EXR file to verify the color space other than to trust header info that may or may not be present or accurate?

i dont have much experience with python but when i run this i get a syntax error on line 108
print exr.attributes()

There is nothing preventing you to put sRGB encoded data in an ACES container or putting ACES encoded data in an image and pretend it is an sRGB image. It might look odd but there are cases where you would not be able to visually make a difference, e.g. ACEScg vs BT.2020.

Image data is just a giant array of vectors, what those vectors represent is really up to you. You have to define a colour management chain that you can trust and rely on, but nonetheless, nothing will prevent a smart person to change the RGB data while keeping the EXR header intact, etc…

A “smart” person?

I would call anybody that has a habit of changing the RGB data encoding metric without setting the metadata appropriately anything but smart. :grinning:

If the ACES flag is set in the EXR header, then the chromaticities had better be those specified in ST. 2065-1 (now referred to as AP0).

Haha fair enough!

I was saying that in the context of the auditing requirements of @Troy_Wuelfing and from a security standpoint. You could think as the smart person here being a hacker and altering data from a security camera in an almost invisible way because the header does not guarantee anything.

What you want for security and resilience is probably to put the encoding information and any metadata you require in the RGB data itself using the same principles than for digital watermarking, e.g. Watermarking in Frequency Domain, etc…


Thanks again for the engagement on this, I understand anyone could fake the data.
I dont think our suppliers would do this as we just wouldnt work with them again if this happened and they like our money. :wink:

i will try to find the time to get the python code to work, but i am not a developer and ran into the previously mentioned error. If i fail i will try to engage our IT department for assistance.

It would be great to see a more reliable way to audit for compliance of the ACES standard when encoding EXRs though. someone smarter than me could figure this out, or decide i am the only person who needs this, or i may be so wrong about the value of this that its actually useless. My initial reaction is a system like the cryptocurrency blockchain to track color transforms would be a way to think about an approach for this. but that may be stupid as i don’t actually understand this technology, i have only watched a few explainer videos on YouTube. Forgive me if my extreme ignorance is showing here.

all that said here is why i want this.
we take delivery of many many hundreds or thousands of short form marketing films every year and i need to have a way to verify standards compliance before we put all this data into our content distribution system and i need something that can be as automated as possible as most people working with our films don’t understand or don’t have the time to review every delivery manually.

thanks for the help / ideas / criticism as we stumble our way through getting good at this stuff.

Hi Troy

It may be helpful to understand why you require your thousands of films to be provided in ACES. What are your final output deliveries. Is there something happening between receiving the film and it being distributed, compositing for example?

As I understand it all your agencies are producing films which are sent to you to put on a Brand Intranet so anyone requiring a film for a promotion etc can download it and use it instantly for their output. What are your outputs? TV Rec709 ??? / Internet sRGB ??? Anything else?

I am just wondering if you are over complicating the process or have a particular need for it.

The trouble with having the client linked to so many input suppliers and output delivers is that knowledge and technology is not equal so most times a common denominator is needed, i.e. create 2 versions in the 2 colour spaces and provide a question answer system on the intranet to provide a path to choose the right file for delivery.

In my experience in brand implementation and asset creation, simple is best. Maybe I have totally misunderstood your problem though.


hi thanks for the reply.
thousands may be more than we will see in reality, but it is a possibility depending on how a project or two currently in testing turn out.
i will keep the answer as short as i can, but its going to be a meandering stream of consciousness dump. sorry i don’t have time at the moment to try to lay out a well organized response to this, but love the input and critical analysis.

your assumptions are mostly correct
We do have vfx work on some films which is done both in house and through contracts with VFX houses, with the numbers expected to climb for this. We also have fully 3d animated films.
mostly we do rec709 and sRGB, but also hope to use this same system for our RGB print deliveries. yes we master our catalog and all print images in RGB. this is another long story, but it provides us an opportunity to unify the video and print pipelines.
our franchisees often want the source content to reuse for who knows what delivery platforms.
we also expect to be starting to support rec2020 as we move to HDR and UHD deliveries and need to get good at doing this well before its a common need so we are prepared when the requirements start for that.
for us the long term value could be high, and the company for sure thinks long term. if it takes us a few years to get good at this and to find suppliers who can support us that is totally fine.
the key factors for me are we want consistency, certainty, flexibility, long term value more than we want cheap and fast.

but i dont see ACES really as adding complexity as much as its just a different workflow for most folks and they need to learn a more professional way to work, and i am fine with that.
the auditing comes in that i am looking for a way to check the consistency of these deliveries before we put them in our archive with all the source material and project files. just like i check the file naming rules are followed i am looking to see if our color rules have been followed.

we are working toward a single color pipeline for our media production, both for video and print.
we often dont know all the delivery platforms until after a film is completed and then requests come in… can you deliver this for TVC, can we deliver this to you tube, can we use this for print now… etc.
we are also working to be able to share assets, deliveries, source etc between many production companies using many different cameras and ensure our ability to match color is predictable.
we are also working to ensure we are archiving useful material for both reuse and posterity.

my current approach for us is that versatility to support flexibility provides a lot of value to ensure we can leverage the work however people around the brand would like.

a bit longer version.

the story gets more complicated the more you get into it. for example, when a film is made almost no one around the business is aware its all super tactical and no strategy (this is just the nature of the business) a small team funds and produces a film and there is no central awareness or approval of this content they are completely independent. then the film is finished and distributed to and from franchise markets globally (mostly to, not as much from) and once distributed they are public and many people globally see alternate use opportunities and having every film produced to a different standard and with different source types ensures the answers to these questions are always super complex and usually people give up and just don’t use the material and then go produce their own content from scratch rather than just using something that exists. i am working to build a system where finished and archived projects are in a consistent format and answers to questions of reuse and re purpose are predictable.

A second deeper issue is the technical competence issue you touched on. while this may seem a more complex way to handle color, the consistency and unified guidance of a standard ACES delivery allows me to manage one set of rules with almost zero decisions to be made by the teams who are making the films. (until recently we were only keeping MP4 files as our “masters”, everyone thought that was fine) If the skill level of the production folks was a lot higher they could be relied on to make smart decisions independently, however that has not been demonstrated satisfactorily as of yet, so we have a strict set of rules we know will support any future need within reason.

a third challenge is that we have some volume production products that have to color match perfectly and could be produced at multiple studios and shot on various cameras.
delivering different types of files and different color spaces from different cameras for 20-50 films per day would be a nightmare in post. these are almost always short 1 minute films about product functions and the art / brand requirements are very very strict about color and consistency, but the volumes are too high to do this all in one spot by one team, and we dont want a system where a new supplier would have to invest in all new camera systems to support us, we want to keep the flexibility to work with multiple camera systems,

imagine working with 30 jr producers and every film is their first film and imagine they are each making 25 films a year and wont learn any of the technical aspects of this, and are hiring whoever they want as a production team. our goal is to ensure that in that model if the rules are provided to these “producers” and the production companies they decide to hire and they are followed we can have consistency in our deliveries.

and i am the cat herder working to see how well we can make all this work

i am sure some of this isn’t super clear, but this is my stream of consciousness dump of some of the challenges.

Hi Troy.

Over the past year I have learnt and started filming within our agency and with a background in print and digital for big brands I have had the same idea about delivery and future proofing especially with all the varying colour profiles associated with the many touch points. I learnt DaVinci which lead me to think about Colour management workflows using ACES as the Umbrella.

I do understand most of what you have said and your road map certainly makes sense. I am no expert in film workflows and thinking about the comment from someone else earlier about cheating the files, you are right that people won’t intentionally cheat but they do try to get around issues when the arise to hide mistakes I am unsure that you can track profile and colour changes throughout an entire workflow, even if there are tools.

In my humble opinion I would suggest 2 things

  1. Contact an experienced DIT (digital imaging technician), colour grading agency or even a TV studio to understand how they ensure legal file specifications to brainstorm some ideas.
  2. Write a short’ish guideline on what the delivery will need to include to satisfy your quality control (and allow the producers to work out how they get there, because they will anyway)

Sometimes we need to just give parameters and an idea and trust that everyone will find there way there.

Hope this helps in some small way.


this does help a ton as it is my approach if i cannot automate an inspection process. its not a huge deal i am just trying to make sure i do things the most efficient way i can.

we are currently still trying to nail down our internal ACES workflow, after that we will continue to share it with our suppliers as a recommended best practice. We are also patient with them as they learn and adapt.
we currently archive the camera source files until we have high confidence in our knowledge of this process.

i really appreciate your time providing input and reading about our silly convoluted system of challenges to navigate.

Hi Troy

I would be interested to hear how you get on as I will be looking at that type of workflow as it is part of the remit of my job.

If you don’t mind I will send an invitation over LinkedIn.


Sure thing!
We will be happy to share any findings, workflows, documentation, or experiences we have related to our efforts.
One of many great things about IKEA, we like to help and share!

Please feel free to check-in whenever
Linked-in is totally fine.
Or by email Troy.wuelfing at Ikea dot com