Skip to content

[FEATURE REQUEST] ACES Container compliant writer #4791

@antond-weta

Description

@antond-weta

It would be nice to have a mode in the ExrWriter enforcing compatibility with the ACES Container standard (ST 2065-4).

The ACES Container compliant EXR must have these limitations (I may have missed some):

  • The 'acesImageContainerFlag' attribute present in the metadata
  • The chromaticities are set to ACES AP0
  • Only RGB, BGRA channels allowed (either mono or stereo)
  • The data type must be half float
  • No compression

The way I envision this implemented:

Pass a hint to the ExrWriter, something like 'ACESContainer' with one of the three values:

  • "none" (default) - restrict enabling the 'acesImageContainerFlag' attribute, no other changes.
  • "strict" - check that the image and writer configuration are compliant, error otherwise. Should automatically set the chromaticities to ACES AP0, and enable the 'acesImageContainerFlag'.
  • "relaxed" - check that the image and writer configuration are compliant, issue a warning otherwise. Allow non-compliant settings, like enabling compression, storing extra channels, writing full float data. Should automatically set the chromaticities to ACES AP0. Should enable the 'acesImageContainerFlag' ONLY if the file is fully compliant.

Alternatively to erroring in the 'strict' mode, we could enforce compliance automatically where possible, like overriding the compression and pixel data type settings, discarding the extra channels, etc. I have no preference on this. Or perhaps we could have 2 separate modes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    devdaysASWF Dev Days suitable projectfile formatsImage file formats, ImageInput, ImageOutputgood first issueGood one-day project for beginners without much knowledge of the code base.help wantedA task that is desired, but needs somebody to commit the effort to implement it.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions