The fact remains that when it comes to color images, there is more information present in RGB or 444 images that is visible in HD images at home at appropriate viewing angles on HD video displays that we need. If this were not true, the 4:2:0 encoding used for Blu-ray discs would make them look HORRIBLE EVERY TIME on EVERY DISC. Yet EVERYONE agrees that Blu-ray discs are by far, the best-looking (readily available) HD consumer source we have. Yet 80% of the color information has been removed before the discs are mastered. If color decimation were the big evil thing it was made out to be, there should be 6 or 7 years of whining and complaining on the part of home theater enthusiasts over what a horrible format Blu-ray is... but we have just the opposite situation.... when we want the best looking readily available HD video source, we go right to a Blu-ray disc that is missing 80% of the color information from the original images.

You'll get no argument from me that 4:2:0 is horrible by any means! Nobody here is seriously claiming that. What they are claiming is that there is a perceptible improvement going to 4:4:4.

Also, how many people have had a chance to do direct comparisons between 4:2:0 and 4:4:4 - not many. Perhaps if more people did, there'd be more demand.

I'm not saying it's a good idea to implement 4:4:4 - I think prioritizing bit depth is far more important than prioritizing 4:4:4, and given the bandwidth limitations that we're dealing with when it comes to implementing UHD, what with the increased resolutions and framerates, I think 4:4:4 should be one of the last priorities (although this is my naive opinion).

Here's another question: When people have shown you comparisons of 4:4:4 vs 4:2:0 pictures, you keep mentioning that those pictures are meaningless unless they are rendered natively and compared accordingly (at least that is what I took from your responses).

Do you agree that it is very easy to create a perfect simulation on an RGB monitor of what 4:4:4 vs 4:2:0 would look like?

I have a Panasonic BD-60 from 2010 or so. There are zero options to change between YCbCr 4:2:2 and RGB... I only know this info because my Denon receiver can tell me what the video signal is. Comcast box and roku 2 both RGB 8 bit 4:4:4 (duh). The BD60 only outputs YCbCr 4:2:2 no matter what mode my TV is in or RGB range options in the BD60 (std or full).

The BD60 bills it's color processor as being good, so I'm kind of curious as to why it won't do the complete conversion to 4:4:4... I think this model just spits out what ever the TVs EDID info says - no why to over ride. My TV is a Sharp Aquos D64U from 2008 or so.

I haven't done too much testing in terms of the display reproducing 4:4:4, but the colors seem not as sharp when using the BD60 compared to the Roku or cable box sending out RGB... I know this panel isn't the best but I can tell there is some difference... not a huge amount or anything... and yes the display is calibrated... as well as it can be.

There are a lot of "issues" with this post that require a LOT of information. First... the disc is encoded with 420 video. The 422 coming out of the disc player comes from guessing about the color data and what should be present in 422 where nothing existed in the original 420 on the disc. Calling 444 a "full" conversion is a bit off the mark. It would require adding more guesswork as to what additional information should be in the 444 output data. It's like taking a 129 kpbs MP3 music track and converting it back to 16-bits and 44.1 kHz sample rate present on the original CD... once you compress the track to 128 kbps, "enlarging" it back to an uncompressed 16/44.1 track involves guesswork. It's better-than-random guesswork, but you can't get the original data back once you have removed it. Disc players with 422 and 444 options produce images that look alike in both formats. so what's the point?

Can you define "much better looking"? I'm not seeing a difference when I switch between RGB and 4:4:4 YCC.
The only conclusion I can reach from that, is that the player's upsampling is not good enough to show a difference when outputting 4:2:2 or 4:4:4.
Better upsampling creates a sharper image, which will show degradation when you output 4:2:2.

"much better looking" it was an image clarity thing when I reviewed the HX909 when it was a new product about 3 years ago. Most displays won't show a difference between YCbCr and RGB. As I said before, only 5% or so of displays show one color format as "better" images than the other choice.

So a 422 image derived from a 420 original is universally accepted as the best (readily available) consumer video source we have for HD displays, but because 444 doesn't make Blu-ray discs look any better... the problem is in the disc player's conversion of 422 to 444... for 100s, maybe 1000s of brands and models of Blu-ray disc player. Right! That's a logical answer if I ever heard one. Not.

