More options beside "Force 4:2:2"

On the Vero 4K, could we possibly have some finer-grained options for the output colour space?

In general, what I want to do is to have the chroma format as close to the original video as possible - so, 4:2:0 wherever that’s an option, and 4:2:2 where it isn’t.

At the moment, there’s only a single checkbox for “force 4:2:2”. With the box checked we get 4:2:2 at lower resolutions, but we also get 4:2:2 instead of 4:2:0 for 4K/50 or 4K/60; with the box unchecked we get 4:2:0 for 4K/50 and 60, but 4:4:4 at 1080p and below.

If your objective is to achieve ‘passthrough’ then it’s not as simple as providing an output option. All streams are converted to 444 internally. But request noted.

If your display supports 444, 10-bit at 4k24 and 1080p then that should be what is selected. We always prefer 444 to avoid a double conversion but some displays don’t seem to like it for reasons we don’t fully understand - hence the 422 option.

Conversion from 4:2:0 to 4:2:2 (or 4:4:4) is lossless, so there is no real advantage to having multiple options just to “match the original”. Any chroma sampling conversion where the numbers in the “converted to” are bigger than the numbers in the source is lossless. Also, a conversion from 4:2:0->4:4:4->4:2:0 is also lossless, in that the original video didn’t have more than 4:2:0 information to begin with. Since the vast majority (every BluRay and UHD I own is this way…over 700 of them) of video is 4:2:0 to begin with, these conversions don’t cost you any quality at all.

The only reason to have more “force” choices would be if what your display reports in EDID isn’t really truthful in some way, and 4:2:2 doesn’t solve it.

There are two reasons for wanting to keep the video data as “raw” as possible. The first is that while conversion from 4:2:0 to 4:2:2 or 4:4:4 is indeed “lossless”, different devices use different algorithms to do the upsampling. If the source signal has already been upsampled to 4:4:4 then devices father down the chain won’t strip it back to 4:2:0 and re-upsample; but if they’re given a more “raw” signal to work with they will do the chroma upsampling themselves, and the result can be a very subtle improvement in picture quality.

The other reason is that my video processor and TV can be a little jumpy about maintaing a stable HDMI connection (despite using premium-certified cables); I’ve found that reducing the signal bandwidth to a minimum helps to keep things stable; so, using 4:2:2 or 4:2:0 where possible is preferable.

What’s the make and model of this processor?

You could allow chroma selection but you’d still need to override incompatible options when certain content is played; which would not be very transparent.

Average user will think: 444 sounds ‘pokier’ than 422 or Auto, I want the best always, let’s go for that.

This statement is logically inconsistent. If different devices convert 4:2:0 to 4:4:4 and end up with different results, then at least one of them isn’t doing it losslessly.

If the conversion makes any assumptions about the data (like assuming the original source was 4:4:4, and thus the 4:2:0 contains averaged chroma samples), then it is guaranteed to get it wrong at least part of the time.

Although you can get a smoother picture by using various tricks to split the limited chroma samples and filter them into the extra pixels, this doesn’t mean it’s anywhere close to an accurate representation of the original. It’s impossible for such tricks to re-create the original 4:4:4 (if that was the source quality before Blu-Ray encoding), and as likely to create artifacts as to make it look better.

If the original was 4:2:0 (like many HDV cameras store the on-the-fly encoded video), then mucking about with filters and such just makes the picture less accurate. It may be more pleasing so some people’s eyes, but it’s no different from getting your display calibrated by a professional and then cranking up the color…you might like it better, but it’s not an accurate representation of the video.

1 Like

These are interesting statements. Chroma upsampling always involves interpolation. If by “lossless” you mean that the original data is not lost, then it may be correct to say that upsampling is lossless.
You do get different results based on the upsampling algorithm employed. Filtering algorithms will give you better results than a simple nearest neighbor interpolation.

Going back to first principles: clearly you have to convert to 4:4:4 in order to display an image at all - in the final picture, each physical screen pixel has to have an R, G and B value. In the original 4:2:0 video data, only one pixel in every four has both luminance and chroma information - the other three only have luminance. So, to display an image on the screen, you have to create chroma values for the remaining three pixels.

