Schema support for color transformations
See original GitHub issueThe 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:
- Created 6 years ago
- Comments:7 (2 by maintainers)
Top 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 >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
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 likeASCCDLTransformation
. 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:
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.
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.