Skip to content

Add 'xdr-video' as a new encoding option #2173

@doug-walker

Description

@doug-walker

The "encoding" attribute of a color space is intended to give a rough sense of how color values are numerically encoded in a color space. The current options are: 'scene-linear', 'log', 'data', 'display-linear', 'sdr-video', and 'hdr-video'. The encoding may be used for many purposes such as:

  • Filtering color space options for display in menus
  • Adjusting what type of image processing algorithm to apply to an image
  • Interfacing with other systems such as OpenFX (which has a notion of "Basic" color spaces, based on the encoding)
  • Creating viewing rules

There is a trend towards driving HDR displays with extended-range versions of SDR color spaces. This allows a color space to be used for HDR but with SDR compatibility. This is very helpful for apps that have an SDR user-interface being shown on an HDR monitor. In these color spaces, 1.0 is essentially the SDR white point and values extend above that to reach HDR luminance levels. Sometimes negative values are also allowed to obtain a wider color gamut.

In the current ACES config, there is a "Display P3 HDR - Display" color space which is a good example of this. Its encoding is set to "hdr-video" but that is somewhat misleading since the [0,1] range is essentially an SDR color space.

The proposal is to add a new "xdr-video" encoding to be used when describing these color spaces. This is for color spaces that are basically "sdr-video" between [0,1] but allow values way above 1.0 to drive HDR displays. Here is a comparison of the three video encodings:

  • 'sdr-video': A color space for an SDR monitor/display. Values are roughly [0,1] but may extend about 9% above/below that to accommodate video over/under-shoot. Rec.709 is a good example.
  • 'hdr-video': A color space for a strictly HDR monitor/display where 1.0 is obtaining HDR luminance levels. This is essentially very similar to a logarithmic color space, except it is display-referred. Rec.2100 PQ is a good example.
  • 'xdr-video': A color space intended to drive an HDR display but with SDR compatibility. The 1.0 provides an SDR luminance level and values well above 1.0 are expected to obtain HDR luminance levels. The extended-range version of Display P3 is a good example.

Note: The library itself does not enforce the content of the encoding string, so this proposal is not a library change, it is just a documentation and workflow change.

Metadata

Metadata

Assignees

No one assigned

    Labels

    DocumentationDocumentation related development and/or updates.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions