YUV seems to only use the range 16 to 235 (luma) and 16 to 240 (chroma). Why does it not use full range (0 to 255) for all its channels? Is that because the full range of values in YUV (0 to 255) not only covers all displayable colors, but also colors that are brighter than white (IRE 100) (such as overshoot of the chroma carrier on the color yellow) and darker than black (7.5 IRE) colors (such as blanking (0 IRE) and sync (-40 IRE))?
+ Reply to Thread
Results 1 to 5 of 5
As I understand it, YUV has its roots in analog TV with normalized ranges like
Y[0 .... 1.0]
V[-0.615 .... +0.615]
In the digital realm ITU-R BT.601-7 "maps" this for 8bit limited range SDTV component video like
Y[16 ... 235]
Cb[16 ... 240]
Cr[16 ... 240]
The justification which I found for the limited range of Y,Cb,Cr is to reserve some footroom and headroom for chrominance and luminance, which is necessary to provide some space for overshooting, e.g. in combination with analog video equipment.
Still, within the limited range, there are plenty of Y,Cb,Cr combinations which lead to illegal RGB values.
I have some doubts whether U and V should be used in the context of digital video at all as synonyms for Cb and Cr, but I might be wrong. Someone more knowledgeable may chime in ........
Last edited by Sharc; 23rd Jan 2021 at 06:21.
YUV can use Full Range on both Luma and Chroma. My Android phone actually captures in Full Range YV12, to which I have to convert it back to Limited if I ever want to do anything with it. Have not cared enough to look into changing the settings.
As for why analog YUV TV had blacker than black and whiter than whites, I can only assume it's so that recovery of a clipping image is possible by people further down the chain. I have no idea and that's just a guess.
The maximum Luma (Y') was normally pretty well within the upper 235....240 limit, with some pixels in certain scenes occasionally peaking to 243, mainly around sharp high contrast transitions (> 235 probably halos and other artefacts).
The minimum Luma was as low as 10, but this can be attributed to noise, mainly found in the 'Blue' component. Discarding this noise the minimum was around 16....17.
The Chroma range was never a problem, as expected.
Also, checking for illegal RGB values did not reveal anything which would request urgent action, with the exception of perhaps few scenes with highly saturated synthetic colors e.g. from plastic objects. RGB components were occasionally clipped. Reducing the saturation somewhat brought the RGB back to legal values, but the few hard clipped signal excursions remained of course.
Last edited by Sharc; 24th Jan 2021 at 06:28. Reason: Typos
Y′ values are conventionally shifted and scaled to the range [16, 235] (referred to as studio swing or "TV levels") rather than using the full range of [0, 255] (referred to as full swing or "PC levels"). This practice was standardized in SMPTE-125M in order to accommodate signal overshoots ("ringing") due to filtering. The value 235 accommodates a maximal black-to-white overshoot of 255 − 235 = 20, or 20 / (235 − 16) = 9.1%, which is slightly larger than the theoretical maximal overshoot (Gibbs phenomenon) of about 8.9% of the maximal step. The toe-room is smaller, allowing only 16 / 219 = 7.3% overshoot, which is less than the theoretical maximal overshoot of 8.9%. This is why 16 is added to Y′ and why the Y′ coefficients in the basic transform sum to 220 instead of 255. U and V values, which may be positive or negative, are summed with 128 to make them always positive, giving a studio range of 16–240 for U and V. (These ranges are important in video editing and production, since using the wrong range will result either in an image with "clipped" blacks and whites, or a low-contrast image.)