-
More “demystification”…
I’m trying to stay out of this because in both software engineering and color theory – I’m pretty much an idiot.
I’m just an end user, and HAPPY to be one.
But this has blown up so much – that I’m fascinated.
I’m also IN LOVE with being in the world where I have access to ALL SORTS and LEVELS of expertise on complex topics that I don’t understand myself. Even if I don’t understand the math, at LEAST I can learn a bit from those that do.
In one of the X groups, Final Cut Pro X Editors, Phil Pan (the color science guy with what appear to be pretty deep credentials) has been weighing in on this OVERALL engineering debate.
Just to help keep things factual, here’s a chunk of his latest public posting there. Again, uncut and un-edited. Just a discussion point for those who are interested in the topic. If you want to engage directly or ask questions of Phil, this is happening in the Facebook Final Cut Pro Editors group.
With publicly graned permission to re-post and done verbatim with no alterations or commentary of any kind beyond some extra carriage returns I added to keep the WALL OF TEXT at a minimum.:
Phil Pan writes:
Maybe I should explain to users why Apple’s scope shows data excursion below “0” and above “100” IRE. In a previous comment I erroneously pointed that this puzzling, but this stems from the fact that I haven’t done video work in a long while (I mostly focus on film). If you come back to the standards litterature, this turns out to be entirely correct. It seems to throw people off and everyone thinks it’s a bug whereas in fact it’s the proper way to treat SDI signals.If you look at SMPTE 259 M and SMPTE 292 M, you’ll see that not all code values in an 8bit or 10bit range are used for pixel data. In an 8bit interface, for instance, codes 0 and 255 are used for sync, black starts at code 16 and white is pegged at code 235. The range of codes between 1 and 15 is called ‘footroom’ and the codes between 236 and 254 is called ‘headroom’. The range spanning 1 to 254 is called “Full Range”, and the range spanning 16 to 235 is called “Narrow Range” or more commonly “Legal Range”. The proper way to process pixel values in SDI video is to peg your computational “0” at incoming code value 16, and your computational “1” at incoming code value “235”. You perform your math as you should and then, because your algorithm sits out an array of numbers, you need to limit (‘clamp’) the minimum and maximum values to whatever your video standard will accept.
The recommended practice in SDI processing is to clamp not to the Narrow range, but to the Full range. It makes sense, because that’s precisely why there is a footroom and a headroom to start with. So this is what you’re seeing in Apple’s colour tools when you scope them. Negative Lift (aka “Shadows”) will cause negative excursions down to ~7%; positive Gain (aka “Highlights”) will cause excursions above 100 IRE, to ~109% and that is absolutely the official way to do this. Tools that clamp between 0 and 100 IRE are plainly wrong and Apple are showing they’re consciencious engineers. Why “-7” and “109”, you’ll ask ?
Here’s the math (for 10bit video; the ratios are the same as for 8bit): For footroom: (1–64)/(940-64) = -0.072. For headroom: (1023-64)/(940-64) =
What’s probably not helping users, however, is the nomenclature on the scopes themselves. Some scopes have an overlay that shows the extent of Full range vs Narrow range. If there was a coloured line at 109 IRE and one at -7 IRE, with a label that said “Full range”, maybe people would be less confused.
The habit, also, to state 0 to 100% as “IRE” units is antiquated but as we’ve seen with the whole metric-vs-imperial units, in America people like to stick to their trusted old values. Nothing (especially in a computing system_ would prevent a scope from displaying the vertical scale in code values. You’d clearly see that “0” is in fact code 16 in an 8bit workflow.
Lastly, it should be noted that the same thing applies to Rec 2020.
You need to understand that 709 and 2020 both use the *same* OETF function (BT 1886, which is a gamma of 2.4). Whether they’re in 8bit or 10bits, they have the *same* brightness dynamic range. What changes between 709 and 2020 is the chromaticities of the Red, Green and Blue primaries (the perceived colour of these primaries). 2020, because its primaries are more widely spaced, is able to represent more colours and is deemed “wide gamut”. This has nothing to do with HDR. In HDR, there is more appropriately Rec 2100, which defines both the PQ and HLG OETFs (so, a much wider brightness range), but still within the Rec 2020 primaries.
This is why in Final Cut, you have three options when working i WideGamut: 2020, 2020 PQ and 2020 HLG. The first one uses the same OETF as 709 (a simple gamma 2.4); the second uses the very broad PQ range which extends to 10K NITs, and the last one is the hybrid Log/Gamma curve that is basically the Rec709 OETF for dark tones, blending smoothly into an extened power function for highlights. HLG was designed for broadcast purposes, to maximise compatibility with non-HDR TV sets.
___
AGAIN the lines above are NOT mine – they are Phils. If you choose to quote the above text, please note it’s NOT material coming from ME. (the cow quoting system occasionally inadvertanly misattributes quotes of quotes) and this is NOT my writing. And needs to be attributed to it’s ACTUAL author. Thanks.
And thanks too to ALL that have participated in this – Especially Oliver and Simon – without their bringing up their original concerns – I would never have thought about any of this – and I feel better informed because of this whole discussion.
THIS is the new world of education. People sharing thoughts and ideas, more directly.
Thank you Engelbart, Kay, and countless, countless others for making all this possible.
Creator of XinTwo – https://www.xintwo.com
The shortest path to FCP X mastery.