Output Transforms Architecture Virtual Working Group

Document Workspace

Alex Fry & Kevin Wheatley - Working Group Co-Chairs
Scott Dyer - ACES Staff Liaison - email
Nick Shaw - ACES Consultant - email
Steve Tobenkin - ACES Adoption/Comms Lead - email

Goals

  • Create a stable, robust, capable, and visually pleasing rendering transform to be used for ACES 
  • Correct for known artifacts when using the current model
  • Resolve design limitations and inconsistencies of current model
  • Enable diverse and unforeseen use cases with easy to use parameterized output variables
  • Simplify
  • Maintain backwards compatibility
  • Document the how and the why of all design decisions


Deliverables

Working Group Status
  • Preparation of test set
  • Write background information & level-setting README
  • Prepare Candidates A, B, C
  • Candidate A - Simple 1-D Lookup - rgbDT
  • Candidate B - Mathematical Lookup
  • Candidate C - Z-Cam Hybrid
  • Make modified OCIO v1 config
  • Prepare Image Set
  • Distribution of test package



Documents  

Working Group Proposal Form

This is the proposal form that formed this working group.

Output Transform Test Images Submission

You can upload any image files that you think would be useful for this group to have access to for testing and development of output transforms. 


Access/view the files: Output Transform Image Submissions

Background Information

An external Dropbox Paper site highlighting the processing steps in the pre-1.0 ACES releases and comparing some images rendered through them. 
This is a living document and will be updated with some comparisons to other vendors’ renderings (e.g. IPP2, T-CAM, K1S1, …)

ACES Retrospective and Enhancements

A document authored by ACES Community members outlining feedback, concerns, and issues with ACES 1.0. Not all concerns raised relate specifically to Output Transforms, but many do.

AMD Variable Dynamic Range - Game Developers’ Conference 2016

The talk “explores advanced techniques for HDR color pipelines both in the context of the new age of wide gamut HDR displays and with application to existing display technology. Presenting a detailed look at options for optimization and quality at various stages of the pipeline from eye-adaption, color-grading, and tone-mapping, through film grain and final quantization.”

Also an accompanying Youtube video and Nuke’s Blinkscript implementation.

by Gary Demos and Doug Walker
Note: Access is free for SMPTE members. A pre-publication version from the authors is included, with permission, for easier access, together with a link to a presentation by the authors.

An HPA presentation by Gary Demos related to the above Core Rendering Algorithm, discussing the various appearance factors that need to be taken into account, is available as a video and also a PDF of the slides.

Issues and Requirements


Collected from the ACESCentral thread (and elsewhere)

Prompts

  • What is wrong?
  • What is right?
  • What new functionality could/should be added?
  • What, if anything, should we keep?
  • How do we know what done is?

Issues 

  • Clipping occurs when lighting with saturated colored lights, resulting in blockiness of color
  • Hue-shifts in primary colors with increase in exposure (e.g. red goes orange, blue goes purple, green goes yellow)
  • Some highly saturated colours are hard to reach, e.g. yellow.
  • Inverse transforms are not perfect. There are errors (primarily in the red region) where values do not round-trip.
  • Inconsistencies exist between the supplied v1 ODTs
  • Some adjust for surround but only for dim and in an inconsistent manner
  • Some provide gamut-limited versions but not for all gamuts
  • Some provide multiple white points but not for all white points
  • Some common peak luminance values are provided but not all peak luminances
  • “DCDM” output transforms might not be doing the proper conversions

Requirements…

  1. Invertible
  1. Closed-form inverse: values should round-trip from output referred to ACES and back without errors and without use of LUTs
  1. Should ideally span the space of typical output “devices” (colour spaces).
  1. Tone Scale design…
  1. have slightly lower default contrast than present mid-slope contrast
  1. be configurable for arbitrary dynamic ranges
  1. maintain some minimal slope at its endpoint extensions, instead of going to zero slope at max and min as it currently does
  1. Color
  1. hue shall be preserved to the extent possible (how is hue defined?)
  1. highlights shall desaturate at a certain point for low-saturation things and less so for items that are bright and saturated (e.g. neons, car taillights, lightsabers, etc.) - (how do we determine the threshold? - is this purely subjective? can we make it objective?)
  1. Display encoding - preparing intended linear display light so it is displayed as intended
  1. Luminance/code value alignment
  1. Encoding primaries
  1. Inverse EOTF

