Video Scope Calibration

Simon said something that prompted me to thoroughly review my notes, and I discovered that I made a mistake. I ran many combinations of ranges and sample values through the different equations in the BT.709 specification, to the point that my notes got messy and I accidentally associated full-range values with the table 3.5 equations. As it turns out, the equations in table 3.5 operate on limited range RGB, as in studio 0-219 with a +16 lift. This is what Simon meant by “0 to 254 will require slightly different colour matricies” and he was right. So I apologize for giving bad information regarding table 3.5. However, this doesn’t have any impact on any other claims or conclusions.

Since many people have expressed concern over the existence of full-range BT.709 as a standard, I realize that nothing short of documentation will break a stalemate. So, I present a memorandum from the Joint Video Team of the ISO/IEC and ITU. I chose this particular document because it treats full-range BT.709 as a first-class citizen, and then goes on to demonstrate that it has a 1.2 dB PSNR advantage over its limited-range counterpart. This is why many camera companies prefer to use full range video as the acquisition format. It provides a little extra stretch latitude during color grading before banding appears. After all, 8-bit video needs all the help it can get. There is logic to the madness.

This link to the memorandum goes directly to a Microsoft Word document:
https://www.itu.int/wftp3/av-arch/jvt-site/2003_09_SanDiego/JVT-I017-L.doc

The key is to remember that BT.709 specifies both a color space and a broadcast standard. As a YCbCr color space, full range is the default just like any other YCbCr color space. Using the full bit depth to represent color slices from total white to total black is implicit in all core YCbCr color space definitions I’ve seen. The idea of using a limited subset of the full bit space available is an additional constraint because there is no other intuitive reason to throw away valuable bit space. This is why the very name “limited range” sounds like it is less than something bigger, less than something better, less than something “fuller”. The specification designers didn’t create a range called “limited” without also defining something “not limited” to go with it. They tried to make the naming convention easy on us.

So yes, “full” is the standard for the BT.709 color space which is then “limited” for the sake of the BT.709 broadcast standard. But any signal not going to broadcast is welcome to stay in full range, and it will be official and fully supported. The disjointed industries of media players, camera manufacturers, and video editors didn’t just happen to implement the same ad hoc full-range idea together… they all play nice together because full range is an actual standard defined by BT.709 color space. Full range does require a different set of equations than what is found in the BT.709 document, but that’s fine. The full equations still operate on the same color primaries, white point, transfer characteristics, etc. The limited equations in table 3.5 are simply optimized versions of the full equations to factor limited range directly into the math for convenience. That’s why the Cb and Cr equations have “multiply by 224/219” in them, because it’s a scale factor from 0-219 RGB to 16-240 CbCr. These are clearly derived from the full equations, and I should have realized that earlier while reviewing my test results.

Hopefully with the “full range BT.709” hurdle out of the way, the rest of this thread can make more sense just the way it reads.

Earnest question… does anybody know why we still use limited range for digital television? I remember it being relevant for analog television channels, but as Chris mentioned, those concerns don’t exist anymore. So why do we continue to compress the color range? What value does that provide? Legacy reasons? Were older televisions designed for 0-219 RGB instead of 0-255?

You’re reading too much into the specification.

The “BT” in BT.709 stands for “Broadcast Television”. The spec defines 16 as black and 235 as white. As I explained before, the equations have unity gain. You’re supposed to put 16 - 235 in and get 16 - 235 out. 0 - 255 isn’t part of the spec, anywhere.

If you say 0 - 255 is sRGB, fine. I’m not going to hunt down the sRGB spec.

Limiting to 16 - 235 is not and never has been relevant to analog TV. Again, you’re mixing up digital and analog. As I have explained, in analog, white is +0.714 volts, not 700 mV as in digital.

To answer your question, reread my post about “footroom” and “headroom”. A broadcaster could broadcast full-range video, BUT if the video encroaches on sync and causes the viewer’s TV set to freak out, they’re going to get reception complaints and hear from cable companies that carry their signal, and they could be looking at a citation and forfine from the FCC. So that’s why broadcasters stick to spec.

BT is only half the name. It’s also called Rec.709 because it’s a Recommendation used outside broadcast television. Hence, the color space definition. Ask any colorist.

For broadcast, no. For a color space, yes, full range comes by default. If there was only one range, why would that one range be called “limited”? Because there’s another one that isn’t.

I included a link to a document that describes the use of 0-255 using BT.709 color primaries. The document was written by Dr. Gary Sullivan who is the current chair of MPEG SC29 and is rather qualified to speak on the topic.

I’m genuinely trying to learn. How could this happen with a digital signal? Wouldn’t it be super easy to digitally clamp around the two sync values on the way down the pipeline? Why not use 1 - 254 since we have digital precision? If it’s necessary to have buffer that far away from sync even in digital, then we’re back to limited range being a hack to protect sync.

Again, not to be harsh, but you’re seriously confused.

You’d have to ask the designers of BT.601, but I think you’re unnecessarily obsessing over a very small amount of the 8-bit video range (0 - 15 and 236 - 255). That’s why people are moving toward 10-bit video.

The overhead is not there only to protect the synch pulses.

Be aware when we say Black is at 16 and White is at 235, we do not mean that there is no signal outside of these ranges - it is permissible to allow transient incursions into the over-range and under-range signal areas.

This exists for a number of reasons:

  1. Video contains aliasing artefacts and video filters introduce ringing. This is because the filters are not perfect. A severe case is shown in this Gibbs Phenomenon plot where a short filter distorts a square wave. https://en.wikipedia.org/wiki/Ringing_artifacts#/media/File:Gibbs_phenomenon_10.svg
  2. Even under perfect conditions, changing ambient lighting will cause a transient excursion as it increases as the iris control will lag.
  3. SDI and other cable formats use some of the video levels at the extremes to send synch pulses.

So if you’ve got filter rings and transient excursions and you don’t have headroom and footroom, or you clip at 16 - 235, you cause these rings and transient excursions to appear almost like a Square Wave. Square waves are bad as they:
a) cause further filter ringing later in the processing and
b) if converted to the frequency domain cause a lot of harmonics (see: https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Spectrum_square_oscillation.jpg/525px-Spectrum_square_oscillation.jpg).

Most Codecs convert to the frequency domain so the more high frequency data you have, the higher the bitrate needed.

If you’ve got fully controlled lighting and have a colourist ensuring that there is no hard clipping, or you’re working with computer generated, perfect images, full range makes sense. For video, it doesn’t.

For a longer discussion, the EBU R.103 document goes in to details.

1 Like

EBU R103 takes some of this into account. The range is 5 - 246, wider than 16 - 235.

Realised that I forgot one:
The Y’CbCr and R’G’B’ spaces are not co-incident. Not all of the valid ranges of Y’CbCr map to valid R’G’B’ values.

I have searched hard and talked to people and never been able to get a good answer to this question in the digital domain. Finally, an explanation that makes sense. Thank you Simon, this was extremely helpful.

I was under the impression that a QC check would still fail if too much data was in headroom or footroom. Is limited range there to protect against square waves during acquisition, and then the colorist pulls in the transients using more graceful techniques than hard clipping to pass QC?

The headroom is traditionally for transients. However, if you look at R.103, you’ll see it mentions a further use case - single workflow HDR and SDR productions.

If you’re concerned about passing QC, have a look at EBU r103. The latest version came out in May of this year.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.