It’s lossless/reversible in the sense that you don’t alter the chroma information for the pixels that have it specified in the original data. But the new chroma values are created by interpolating between the original chroma values that the video data specifies, and there is more than one algorithm that can be used to interpolate: some of the simpler options are nearest neighbour, bilinear, bicubic, etc.

Processor is a Lumagen RadiancePro; TV is an LG OLED65G6V.

And I couldn’t care less about what the average user wants. :slight_smile: The average user quite likely doesn’t use any number of the Kodi menu options classified as “Expert” - that doesn’t mean all Expert options should be deleted.

Obviously any actual output needs to be within the Vero’s HDMI spec and compatible with the EDID of the display; all I’m asking for is for it to do the things that it already does, but in a more fine-grained way.

There are two choices to make: what do we do for 1080p and 4K/24 videos, and what do we do for 4K/50 and 4K/60 videos. At the moment, if the “force 4’2:2” box is not checked, 1080p and 4K/24 are output as 4:4:4, while 4K/50 and 4K/60 are output as 4:2:0. If you check the “force 4:2:2” box then everything is output as 4:2:2 - meaning you’re using less bandwidth for 1080p and 4K/24, but more bandwidth for 4K/50 and 4K/60.

What I’m asking for is to have two checkboxes - one saying “force 4:2:2 instead of 4:4:4 for resolutions up to 4K/30” (which I would check) and the other saying “force 4:2:2 instead of 4:2:0 for 4K/50 and 4K/60” (which I would leave unchecked).

It’s not really that much more complicated, and that combination would improve compatibility with twitchy screens and connections.

Or alternatively, one box saying “force 4:2:2” and the second box saying “but don’t do that in cases where the default is 4:2:0”.

“Nearest neighbor” and “interpolation” do not apply here. Although only one chroma value is stored for 4 pixels, it applies to all 4 pixels. In other words, it is the value that all those pixels should be set to.

This is completely different from a resolution upscaling algorithm, which has to create actual new pixels.

You certainly can do various processing on the chroma samples when you convert to 4:4:4, and each different way might be more pleasing to some people, but you none of them will do any better at displaying the original picture than just copying the chroma value into each pixel it applies to. This can be seen whenever the picture is “pathological”, like alternating stripes of color…poor algorithms turn this into a solid color in-between the two, while correctly copying preserves the color stripes.

And, this is how any middle of the chain processor should do the conversion when it is known that the signal must be reduced back, since most displays have a much better adaptive algorithm for chroma upsampling that are designed specifically for the display technology.

But, if the middle-of-the-chain processing makes destructive (i.e., not reversible without loss of accuracy) changes, then the display won’t be able to work with the best data.

They most certainly do. That’s one of the major selling points of Panasonic UHD blu ray players at the moment - “multitap chroma upsampling”. It’s also once of the reasons why the image quality on the Nvidia Shield TV is so abysmal - it’s one of the few devices that actually follows your recommendation and uses a nearest-neighbour approach to chroma upsampling. (Or at least it certainly used to - as far as I know it still does).

Then there’s the question of whether, regardless of the algorithm chosen, any device actually does the upsampling in a bug-free fashion. I’m old enough to remember when the “chroma bug” affected the majority of DVD players. That particular bug is mostly a thing of the past, but some devices still upsample wrongly (not necessarily in the same way).

If that’s the case then all the more reason to allow the display to do as much of the upsampling as possible, and not do it higher up the chain.

If this sort of thing is so important to you, I suggest you buy a video processor and display that can handle all video formats that they claim to support via EDID without being “jumpy about maintaining a stabe HDMI connection”, instead of asking that all your source devices to make changes to work around the flaws in your current hardware.

3 Likes

The reason the “force 4:2:2” option was added in the first place was precisely that many TVs have difficulty with certain modes; I’m asking for an enhancement to it for the same reason.

(And also for other reasons, already discussed, that have nothing to do with signal stability).

Anyway, this thread has already gone on far longer than it should have, so I’ll bow out now. :slight_smile:

That was a kindness by the OSMC devs so that people wouldn’t have to purchase more compliant displays…there are a lot of sub-US$400 4K displays out there that aren’t always as solid as they should be. But, they are cheap.

For people that spend US$5,000 on a video processor to put in front of their over-US$6,000 display, I don’t think it’s unreasonable to expect that those top-of-the-line devices should be able to handle any signal they claim to support without issues, and not need special hand-holding from source devices.

And, when those top-of-the-line devices do have problems, it’s not unreasonable that the manufacturer fixes them, instead of forcing every devices that connects to them to have workarounds added.

2 Likes

Actually – I’ve found lower end displays to be pretty compliant.

@grahamh and I have a slight disposition for those posh expensive LG OLED displays that think standards don’t matter.

What is particularly frustrating is the fact that will they change their EDID based on settings on the display; which defeats the point of the EDID.

EDID infers an agreement about what a display can and cannot accept.

You’ll always get displays that misadvertise their capabilities – it just depends on what price point that becomes forgiveable.

Subsampled chroma values in 4:2:0 or 4:2:2 are not the original values in the source RGB/YCbCr 4:4:4. They are filtered values. If you merely copy the values as you state, you end up with geometrical artifacts (fringing effect). This is why you need to use more advanced filtering algorithms for chroma upsampling. Nearest neighbor interpolation (replicating the chroma values) as used in chroma upsampling is actually local 1 point Lagrange interpolation that has been in use in video processing for well over 60 years.

1 Like

We don’t know what the actual original source was before the data was encoded for BluRay…it could very well have been 4:2:2 or 4:2:0. Even if the very original source (the camera) used 4:4:4 or RGB, there might very well have been an intermediate that used less, especially close to the encode point, since it would be easier to color-grade the resulting encoded BluRay by working with a 4:2:0 very high bitrate intermediate.

Regardless, even if the source was 4:4:4, there is no way to know what method was used to convert to 4:2:0 for BluRay, which is a very lossy operation. So, any guesses any algorithm might make to try to recover the original information are just as likely to be horribly wrong as they are to be right.

Since the best known information the decoder has to work with is the actual data, simply copying the chroma values to each pixel will result in as close a re-creation of the data on the BluRay as possible.

I did not know this was called “nearest neighbor”, since it’s a bit of a misnomer…the chroma value directly applies to all pixels…there is no need to interpolate/guess which value to pick.

It’s unfortunate that the BluRay (and UHD) spec limits both AVC and HEVC to 4:2:0, with no option for better chroma sampling.

Correct.

I don’t think so. That might be true if the method of obtaining the chroma values was to take the average of 4 pixels. I just had to ask Google and according to this the chroma is not an average of four pixels but (is treated as) a sample at a particular location in each 2x2 pixel block, and for interlaced, at a different point in time from nearby pixels. Hence there are a number of better ways to generate a chroma value for each (luma) pixel.

Unless we can achieve ‘passthrough’ of 420, I’m afraid the OP is stuck with AML’s method of upsampling.

EDID errors or HDMI instabilities are not forgiveable at any price level, and of course the manufacturer ought to fix bugs in their hardware; but in reality they don’t. So where does that leave you?

Any given TV purchase is inevitably a trade-off; a matter of which of the negatives are worth putting up with. In my case, upgrading from my LG G6 would mean A: spending vastly more money than I can afford right now, and B: losing access to high quality 3D, which I will never, ever do until I’m forced to.

It’s also not quite as simple as the EDID being incorrect. There are some source devices that the TV is completely stable with, in all of its advertised modes. My Nvidia Shield TV, for example, despite all of its other deficiencies, is always rock solid in terms of HDMI signal; so is my Oppo 203, and so was the Sony X700 I owned for a while. But some time ago when I tried using an HDFury Integral with it, it refused to establish a 4K connection at all; and I’ve had issues with several cheap devices; and also, curiously, with my Lumagen RadiancePro in certain modes.

Having said all of the above, if I had thought that I would be the only person who would benefit from the change I’m suggesting, I wouldn’t have suggested it. There is a similar option on my Oppo 203; and Oppo wouldn’t have bothered to add that if people didn’t find it useful.