Considerations

  • Order of grading/mastering content
  • SDR first as hero grade, then apply HDR OT(s) and see more of original exposure range, more color, more highlight/shadow detail - i.e. optimize source content to the display capabilities; intent is image optimization
  • SDR first as hero grade, then apply HDR OT(s) and see “same” range of original scene exposure, just mapped into the HDR range - i.e. don’t show more color, highlight/shadow detail; intent is image match
  • HDR first as hero grade, then apply SDR OT(s) and see “same” range of original scene exposure, tone-mapped into SDR for similar appearance; intent is image match
  • Do we try to make our own solution for this or do we defer to existing solutions (e.g. Dolby)?
  • HDR first as hero grade, then apply SDR OT(s) and see less range of original scene exposure, a “window” of the larger rendering output but made to look as good as possible (to the extent possible) on the less capable device; intent is optimization and not an appearance match to HDR
  • Look Development
  • A lower starting contrast and “neutral” rendering encourages users to build their own looks
  • Invertibility
  • What does it mean to be “invertible”?
  • Logos, graphics, other output-referred content (e.g. archival, video, etc.) can be integrated into an ACES project 
  • Enables conversion of legacy look LUTs (“reversing out”) when necessary
  • Hue linearity should be maintained when exposure is increased - which begs the question, what are we defining as “hue”? Is it straight lines on a chromaticity diagram? Straight lines in some “perceptual” space? Which perceptual space?
  • Configurable - should be easy to create output transforms for a display configuration that is not included in the Academy-provided set of defaults for display set-up “standards”
  • Allow to optimize for intended display capabilities
  • Allow for simulation of appearance of display type X on display type Y
  • Should adapt appearance of image output for viewing environment changes (e.g. dark, dim, normal)
  • Emulation 
  • Support one type of display rendering on another display’s capabilities (e.g. simulate P3-D60 48-nit gamma 2.6 in a Rec. 2020 1000-nit PQ encoding)
  • Support for the concept of “rendering intent” - i.e. match exactly (to the extent possible) or be “optimized” for the display (e.g. start with Rec. 709 master - match exactly on P3, etc. (gamut limiting, etc.)

Next Meeting

The next meeting of the this working group is scheduled for:

TBC

Past Meetings

Past meeting notes and recordings can be found below, in reverse chronological order.

Meeting #174, December 11th, 1pm PT

Meeting #173, November 27th, 1pm PT

Meeting #172, November 13th, 1pm PT

Meeting #171, October 30th, 1pm PT

Meeting #170, October 16th, 1pm PT

Meeting #169, September 11th, 1pm PT

Meeting #168, September 4th, 1pm PT

Meeting #167, August 28th, 1pm PT

Meeting #166, August 21st, 1pm PT

Meeting #165, August 14th, 1pm PT

Meeting #164, August 7th, 1pm PT

Meeting #163, July 31st, 1pm PT

Meeting #162, July 24th, 1pm PT

Meeting #161, July 17th, 1pm PT

Meeting #160, July 10th, 1pm PT

Meeting #159, July 3rd, 1pm PT

Meeting #158, June 26th, 1pm PT

Meeting #157, June 19th, 1pm PT

Meeting #156, June 12th, 1pm PT

Meeting #155, June 5th, 1pm PT

Meeting #154, May 29th, 1pm PT

Meeting #153, May 22nd, 1pm PT

Meeting #152, May 15th, 1pm PT

Meeting #151, May 8th, 1pm PT

Meeting #150, May 1st, 1pm PT

Meeting #149, April 24th, 1pm PT

Meeting #148, April 17th, 1pm PT

Meeting #147, April 10, 1pm PT

Meeting #146, April 3rd, 1pm PT

Meeting #145, March 27th, 1pm PT

Meeting #144, March 20th, 1pm PT

Meeting #143, March 13th, 1pm PT

Meeting #142, March 6th, 1pm PT

Meeting #141, February 28th, 1pm PT

Meeting #140, February 21st, 1pm PT

Meeting #139, February 14th, 1pm PT

Meeting #138, February 7th, 1pm PT

Meeting #137, January 31st, 1pm PT

Meeting #136, January 24th, 1pm PT

Meeting #135, January 17th, 1pm PT

Meeting #134, January 10th, 1pm PT

Meeting #133, January 3rd 2024, 1pm PT

Meeting #132, December 20th, 1pm PT

Meeting #131, December 13th, 1pm PT

Meeting #130, December 6th, 1pm PT

Meeting #129, November 29th, 1pm PT

Meeting #128, November 22nd, 1pm PT

Meeting #127, November 15th, 1pm PT

Meeting #126, November 8th, 1pm PT

Meeting #125 November 1st, 1pm PT

Meeting #124 October 25th, 1pm PT

Meeting #123 October 18th, 1pm PT

Meeting #122 October 11th, 1pm PT

Meeting #121, October 4th, 1pm PT

Meeting #120, September 27th, 1pm PT

Meeting #119, September 20th, 1pm PT

Meeting #118, September 13th, 1pm PT

Meeting #117, September 6th, 1pm PT

Meeting #116, August 30th, 1pm PT

Meeting #115, August 23rd, 1pm PT

Meeting #114, August 16th, 1pm PT

Meeting #113, August 2nd, 1pm PT

Meeting #112, July 26th, 1pm PT

Meeting #111, July 19th, 1pm PT

Meeting #110, July 12th, 1pm PT

Meeting #109, July 5th, 1pm PT

Meeting #108, June 28th, 1pm PT

Meeting #107, June 21st, 1pm PT

Meeting #106, June 14th, 1pm PT

Meeting #105, June 7th, 1pm PT

Meeting #104, May 31st, 1pm PT

Meeting #103, May 24th, 1pm PT

Meeting #102, May 17th, 1pm PT

Meeting #101, May 10th, 1pm PT

Meeting #100, May 3rd, 1pm PT

Meeting #99, April 26th, 1pm PT

Meeting #98, April 19th, 1pm PT

Meeting #97, April 12th, 1pm PT

Meeting #96, April 5th, 1pm PT

Meeting #95, March 29th, 1pm PT

Meeting #94, March 22nd, 1pm PT

Meeting #93, March 15th, 1pm PT

Meeting #92, March 8th, 1pm PT

Meeting #91, March 1st, 1pm PT

Meeting #90, February 22nd, 1pm PT

Meeting #89, February 15th, 1pm PT

Meeting #88, February 8th, 1pm PT

Meeting #87, February 1st, 1pm PT

Meeting #86, January 25th, 2023, 1pm PT

Meeting #85, January 18th 2023, 1pm PT

Meeting #84, January 11th 2023, 1pm PT

Meeting #83, January 4th 2023, 1pm PT

Meeting #82, December 21st, 1pm PT

Meeting #81, December 14th, 1pm PT

Meeting #80, December 7th, 1pm PT

Meeting #79, November 30th, 1pm PT

Meeting #78, November 24th, 1pm PT

Meeting #77, November 16th, 1pm PT

Meeting #76, November 9th, 1pm PT

Meeting #75, November 2nd, 1pm PT

Meeting #74, October 26th, 1pm PT

Meeting #73, October 19th, 1pm PT

Meeting #72, October 12th, 1pm PT

Meeting #71, October 5th, 1pm PT

Meeting #70, September 28th, 1pm PT

Meeting #69, September 21st, 1pm PT

Meeting #68, September 14th, 1pm PT

Meeting #67, September 7th, 1pm PT

Meeting #66, August 31st, 1pm PT

[Meeting Recording]        Passcode: z^@=2.Rx

Meeting #65, August 17th, 1pm PT

Meeting #64, August 3rd, 1pm PDT

Meeting #63, July 27th, 1pm PDT

Meeting #62, July 20th, 1pm PDT

Meeting #61, July 13th, 1pm PDT

Meeting #60, July 6th, 1pm PDT

Meeting #59, June 29nd, 1pm PDT

Meeting #58, June 22nd, 1pm PDT

Meeting #57, June 8th, 1pm PDT

Meeting #56, June 1st, 1pm PDT

Meeting #55, May 25th, 1pm PDT

Meeting #54, May 18th, 1pm PDT

Meeting #53, May 11th, 1pm PDT

Meeting #52, May 4th, 1pm PDT

Meeting #51, April 27, 1pm PDT

Meeting #50, April 20, 1pm PDT

Meeting #49, April 13, 1pm PDT

Meeting #48, April 6, 1pm PDT

Meeting #47, March 30th, 1pm PT

Meeting #46, March 23rd, 1pm PT

Meeting #45, March 16th, 1pm PT

Meeting #44, March 9th, 1pm PT

Meeting #43, March 2nd, 1pm PT

Meeting #42: February 16th, 1pm PT

Meeting #41: February 9th, 1pm PT

Meeting #40: February 2nd, 1pm PT

Meeting #39: January 26th, 1pm PT

Meeting #38: January 19th, 1pm PT

Meeting #37: January 12th, 1pm PT

Meeting #36: January 5th (2022), 1pm PT

Meeting #35: December 22nd, 1pm PT

Meeting #34: December 15th, 1pm PT

Meeting #33: December 8th, 1pm PT

Meeting #32: December 1st, 1pm PT

Meeting #31:  November 24th, 1pm PT

Meeting #30: November 10th, 1pm PT

Meeting #29: October 27th, 1pm PT

Meeting #28: October 13th, 1pm PT

Meeting #27: September 29th, 1pm PT

Meeting #26: September 15th, 1pm PT

Meeting #25: September 1st, 1pm PT

Meeting #24: August 18th, 1pm PT

Meeting #23, July 21st,  1pm PT

Meeting #22, July 7th, 1pm PT

Meeting #21, June 23rd, 1pm PT

Meeting #20, June 9th 2021, 1pm PT

Meeting #19: Wednesday, May 26th, 1pm PST

Meeting #18: Wednesday, May 12th, 1pm PST

Meeting #17: Wednesday, April 28th, 1pm PST

Meeting #16: Wednesday, April 14th, 1pm PST

Meeting #15: Wednesday, April 7th, 1pm PST

Meeting #14: Wednesday, March 31st, 1pm PST

[Chat]

Meeting #13: Wednesday, March 24th, 11am PST

Meeting #12: Wednesday, March 17th 2021, 11am PST

Meeting #11: Wednesday, March 10th 2021, 11am PST

Meeting #10: Wednesday, March 3rd 2021, 11am PST

Meeting #9: Wednesday, February 24th 2021, 11am PST

Meeting #8: Wednesday, February 17th 2021, 11am PST

Meeting #7: Wednesday, February 10th, 2021 11am PST

Meeting #6: Wednesday, February 3rd, 2021 11am PST

Meeting #5: Wednesday, January 27th, 2021 11am PST

Meeting #4: Wednesday, January 20th, 2021 11am PST

Meeting #3: Wednesday, January 13th, 2021 11am PST

Meeting #2: Wednesday, December 16th, 2020 11am PST

Meeting #1: Wednesday, December 2nd, 2020 1pm PST

Group Norms

  • By accessing this site, you agree to abide by the following rules.
  • If you post anything, please set your Dropbox name to your actual name or a name we can reasonably identify
  • Please do not delete any entries, documents or lists on this site.  This site is read only by default.  Email the working group chair or staff technical lead if you need access to modify this page.

How the ACES VWG Process Works

If you’re new to our Virtual Working Group structure, please note the following:
  • Working Group Meetings are held on GoToMeeting 
  • Discussions are hosted on ACESCentral.com in the named VWG Discussions category 
  • Schedules, documents, to-dos, etc. are hosted on the named VWG workspace (i.e. you’re on the Workspace for this group: ACESclip Requirements Review and Revision)