Gamut Mapping Virtual Working Group

Document Workspace

Matthias Scharfenberg & Carol Payne - Working Group Co-Chairs
Alex Forsythe - ACES Technical Lead - email
Steve Tobenkin - ACES Adoption/Comms Lead - email
ACES Gamut Mapping VWG Home: ACESCentral Gamut Mapping VWG 
Workspace Home:  https://aces.mp/VWG_HOME

Problem

Users of ACES are experiencing problems with clipping of colors and the resulting artifacts (loss of texture, intensification of color fringes). This clipping occurs at two stages in the pipeline.
  • Conversion from camera raw RGB or from the manufacturer’s encoding space into ACES AP0
  • Conversion from ACES AP0 into the working color space ACES AP1

Scope

The scope of work for the working group is as follows:
  • Propose transforms between color spaces that avoid or reduce color clipping. Solutions for this may include:
  • Proposing a suitable color encoding space for digital motion-picture cameras.
  • Proposing a suitable working color space.
  • Propose a suitable gamut mapping/compression algorithm that performs well with wide gamut, high dynamic range, scene referred content that is robust and invertible.

Anticipated Deliverable(s)

  • Documentation detailing the group’s research and findings around gamut recommendations, based on real-world and CG content.
  • New proposed gamut standards (if changing)
  • New recommendation for a gamut mapping algorithm (if applicable)

Documents

Gamut Mapping Image Submissions

Upload any image files that you think would be useful for this group to have access to for testing and development of gamut mapping solutions.


Access/view the files: Gamut Mapping Image Submissions
Test images debayered to AP0 EXRS here

Gamut Mapping Algorithm WIPs

A working, living space to try and keep all relevant info/data/links for WIP algorithm work, as ACES Central can be hard to track.

