question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Schema support for color transformations

See original GitHub issue

The only color transformation support currently modeled in OTIO right now is CDL info. This is stored in a metadata dictionary. Color transformations should be modeled as otio.schema.Effect.

This might include:

  • ASC CDL (Saturation and slope, offset, power)
  • CUBE LUTs
  • (your suggestion here!)

Issue Analytics

  • State:open
  • Created 6 years ago
  • Comments:7 (2 by maintainers)

github_iconTop GitHub Comments

1reaction
reineckecommented, Feb 3, 2020

Thanks @vvzen for keeping this discussion going.

We’ve been implementing new schema in C++ but the ideas and approach are most important to work out. A lot of times I’ll build experiments in python and then port to C++ when I feel like things are more locked down. Feel free to use whatever language you’re most comfortable with and if C++ isn’t in your comfort zone we can collaborate on porting the code once we have consensus on approach.

On to your proposal, I think it’s looking pretty good! For the effect_name it may be best to use something a bit more explicit like ASCCDLTransformation. This will differentiate from other types of color transforms and allow us to match what was authored in a given NLE. For instance, if there were a simple “Desaturate” filter in an NLE we’d most likely want to try maintain a “Desaturate” filter when the file is round-tripped rather than upconvert to a CDL filter.

I got together with our color scientist @mrd489 and looked at how we model CDL data in some of our systems. It’s pretty close to what you’re showing, in json terms we like to do something like:

{
  "slope": {
    "red": 0.0,
    "green": 0.0,
    "blue": 0.0
  },
  "offset": {
    "red": 0.0,
    "green": 0.0,
    "blue": 0.0
  },
  "power": {
    "red": 0.0,
    "green": 0.0,
    "blue": 0.0
  },
  "saturation": 0.0
}

The main point is to make the modeling as explicit as possible (avoid the position-based encoding of red, green, and blue).

One other discussion we has was around what precision we should be targeting for the float/double values. We weren’t sure what precision is considered noticeable for these values. @mrd489 referenced ST 2065 and noted matrix transforms with 10-digits precision.

It may be worth consulting with OCIO people on this as well.

Overall, I like your first stab at this a lot, just those few extra thoughts for discussion.

1reaction
jminorcommented, Jan 30, 2020

Hi @vvzen, I don’t think anyone has worked on this yet. The only recent related work was #621 which aligned the metadata CDL between some adapters. If you would like to propose an Effect subclass or schema change to support CDL better, we would be happy to discuss more. There are some CDL workflows that vary across the industry, so we should make sure there is plenty of room for people to discuss pros/cons of any proposed change. Promoting CDL from convention-based metadata to a real OTIO schema would be a great step forward.

Read more comments on GitHub >

github_iconTop Results From Across the Web

26 Transformation Schema Activities (+Definition)
Mixing colors activities are great for generating talk, excitement, and curiosity, as well as supporting transformation schemas.
Read more >
100 Schema - Transformation ideas | activities for kids ...
Nov 13, 2016 - Explore Pinder Literacy's board "Schema - Transformation", followed by 133 people on Pinterest. See more ideas about activities for...
Read more >
color-scheme - CSS: Cascading Style Sheets - MDN Web Docs
The color-scheme CSS property allows an element to indicate which color schemes it can comfortably be rendered in.
Read more >
What are Play Schemas? The Answer and 150+ Fun Schema ...
Learn about play schemas and get activity ideas for each of the 9 play schemas. ... to express that understanding children's schema could...
Read more >
Schema Evolution and Compatibility - Confluent Documentation
All supported schema formats have rules as to what changes are allowed in the ... new schema dropped the original field favorite_number (number,...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found