Do you agree that it is very easy to create a perfect simulation on an RGB monitor of what 4:4:4 vs 4:2:0 would look like?

Probably not, but maybe... much depends on the design of the RGB monitor and how you are doing the comparison. If you were taking a native YCbCr 420 image and converting it to RGB for display then taking the same image in native YCbCr 444 and converting THAT to RGB then comparing the 2 images in RGB mode, there are still a lot of variables. Would you convert the 420 image to 444 before converting to RGB for example... I've never done that, but it might be influential on the results. And there are variables in the conversions, etc. To do the comparison right, everything would have to be controlled and just saying something has great conversion capabilities doesn't make it so.

But I'm not much interested in "RGB monitors", I'd be more interested in what you see on consumer video displays that support both YCbCr and RGB while viewing images at normal viewing angles (45 degrees or less for example) and not magnifying the images to make differences more obvious than they would be at a normal viewing distance/angle.

Frankly, if I was using a computer as a video source for a consumer video display and I was going to believe the hype about madVR or any other popular video hardware or software, I'd just send RGB to the video display and not deal with YCbCr at all. Unless the display happens to be one of the small minority that doesn't make RGB images that look quite as good as YCbCr images.

The reason for using an RGB monitor is that it is a ready source to render fully sampled luminance and chromatic information, so it is an ideal medium to do comparisons.

If there is a way to do the comparison readily on a consumer display, then that would obviously be ideal!

The way I had in mind was something along the following scheme:

Take an uncompressed image. Each of the 1920x1080 pixels has independently specified RGB values.

Transform each pixel into its Y, Cb, Cr components.

Subsample the Cb and Cr components (for 4:2:0, replace every square block of values with a single value which is the average of the four).

Reconstruct the Y Cb Cr components into the RGB values, using linear interpolation for the chrominance values.

The basic idea is to simulate what each of the 1920x1080 pixels would be doing on a consumer video display under different subsampling schemes.

I think it would be a pretty cool exercise to do this in Matlab and compare the original image with the subsampled image.

