Log in

View Full Version : RGB or Ycbcr, full or limited ?


adhara
14th January 2015, 09:17
Hi,

I asked this to madshi (in pv):


Hi Madshi,

My source is a HTPC (Jriver / MadVr).
I also have a Lumagen scaler (for video processing and 4k upscale).
My display is a Sony X9 TV (UHD).

What do you suggest in term of colorspace setup ?

HTPC out: RGB 444 ?
Lumagen out : Ycbcr 422 ?


He answered me this:

RGB 4:4:4, Full-Range.

Please use the madVR doom9 thread for support. I don't have the resources to do support via PM

The problem is sending RGB to the display is usually worse than sending YCbCr 4:2:2 because the TV will convert the RGB input to YCbCr for processing in the TV, then convert back to RGB for display... that's an extra conversion step and each conversion step causes a slight quality loss.

My first idea was:

HTPC (RGB 444) --> Lumagen unit (RGB 444) --> UHDTV

But if my HDTV convert RGB 444 to YCbCr 4:2:2 for internal processing (Motionflow, X-Reality, ..) before getting back to RGB for display, it's better to let the lumagen unit doing the convertion RGB - YCbCr (it doing this better than Inside the TV).
Second point, I'm not sure the internal video processing Inside the TV is done in YCbCr 444 (I suppose it's done in YCbCr 422)
So what is the better way in this case ?


HTPC (RGB 444) --> Lumagen unit (YCbCr 422) --> UHDTV ?


Thanks for your feedback and suggestion.

pandy
14th January 2015, 10:26
The problem is sending RGB to the display is usually worse than sending YCbCr 4:2:2 because the TV will convert the RGB input to YCbCr for processing in the TV, then convert back to RGB for display... that's an extra conversion step and each conversion step causes a slight quality loss.

Do you have any data for this claim (AFAIK PDP, LCD, LDP are RGB display type so providing RGB seem to be most natural and obvious)


My first idea was:

HTPC (RGB 444) --> Lumagen unit (RGB 444) --> UHDTV

But if my HDTV convert RGB 444 to YCbCr 4:2:2 for internal processing (Motionflow, X-Reality, ..) before getting back to RGB for display, it's better to let the lumagen unit doing the convertion RGB - YCbCr (it doing this better than Inside the TV).
Second point, I'm not sure the internal video processing Inside the TV is done in YCbCr 444 (I suppose it's done in YCbCr 422)
So what is the better way in this case ?


HTPC (RGB 444) --> Lumagen unit (YCbCr 422) --> UHDTV ?


Thanks for your feedback and suggestion.

Well HDMI prefer YCbCr 4:4:4 and usually this is also preferred by source (as general rule YCbCr is optional color space in HDMI and whenever it is supported both 4:4:4 and 4:2:2 must be supported, later to deal with HDMI speed limitations on 4k 4:2:0 was added).

In real life video data are multiple times converted from RGB to YCbCr and vice versa (and this is beyond user control unless you have equipment designed in a way to minimize such conversions but this assume that company is aware of such things and dedicated to absolute highest quality - this is not regular market practice where products are designed in cheap and fast way and developers are usually without required experience and skills).

Usually internal video processing in TV is performed on 10 - 12 bits so eventual loss is not so painful.

As a conclusion - Madshi is correct that RGB 0-255 seem to be most optimal however this is achievable on HDMI only in DVI mode (as normal HDMI specify or limited quantization 16-235; 16-240 or full quantization range but sill limited 1-254) For YCbCr it is almost necessary to stay within 16-235;16-240 to avoid problems at RGB side.

huhn
14th January 2015, 16:24
Hi,

I asked this to madshi (in pv):



He answered me this:



The problem is sending RGB to the display is usually worse than sending YCbCr 4:2:2 because the TV will convert the RGB input to YCbCr for processing in the TV, then convert back to RGB for display... that's an extra conversion step and each conversion step causes a slight quality loss.

My first idea was:

HTPC (RGB 444) --> Lumagen unit (RGB 444) --> UHDTV

But if my HDTV convert RGB 444 to YCbCr 4:2:2 for internal processing (Motionflow, X-Reality, ..) before getting back to RGB for display, it's better to let the lumagen unit doing the convertion RGB - YCbCr (it doing this better than Inside the TV).
Second point, I'm not sure the internal video processing Inside the TV is done in YCbCr 444 (I suppose it's done in YCbCr 422)
So what is the better way in this case ?


HTPC (RGB 444) --> Lumagen unit (YCbCr 422) --> UHDTV ?


Thanks for your feedback and suggestion.

are you sure your end device doesn't support full range RGB? it is pretty normal that a TV got a Pc mode where a RGB signal is not downsampled to 4:2:2.

Asmodian
14th January 2015, 21:46
The problem is sending RGB to the display is usually worse than sending YCbCr 4:2:2 because the TV will convert the RGB input to YCbCr for processing in the TV, then convert back to RGB for display... that's an extra conversion step and each conversion step causes a slight quality loss.

While this is true it doesn't change what you send out of madVR. As huhn said, look into stopping the TV doing unwanted conversions. (why do high-end TVs still think it is OK to do internal processing in YUV 4:2:2?)

If you let the TV do its X-Reality or whatever than you should not care about an extra RGB->YUV conversion; you will never be able to tell it is happening and the TVs processing will change the video data much more than the extra conversion would.

Also you might want to remove the Lumagen unit as madVR will do most everything it does at similar or better quality. As you said; extra conversion/processing steps hurt quality. Does the Lumagen really do a better conversion to YUV 4:2:2 than the TV's internal processing? How do you know? :p