- Input and output images are always assumed to have a linear transfer function.
- Side question: if that's true, is kOfxBitDepthByte ever used? A linear 8bit image would produce noticeable banding even before operating on it, right?
- If an image is 8bit or 16bit int, super-whites and sub-blacks are not representable.
- So any pipeline that wants to handle HDR content will require plugins to support float inputs/outputs?
- The assumed gamut for images is Rec. 709 (?)
In OpenFX you can’t assume or know host is using an particular color space, including gamut (Rec.709 vs. Rec.2020 vs. ACES) & tone curve (gamma vs. linear vs. log). That’s exactly why we wanted to add an extension for color space, but it keeps getting mired down in the details of general (gamma vs. log vs. linear) versus specific (S-Log3 vs. REDLog vs. etc.). The latest discussion included a suggestion that it includes a mandatory general description with fixed known tags and an optional more specific description for those apps that know more color spaces. There was also discussion of an extension to request particular color spaces, like you can say which bit depths you support.
I guess the one thing you can assume is that 8-bit is not linear <g>. At least it had better not be. But even moving to 16-bit you don’t know linear vs. not or where “white” is, and things get even more unpredictable in half/full float.
For our applications, most of our OpenFX processing is in our grading color space (e.g., Rec.709, Log, Rec.2020/S-Log3).
///d@
____________________________
Dennis Adams
Director of Technology
Sony Creative Software Inc
--
You received this message because you are subscribed to the Google Groups "ofx-discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
ofx-discussio...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/ofx-discussion/51a609a7-8c8b-4295-a7aa-615b671724c4%40fxtech.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ofx-discussion/DM6PR13MB22650E47303500CE7BAE6823F1B29%40DM6PR13MB2265.namprd13.prod.outlook.com.
For the few OpenFX plug-ins that really care about color space, they often have a parameter setting so the user can indicate what color space they think the image are in.
We don’t do conversion to keep images in some consistent color space for OpenFX. For the vast majority of our own plug-ins, color space doesn’t matter, since they just moving pixels around (sure, blending should technically be done in linear, but the video industry has been doing to “wrong” for decades for performance). Our color corrector works in the working color space, by definition.
Don’t get me wrong, we care deeply about color spaces, and all of our heavy-duty color management happens at the input side and output side, using a customized / extended OpenColorIO engine. If and when OpenFX understands color spaces, we’d use the same engine to handle conversions there too.
///d@
To view this discussion on the web visit https://groups.google.com/d/msgid/ofx-discussion/CACYGDtt8SWAu%3DiEeohv%3DauyHRUwReX2QLN24P3aqJdr16y9FtA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ofx-discussion/DM6PR13MB2265166635A5D35873460723F1B29%40DM6PR13MB2265.namprd13.prod.outlook.com.
AFAIK nobody uses that Khronos spec (it got pretty heavy from the original intent I think), but it had a nice section on color space that aligned with our discussion.
OpenColorIO is an API/SDK and doesn’t say anything about the naming of color spaces. There are some sample configs that show examples. Much more applicable is the current Academy ACES effort to product standard OCIO configs for ACES workflows, and they also have a color space naming convention we could pick up and borrow from.
In terms of transforms, that is the job of the host and/or plug-in, depending on what our color space extension looks like. Is the host just indicating color spaces to the plug, or does the plug-in have the ability to say what color spaces is supports (like OFX does for bit depths). If the former, it’s up to the plug-in to act on the color space indicated, perhaps converting it to something it prefers. If the latter, the host can do the transforms. Maybe OCIO gets used, but it should not be a requirement.
///d@
To view this discussion on the web visit https://groups.google.com/d/msgid/ofx-discussion/6d04859c-f0d5-4361-bbca-92048504b2f8n%40googlegroups.com.