Granted, I have no clue what sort of subsampling algorithms are used (perhaps there are more sophisticated ones that don't take a blind average, but rather weight certain values more than others), or what upsampling algorithms are used (linear interpolation might not produce the best results), but I imagine the fidelity of the image would be affected by which ones are used.

Anyone have any information on what subsampling algorithms are used during encoding of Blu-rays, and what upsampling algorithms are used by consumer level TVs during decoding?

Granted, I have no clue what sort of subsampling algorithms are used (perhaps there are more sophisticated ones that don't take a blind average, but rather weight certain values more than others), or what upsampling algorithms are used (linear interpolation might not produce the best results), but I imagine the fidelity of the image would be affected by which ones are used.

Anyone have any information on what ... upsampling algorithms are used by consumer level TVs during decoding?

Excellent post. Specifically, I would like to know what the upsampling algorithm is for YCbCr4:4:4 used by Sony BDP-S790.

Granted, I have no clue what sort of subsampling algorithms are used (perhaps there are more sophisticated ones that don't take a blind average, but rather weight certain values more than others), or what upsampling algorithms are used (linear interpolation might not produce the best results), but I imagine the fidelity of the image would be affected by which ones are used.

Anyone have any information on what ... upsampling algorithms are used by consumer level TVs during decoding?

Excellent post. Specifically, I would like to know what the upsampling algorithm is for YCbCr4:4:4 used by Sony BDP-S790.

There's a lot of stuff going on here that we'll only be able to guess at.

The concept, devoid of any extra processing, that a chroma subsampling such as 4:2:2 that requires pairs of pixels to share chromatic information will somehow be by itself just hunky-dory for text and graphics is nonsense.

But the bottom line is always confusing.

For instance: Here's what's under the hood of many Sonys (not designed for CSS, but for bit depth upscale---yet mucking with CSS is centric to its design):

In such a case, they're doing so very much work that it'd be hard to draw exact rules.

Secondly, as I stated before, there's a potential difference in chroma subsampling at the waveform level vs. digital domain. It's entirely possible that that subsampling is done entirely discretely: for 4:2:2 sharing even+odd chroma information. This has never been explicitly stated anywhere. Most of the CSS diagrams you'll find on the subject will have the caveat that they're diagramming theoretical results.

User interface engineers: Always try to think in terms of putting in "un-do"s and not confirmation dialogs on every single question! Good grief! We're STILL doing this junior level newbie nonsense in 2015?????

Chroma sub sampling was originally designed on waveforms. It's a continuous function, and it effectively is a removal of higher frequency parts of the color component signal. This resulted in less chroma information, while leaving the luma portions intact. It's been awhile since I was tearing the old YIQ apart, but the formula was a tricky one if I remember. I was trying to do 2D FFT's on live SD video feeds at the time. Royal hairy-chested programming pain in the ass on DSPs.

People with a ton of experience in 4:2:2 might be seeing the case that "two colors are always showing no difference between 4:2:2 and 4:4:4" and that may have been conceivably true in the analog days (when the colors weren't changing too quickly of course---text is a good example of not too many interchanges).

CSS done now might well be entirely discrete in nature, and it would make sense for this to be the case because we are ultimately in the digital domain and it's far easier computationally.

I have to verify this for sure, but in the digital domain, 4:2:2 could well be dependent upon the positions of the desired pixels. It really seems as this is what folks are empiracally seeing.

My copy of Poynton just arrived a couple days ago. I've looked briefly through it to see if there's an answer, but hard to tell. But I would imagine that the subsampling is done at the level of encoding (e.g. mpeg), so wouldn't it be digital by definition?

(edit: just realized that this would only be relevant in the context of Blu-rays, which isn't the main focus of this thread. Your question relates to how a TV itself does the subsampling of an RGB signal, right?)

Quote:

Originally Posted by tgm1024

That would mean that (I'll separate pairs of pixels arbitrarily with a |....this will allow us to see the halving of horizontal color information). Also note, these are pairs of actual pixels, not two halves of a single pixel.

If we want this (6 red pixels followed by 6 green, no CSS):

RR|RR|RR|GG|GG|GG

Then 4:2:2 would "produce" this visually with no problem:

RR|RR|RR|GG|GG|GG

BUT if we want this instead (5 Red+ 7 green ---- note the boundary crossing)

RR|RR|RG|GG|GG|GG

4:2:2 would have no choice but to output

RR|RR|xy|GG|GG|GG

where "xy" is calculated as the two lumas and single chroma information for that RG pair.

That is what causes the positionally dependent results...fuzzy text, etc., for when the edge of the glyph happens to fall past the even/odd pixel boundaries. Note: this is not necessarily the case when viewed as an analog waveform, because there would be more than enough bandwidth available in a horizontal line of low frequency color changes.

I have a fairly tenuous grasp of DSP and the like. Is the idea here that because an analogue signal isn't quantized into pixels, but is rather a continuous waveform, that it will create smoother transitions?

Would you be able to achieve the same result if you use a FFT in the digital domain, rather than chunking up the pixels and using a particular subsampling algorithm?

That would mean that (I'll separate pairs of pixels arbitrarily with a |....this will allow us to see the halving of horizontal color information). Also note, these are pairs of actual pixels, not two halves of a single pixel.

If we want this (6 red pixels followed by 6 green, no CSS):

RR|RR|RR|GG|GG|GG

Then 4:2:2 would "produce" this visually with no problem:

RR|RR|RR|GG|GG|GG

BUT if we want this instead (5 Red+ 7 green ---- note the boundary crossing)

RR|RR|RG|GG|GG|GG

4:2:2 would have no choice but to output

RR|RR|xy|GG|GG|GG

where "xy" is calculated as the two lumas and single chroma information for that RG pair.

That is what causes the positionally dependent results...fuzzy text, etc., for when the edge of the glyph happens to fall past the even/odd pixel boundaries. Note: this is not necessarily the case when viewed as an analog waveform, because there would be more than enough bandwidth available in a horizontal line of low frequency color changes.

I have a fairly tenuous grasp of DSP and the like. Is the idea here that because an analogue signal isn't quantized into pixels, but is rather a continuous waveform, that it will create smoother transitions?

Would you be able to achieve the same result if you use a FFT in the digital domain, rather than chunking up the pixels and using a particular subsampling algorithm?

Not "smoother" transitions necessarily, because the bulk of what forms your impression of where the color starts and ends is the luma channel, which is left alone (and as is as sharp a transition as ever).

Doing what CSS was doing for years in analog would be similar to digital---except that it would no longer care about even pixel boundaries. I think this is where Doug gets this notion from (but I can't be sure):

Quote:

Originally Posted by Doug Blackburn

There's no more color information in 444 vs 422 when you are talking about 2 colors.

This, for instance, is false in either analog or digital domain given how quickly things change horizontally. You just don't have enough information to handle, say, alternating colors pixel by pixel across the line. With certain colors, the results would be a mess.

However, if in waveform (analog) the alternating colors were at a lower frequency (say across the scanline of text) this might be ok.

Chronoptimist is really the one to answer this. I posed this question to him a week or so ago and he ran a test on it. He'll have to comment on the results, but I believe he said it seems that it is happening as pairings (discretely).

The tests for it might not be that difficult----the only problem with it is that care has to be taken to make sure of the even/odd placement of the pixels, and further, that you're not visually fooled by the placement of the subpixels up against the colors (similar to subpixel rendering).

User interface engineers: Always try to think in terms of putting in "un-do"s and not confirmation dialogs on every single question! Good grief! We're STILL doing this junior level newbie nonsense in 2015?????

Took an RGB image, and converted it to YCbCr. I then subsampled each of the chroma components, and reconstructed them into RGB images, using various forms of interpolation.

I performed three levels of subsampling.

"Half", where I split up the original information into square blocks of four pixels (2x2), and took the average of those pixels as the new value (equivalent to 4:2:0 if I'm not mistaken).

"Quarter", where I split them into blocks of 16 pixels (4x4).

"Eighth", where I split them into blocks of 64 pixels (8x8).

For each of these conditions, before converting back to RGB, I upsampled the chroma channels using three different algorithms:

Nearest neighbor

Bilinear

Bicubic

I discovered that if I converted the image from RGB to YCbCr back to RGB again without any subsampling, 100% fidelity was not preserved, presumably due to rounding errors. Accordingly, the baseline control that simulates 4:4:4 is based on this reconstructed image. That way, any differences that arise are due to the subsampling, rather than rounding errors.

The images are presented without any magnification (once u open the full size image), so the pixels you see are mapped 1:1 to the actual results.

I was rather impressed with how much perceptual quality is retained with 4:2:0, although this particular image has no sharp edges, and was based on a compressed jpg I found online. If anyone has any high quality png or tiff files that they think would challenge 4:2:0, send me a link, and I'll do the same experiment with that image.

There are a lot of "issues" with this post that require a LOT of information. First... the disc is encoded with 420 video. The 422 coming out of the disc player comes from guessing about the color data and what should be present in 422 where nothing existed in the original 420 on the disc. Calling 444 a "full" conversion is a bit off the mark. It would require adding more guesswork as to what additional information should be in the 444 output data. It's like taking a 129 kpbs MP3 music track and converting it back to 16-bits and 44.1 kHz sample rate present on the original CD... once you compress the track to 128 kbps, "enlarging" it back to an uncompressed 16/44.1 track involves guesswork. It's better-than-random guesswork, but you can't get the original data back once you have removed it. Disc players with 422 and 444 options produce images that look alike in both formats. so what's the point?

I know all this already. The point is what device does a better job at chroma scaling. A BD player with billing a good chroma processor or a TV with a Broadcom BCM3553 (HDTV on a chip processor).

I know the BD player does half the scaling to 4:2:2 YCbCr and then the TV handles the final scaling and conversion to RGB, but I'd like an option to force the BD player's chroma chip to do the whole conversion to RGB.

The only reason why I like this option is that movies tend to look slightly less detailed when playing through the BD player - and the only reason I can think of why that is - is that the TV doesn't handle YCbCr well (converting to RGB).

This is probably more of an issue with the TV... I might get my computer hooked up to it and do some testing... but it's more of a curiosity really... the image isn't bad or anything, it just looks slightly different than when an RGB signal is fed.