Meeting Summaries 

ACES Output Transforms VWG 

← Use sidebar to navigate to a particular meeting.
Use Cmd+F or Ctrl+F to search this page.

Meeting #168, September 4th, 1pm PT

Attendees

Kevin Wheatley
Scott Dyer
Nick Shaw

Daniel Brylka
Jeffrey D Mathias
Willem Nagtglas
Pekka Riikonen
Doug Walker

Meeting Notes

  • Kevin Wheatley: Alex can't be here today. We will discuss the test images, an artifact Scott found, and the future meeting cadence. Scott will discuss another release on GitHub. Doug asked if we have heard from any implementers other than OCIO. I haven't.
  • Scott Dyer: We've had people who have baked LUTs and demoed the transforms that way, but nobody has talked about a native implementation yet.
  • Doug Walker: Anything planned for IBC?
  • Scott Dyer: Steve and Alex will be there, and have meetings with vendors. At IBC we'll know more about people's roadmap, and maybe we can plan a plugfest in future.
  • Nick Shaw: I'll be at IBC and can join meetings if it's useful, subject to my availability.
  • Kevin Wheatley: I'm keen to know hat people have done with LUTs for HDR.
  • Nick Shaw: An ACEScct shaper works ok for normal images, but it wont hit the HDR peak.
  • Doug Walker: Be good to know more about people's plans.
  • Kevin Wheatley: If everybody is having to make similar compromises, maybe those could be folded back into the reference.
  • Doug Walker: Interesting to know if others are struggling with the same issues OCIO are.
  • Scott Dyer: The artifact I saw came from the lower hull gamma for HDR peaks. Pekka came up with a one line fix.
[Kevin showed the cube face image through various inverse round trips]
  • Kevin Wheatley: It works fine for SDR, but through the P3-D65 1000 nit inverse it shows artifacts after a round trip.
  • Doug Walker: The input values are the surface of the P3 gamut at 1000 nits?
  • Kevin Wheatley: Yes. I recreated it in my implementation and Pekka and I agreed it was the lower hull gamma. We could use a lookup for the lower hull gamma as I do, but that adds another lookup. Pekka found a scale for the gamma with peak luminance which fixed it. It's calculated once at init.
  • Pekka Riikonen: I don't know if it's really the lower hull gamma or the precision of the intersection approximation. But changing the gamma is the simplest fix. I found the gamma needed for a fairly clean inversion at 1000 nits. It never perfectly inverts at high luminance. I then increase the gamma with luminance in proportion to the log of peak luminance, to be 1.21 at 1000 and 1.28 at 10,000. I found that solving for lower hull gamma increases noise.
[Scott showed the commit]
  • Scott Dyer: I re-rendered all the inverse D65 transforms after the changes. And then I rendered the results through the forward transforms. I scaled the cube to a PQ value of 100, 500, 1000 etc. The source, transform and destination are listed in this spreadsheet. They are visually indistinguishable from the source, but the code values are a little more different than you might think.
  • Kevin Wheatley: If you look at the values in 3D there's a cluster of errors along each plane where one channel is zero, which suggests precision issues. Issues near peak white, and in the cyan and red corners. That's where you might expect errors.
  • Nick Shaw: And those errors are bake into the reference renders, which is what implementers will compare to.
  • Scott Dyer: Yes. I was comparing to the original, which shows the imperfection of the algorithm.
  • Kevin Wheatley: If you truncate the inverted ACES values to half-float, the round trip errors are exaggerated.
  • Nick Shaw: We need to be clear in the test documentation that's what you have to do to match the CTL reference images.
  • Scott Dyer: Are these reference files what you need Doug?
  • Doug Walker: They will be extremely helpful. So you've found suitable scalings of the test images to explore relevant areas of the color space?
  • Scott Dyer: Yes. For a PQ 1000 transform, anything with a PQ value over 0.75 won't be produced by the transform, so can't be inverted. I've added a clamp to the inverse to limit it to values that will invert. I'm working on documentation listing and describing the tests.
  • Doug Walker: The e.g. 1000 nit scaled cube images are suitable to test all 1000 nit renders, with any encoding primaries. If there are other images people need we can run the CTL on those, and also provide expected output values for particular input values. I posted about what I've made on ACES Central. To recap, we've re-organized the CTL in the repos. It's under github.com/ampas/aces. aces-dev has become aces-core. There are links to aces-look and aces-output. There will be tagged releases which are snapshots of ACES at a particular time. But adding e.g. a new IDT does not mean it is a new version of ACES. There is a look which is just the contrast curve of ACES 1 as a 1D LUT. I will add a LUT based LMT to match the whole ACES 1 look. Then I want to call it done, and any further changes will be point updates.
  • Doug Walker: What about the NaNs that Rémi found in the Marcie image?
  • Scott Dyer: I also found it rendering the synthetic chart. The precision of a pair of forward and inverse matrices means they don't quite produce an identity and you get small negatives. I added the clamp back in for PQ encoding which we previously removed.
  • Nick Shaw: Shouldn't we put it in all EOTFs? The error could manifest differently on different systems. Just clamping off negatives before the inverse EOTF.
  • Scott Dyer: I'll make those final changes and then update the repo and make a post. Then I will be out for a few weeks, so I want to leave it usable for people. Please report any issues you find.