Jupyter Notebook (thanks, @Thomas M!) containing the work by Matthias, Jed, and Thomas:
Jed Smith Work:
  • Simple, fast, functional, invertible. Contains only “simple” Reinhard distance compression method
  • Contains 5 different compression function methods: log, reinhard, exp, arctan, tanh
  • . Here is a comparison plotting the difference of the curve shoulder with a threshold at 0.7 and the y=1 intersect at 1.5. In the user interface these options are sorted by how aggressive the curve is starting with the lowest. 
  • log - Natural logarithm
  • reinhard - simple Reinhard style compression curve
  • exp - Natural exponent compression curve
  • atan - Arc tangent compression curve. Has C2 continuity (that is, the 2nd derivative of the curve is smooth
  • tanh - Hyperbolic tangent compression curve. Has C2 continuity. Very aggressive slope, has issues with inverse transform the farther the max distance limit is set.
  • Add Fuse version of GamutCompress tool. Works in Blackmagic Fusion Studio, DaVinci Resolve Studio, and DaVinci Resolve Lite.
  • Add Shadow Rolloff parameter. This reduces the effect of the gamut compression below the specified achromatic value. The idea is to reduce gamut compression of shadow grain. Shadow grain can have very large distances from achromatic, which can result in differences when inverting the transform. Altering shadow grain may also not be desirable in vfx workflows, especially in the inverse direction.
  • Add helper function to the Nuke nodes which assists in calculating the maximum distance from achromatic.
  • Update default max distance values according to most common digital cinema source gamuts. See this post on acescentral for more information.
  • Remove all compression methods except powerp
  • Add parameter for power
  • Add ACEScc to the working space options in the DCTL and Matchbox versions.
  • Threshold adjustment per component for all versions of the tool.
  • Add hexagonal compression mode based on @nick-shaw's variation. Instead of only compressing primary colors (RGB), secondary colors (CMY) are compressed as well. This results in less hue skew near the primary color vector.
  • "Everything but the kitchen sink" version.
  • Includes all compression functions including power(p).
  • Add ACEScc to the working space options in the DCTL and Matchbox versions.
  • Threshold adjustment per component for all versions of the tool.
  • Add @nick-shaw's variation of the algorithm that compresses primary and secondary colors. This is exposed as the "hexagonal" checkbox.

  • Matchbox Shader version (now merged into @Jed S repo)

@Matthias S Work:

Thomas’ work is encapsulated in the Jupyter notebook above. 

@Thomas M has created a super-repository to host and track the other repositories, including snapshots of their status as of each VWG meeting. 

Relevant ACESCentral Posts:

Gamut Mapping Implementation Details

As discussed in meetings #17 and #18, our group needs to be discussing implementation details of the algorithm to the point at which it might affect the algorithm itself.  This section is a working space to discuss pros and cons of different implementations and what that means for the production workflow. Please add opinions, new ideas, and examples freely.

Example 1: Algorithm as an addition to any AP0 → AP1 colorspace transform
Pro
Con
Consistent - always applied, always inverted
Hard to maintain
Requires no extra work for the end user for the 80% of use cases
It’s a very big change to core ACES functionality

Big changes can equal big problems

Harder to change default parameters

Inversion of material not previously gamut compressed (e.g. CGI rendered in AP1) may introduce undesirable values

No image processing operation (VFX and grading) are aware of the gamut expansion back out. 

In-Gamut AP1 values close to the gamut surfaces become illegal values, which should be avoided. This further reduces the working space.

There may be situations where AP0 to AP1 conversion is desired but without gamut mapping applied.

Would operate differently than other ACES CSC transforms
Example 2: Algorithm as Separate Operator
Pro
Con
Gives control to end user & pipeline authors to choose whether or not to gamut map
Hard to track - does a DI apply it? VFX house? To all plates or only the ones that need it?
Easy to implement, basically replaces the Blue Light LMT
Increased likelihood of continued misuse (forgetting to invert, double application, using at end of stack instead of right after the IDT)
Easier to change and adapt default parameters

Applicable only to shots with visual issues

different tuning for different projects: Live Action vs CGI



Example 3: Algorithm as Separate Operator but with Enforced Dependency on AMF
Pro
Con
Trackable, creates a closed loop on an ACES pipeline
AMF is still in the beginning stages of implementation, and isn’t adopted into some of the main use cases we’re targeting for this VWG (i.e. Nuke)
Easier to change and adapt default parameters
Given the slow speed of adoption of CLF by software vendors (considering it has always notionally been a required component of ACES) AMF adoption may be equally slow.
Easier to implement, basically replaces the Blue Light LMT but sourced via AMF
Difficult to track multiple streams that have been composited together.


Gamut Mapping Testing Framework

Build to be tested, as of meeting #28 is the “bare bones” version. This has no shadow roll-off, uses only the power(p) curve, and has threshold and distance defaults from the calculations in this Colab by @Matthias S.

Proposal:

For our initial round of testing, the ACES Gamut Mapping Architecture VWG would like to propose “operation” based testing with controlled scenarios.
  • 10 compositors, 10 colorists
  • Set footage (tables below)
  • Set operations: top 3 comp, top 3 grading (listed in tables below) 
  • Locked “controls” (threshold, max distance, possibly compression too?)
  • Project setups in Nuke, Baselight, Resolve
  • Nuke: Matthias, Carol
  • Baselight: Nick, Daniele
  • Resolve: JZ, Pablo
  • Feedback via Google Form
  • Tell us your setup (Monitor, application & version, OS, etc)

Goals:
  • Get feedback from a smaller group to catch possible issues (both in the algorithm and in the test setups)
  • Limit customization to get feedback on default settings we’ve objectively chosen
  • Start to aggregate data for group report
  • Get initial feedback to seed implementation group

Non-goals:
  • “Visual” feedback:
  • We want to avoid how it “looks” by default, focus on how it helps work
  • Avoids complications in conjunction with the RRT/ODT

Compositing Tests:
Operation
Details
Test Image/Footage
Pull Matte - Bluescreen

motion blur hand, blurred lights
Degrain


Blurs, Glows & Defocus (bokeh)








Grading Tests:
Operation
Details
Test Image/Footage
Degrain


Alpha Blending


Blurs


HSL Qualifiers
e.g. aesthetic adjustments of corrected OOG colours
Fabian Matas nightclub
Hue curves
e.g. aesthetic adjustments of corrected OOG colours
Fabian Matas nightclub




Group Proposal


Working Group Documents

External Paper Resource Links

Papers describing gamut mapping algorithms using a core/confidence gamut:
  • Sara J. J. (1984) The Automated Reproduction of Pictures with Nonreproducible Colors, Ph.D. Thesis, Massachusetts Institute of Technology.
  • Katoh N. (1994) Practical method for appearance match between soft copy and hard copy, Proceedings of SPIE, vol. 2170, pp. 170–181.
  • Spaulding K. E., Ellson R. N., Sullivan J. R. (1995) UltraColor: A New Gamut Mapping Strategy, SPIE Proceedings, vol. 2414, pp. 61–68.
  • Katoh N., Ito M. (1999) Applying Non–Linear Compression to the Three–Dimensional Gamut Mapping, IS&T/SID 7th Color Imaging Conference, Scottsdale, AZ, pp. 155–159.
  • MacDonald L. W., Morovič J., Xiao K. (2001) A Topographic Gamut Compression Algorithm, Journal of Imaging Science and Technology, vol. 46, no. 3, pp. 228–236.
  • Lammens J., Morovič J., Nielsen M. and Zeng H. (2005) Adaptive re–rendering of CMYK separations for digital printing, AIC '05, Granada, Spain, 1211–1214.
  • Hersch R. D., Donzé P., Chosson S. (2007) Color images visible under UV light, Proc. Siggraph 2007, ACM Trans. Graph. vol. 26, No. 3, Article 75 (July 2007)
  • Casella S. E., Heckaman R. L., Fairchild M. D., Sakurai M. (2008) Mapping Standard Image Content to Wide-Gamut Displays, IS&T/SID 16th Color Imaging Conference, Scottsdale, AZ, pp. 106–111.

Proposed Test Shoot Scenarios

Example:
  1. Additive mixing should work intuitively:
  1. a reflective surface is lit by neutral ambient light
  1. a narrow bandwidth light source (e.g. blue led) is shining on the reflective surface
  1. part of the surface is shaded from the light source by an opaque object
  1. the shadow of the object should appear “darker” than the area lit by the narrow band light source



Next Meeting 

The next meeting of the Gamut Mapping VWG is scheduled for:
TBD

We use GoToMeeting for our conference calls and we record and then post each meeting so the community can review.  Instructions for GoToMeeting are here:

Past Meetings


Meeting #37 - December 10th, 2020

Summary

Meeting #36 - December 3rd, 2020

Summary

Meeting #35 - November 19th, 2020

Summary

Meeting #34 - November 12th, 2020

Summary

Meeting #33 - November 5th, 2020

Summary

Meeting #32 - October 8th, 2020

Summary

Meeting #31 - October 1st, 2020

Summary

Meeting #30 - September 24th, 2020

Summary

Meeting #29 - September 17th, 2020

Summary

Meeting #28 - September 10th, 2020

Summary

Meeting #27 - September 3rd, 2020

Summary

Meeting #26 - August 27th, 2020

Summary

Meeting #25 - August 20th, 2020

Summary

Meeting #24 - August 13th, 2020

Summary

Meeting #23 - August 6th, 2020

Summary

Meeting #22 - July 30th, 2020

Summary

Meeting #21 - July 23, 2020

Summary

Meeting #20 - July 16, 2020

Summary

Meeting #19 - July 9, 2020

Summary

Meeting #18 - June 25, 2020

Summary

Meeting #17 - June 18, 2020

Summary

Meeting #16 - June 11, 2020

Summary

Meeting #15 - June 4, 2020

Summary

Meeting #14 - May 28, 2020

Summary

Meeting #13 - May 21, 2020

Summary

Meeting #12 - May 14, 2020

Summary

Meeting #11 - May 7, 2020

Summary

Meeting #10 - April 16, 2020

Summary

Meeting #9 - April 9, 2020

Summary

Meeting #8 - April 2, 2020

Summary

Meeting #7 - March 26, 2020

Summary

Meeting #6 - March 19, 2020

Summary

Meeting #5 - March 12, 2020

Meeting #4 - March 5, 2020

Agenda:

  1. (re)Statement of Scope - 10 min
  1. Recap of 2/27 - 10 min
  1. ‘Qualitative’ goals discussion (Starting with Daniele’s list) - 30 min
  1. Energy preserving
  1. Monotonicity - detail preserving
  1. Fast computation(Shader friendly, non-iterative)
  1. Robustness
  1. Homework - Go through Dropbox Paper. add to list of ‘test shoot’ ideals to DropBox Paper section - 10 min 


Meeting #3 - Feb 27, 2020


Agenda:
  • (10 mins) Recap of last Thursday's meeting
  • (25 mins) Discussion of points made last Thursday for new attendees (could go longer)
  • (10 mins) Highlight a few ACES Central Posts for reading / thoughts
  • (15 mins) Logistics: Image collection & call for next meeting topics/presenters


Meeting #2 - Feb 20, 2020


Agenda
  • (20 mins) Discussion topic: should we investigate changing the gamut definitions? See ACES Central post.
  • (25 mins) Discussion: Initial thoughts from Daniele
  • (15 mins) Logistics: Image collection & call for next meeting topics/presenters


Meeting #1 - Jan 30, 2020


Agenda 
  • Introductions and round robin
  • Review working group goals, scope, proposal
  • Call for example imagery and how to store it
  • Discuss future meeting format
  • Discuss meeting times going forwards


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: Gamut Mapping VWG)