I think we could use a good color space/pixel format FAQ - AVS Forum | Home Theater Discussions And Reviews
Forum Jump: 
 14Likes
Reply
 
Thread Tools
post #1 of 52 Old 09-06-2014, 06:32 PM - Thread Starter
AVS Forum Special Member
 
pittsoccer33's Avatar
 
Join Date: Jul 2011
Location: Pittsburgh
Posts: 3,117
Mentioned: 4 Post(s)
Tagged: 0 Thread(s)
Quoted: 657 Post(s)
Liked: 434
I think we could use a good color space/pixel format FAQ

I started seeing some 29/59 issues for the first time so I upgraded my AMD video drivers. As part of the set up my settings were wiped out (it also deleted the Vision Control Center for the Catalyst Control Center and eliminated some options, but that's another topic).


I came to realize that I was outputting an RGB 4:4:4 PC standard 0-255 signal. Long ago I remuxed my favorite calibration videos from AVS709 to mkv files and used those to adjust my tv.


However tonight I noticed that since my mkv files use ffdshow as the video decoder it was decoding them to 16-235. So im getting 16-235 video out of mkvs and god knows what out of live tv and recordings since they use Microsoft's decoder.


My over all question, and probably one that many others have, is how exactly should all this stuff be set to get the best picture possible? Selecting 0-255 gives me a far superior black level but I know that discs were mastered to 16-235. I vaguely understand what crushed blacks are and that setting "reference black" too low will destroy shadow detail. And there are so many places in the playback chain where this could be converted.


It would really be rad if some of the forum wizards could write up best practices for each of AMD, Intel, and NVidia.
dfkimbro, ajhieb and Bizzy G.L.X. like this.

My basement media room and bar
Epson 2030, Onkyo TX-NR626, and Kodi based system

Mironto's Panasonic plasma black level restoration guide
Restore the initial MLL on a 2009 Panasonic plasma
pittsoccer33 is offline  
Sponsored Links
Advertisement
 
post #2 of 52 Old 09-06-2014, 09:10 PM
Advanced Member
 
dfkimbro's Avatar
 
Join Date: Aug 2013
Location: Franklin, TN (mostly)
Posts: 658
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Quoted: 204 Post(s)
Liked: 126
Quote:
Originally Posted by pittsoccer33 View Post
I started seeing some 29/59 issues for the first time so I upgraded my AMD video drivers. As part of the set up my settings were wiped out (it also deleted the Vision Control Center for the Catalyst Control Center and eliminated some options, but that's another topic).


I came to realize that I was outputting an RGB 4:4:4 PC standard 0-255 signal. Long ago I remuxed my favorite calibration videos from AVS709 to mkv files and used those to adjust my tv.


However tonight I noticed that since my mkv files use ffdshow as the video decoder it was decoding them to 16-235. So im getting 16-235 video out of mkvs and god knows what out of live tv and recordings since they use Microsoft's decoder.


My over all question, and probably one that many others have, is how exactly should all this stuff be set to get the best picture possible? Selecting 0-255 gives me a far superior black level but I know that discs were mastered to 16-235. I vaguely understand what crushed blacks are and that setting "reference black" too low will destroy shadow detail. And there are so many places in the playback chain where this could be converted.


It would really be rad if some of the forum wizards could write up best practices for each of AMD, Intel, and NVidia.
+1
dfkimbro is online now  
post #3 of 52 Old 09-07-2014, 12:10 AM
Advanced Member
 
SteelWill's Avatar
 
Join Date: Jan 2003
Posts: 624
Mentioned: 2 Post(s)
Tagged: 0 Thread(s)
Quoted: 79 Post(s)
Liked: 39
Go here:
http://www.tweakguides.com/HDTV_14.html
Calibrate your display brightness using this black level pattern:
http://www.tweakguides.com/images/HDTV_40.jpg

Now go here:
https://www.avsforum.com/forum/139-di...libration.html
Download MP4-2c.7z file:
http://*******/MvbRFy?gdriveurl
Play 1-Black Clipping.mp4 in the Basic Settings folder. Do your black levels match the jpg and can you see the bars flashing? If so you're using the correct dynamic range. If not you need to change the setting in your video control panel or player.

At least that's how I do it. But whichever range is correct is also dependent on what format your display is expecting. Generally it's 16-235 (YCbCr) for TV's and/or over HDMI and 0-255 (RGB) for actual PC monitors and/or over VGA/DVI.

I think. There's some more relevant info here:
https://pcmonitors.info/articles/cor...-and-amd-gpus/

Edit: Actually I lose distinction between bars 1-16 in the mkv despite seeing them in the jpg and I *think* that's still correct because the jpg is full RGB and video is limited 16-235 regardless. I played around with expanding the mkv out to make 1-16 distinct by changing the dynamic range and upping the brightness but doing either just made video look washed out and didn't add any visible detail. I took frame comparison screenshots to confirm.

Last edited by SteelWill; 09-07-2014 at 03:30 AM.
SteelWill is offline  
Sponsored Links
Advertisement
 
post #4 of 52 Old 09-08-2014, 06:59 AM - Thread Starter
AVS Forum Special Member
 
pittsoccer33's Avatar
 
Join Date: Jul 2011
Location: Pittsburgh
Posts: 3,117
Mentioned: 4 Post(s)
Tagged: 0 Thread(s)
Quoted: 657 Post(s)
Liked: 434
Thanks for the links @SteelWill (is that a Silverhawks reference?)

That makes the process seem straight forward, but I tend to confuse myself when you add in how different decoders manipulate the video signal. RGB 4:4:4 0-255 seems to give me the deepest black level which I definitely want. But I want 16 as my black "floor" so I don't lose shadow detail.

On my default YCbCr 16-235 I get an extremely bright white level that emits a very loud hum. Along with the bright whites I got a very washed out black level.

So even though I believe that is the "correct" setting I can't seem to make my tv black very black. Thats why I selected full range RGB - all my colors looked more natural and the set was less washed out.

Then I use AVS709 running thru ffdshow (which is outputting at 16-235). I have no flashing visible below 16 and no visible whites above 235. So I feel like I'm at a pretty good place, I just dont know how accurate it is.

However, if I use AVS709 without ffdshow (the way MPEG2 and transport stream containers are played) I have no visible black flashing at all - it is extremely dark.

My basement media room and bar
Epson 2030, Onkyo TX-NR626, and Kodi based system

Mironto's Panasonic plasma black level restoration guide
Restore the initial MLL on a 2009 Panasonic plasma
pittsoccer33 is offline  
post #5 of 52 Old 09-08-2014, 08:10 AM
Advanced Member
 
SteelWill's Avatar
 
Join Date: Jan 2003
Posts: 624
Mentioned: 2 Post(s)
Tagged: 0 Thread(s)
Quoted: 79 Post(s)
Liked: 39
Tally-ho.

If it looks and tests correct it should be correct. There also should be a dynamic range setting in your video card control panel that will keep things consistant between sources/players/decoders*. It's not an additional conversion, it just overrides the other settings. Stick with that and the pixel format is the only other thing to get right or wrong. I'm not really sure how those two work together to be honest since all my stuff is vga or dvi. But personally I'd set that to what it's "supposed" to be according to that last link, use the dynamic range setting to get the darkest blacks that don't clip detail, then use the color adjustments in the video card's control panel or the software player to get the levels to look their best. (Since I've already used the display's controls to calibrate to the jpeg I don't want to use those and throw that off).

*ffdshow might be bypassing this altogether if it's not outputting NV12.

I'm certainly no expert and may be wildly off base on something, because like the topic states, we really could use a FAQ on this.
SteelWill is offline  
post #6 of 52 Old 09-08-2014, 10:55 AM
AVS Forum Club Gold
 
renethx's Avatar
 
Join Date: Jan 2006
Posts: 16,132
Mentioned: 20 Post(s)
Tagged: 1 Thread(s)
Quoted: 246 Post(s)
Liked: 402
Quote:
Originally Posted by pittsoccer33 View Post
However tonight I noticed that since my mkv files use ffdshow as the video decoder it was decoding them to 16-235. So im getting 16-235 video out of mkvs and god knows what out of live tv and recordings since they use Microsoft's decoder.
16-235 is normal. Video is stored in compressed YCbCr 4:2:0 with Y 16-235 range. ffdshow (and most video decoders including Microsoft's) decodes it and outputs in NV12 color space (a YCbCr 4:2:0 variant with 16-235 luma range) to the video renderer unless you force another color space in ffdshow. NV12 is required for GPU to process the video stream via DXVA2: deinterlacing (NV12->NV12), chroma upsampling and image (=luma+chroma) scaling (NV12->YCbCr 4:4:4), color space conversion (YCbCr 4:4:4->RGB), dithering (all processed in higher bit depth, so need to be converted to 10/8 bit) to avoid bandings. EVR outputs RGB 0-255 8bit. EVR CR/madVR outputs RGB 0-255 or 16-235 8/10bit. (Don't ask me all the details. )

Furthermore you have YCbCr 4:2:2, YCbCr 4:4:4, RGB limited range, and RGB full range choices in AMD CCC, that is done by GPU driver in the final step. If you select RGB full range, GPU driver will leave the pixels untouched.

So the best practice would be: leave the video decoder to the default settings, let the video renderer output RGB 0-255 and select RGB 0-255 in CCC as long as your display supports 0-255. This way you can avoid possible double expansion/compression and bandings. GPU driver's algorithms may not be good for some processing tasks. By combining with madVR's algorithms we could get the best PQ.

Last edited by renethx; 09-08-2014 at 12:02 PM.
renethx is offline  
post #7 of 52 Old 09-08-2014, 03:58 PM
AVS Forum Special Member
 
ES_Revenge's Avatar
 
Join Date: Jan 2007
Location: Toronto, ON Canada
Posts: 2,276
Mentioned: 5 Post(s)
Tagged: 0 Thread(s)
Quoted: 463 Post(s)
Liked: 158
Yeah I think a good FAQ/sticky thread about this subject in particular would be a good idea.

I'm pretty sure I have a good understanding of black level stuff like 0-255 and 16-235 as well as all the BTB/WTW stuff. However I'm pretty lost with the x:y:z business and what exactly constitutes "10-bit" and "12-bit" colour. For example with my PC (which I set up as Full RGB 0-255), my TV indicates a "10-bit" signal as long as I'm using HDMI to get the signal there. On signals below 10-bit (I'm guessing must be 8-bit?) the TV indicates nothing in that area of the display info bar.

On my PS3 though (also set to 0-255/Full RGB) my TV indicates "12-bit". Why/how that is, I'm not really sure about. Apparently only "pro graphics" PC videocards like FireGL and Quadro take can output 12-bit, but what makes 12-bit even useful or beneficial from the PS3 I'm not sure. I doubt my TV is anything more than a 10-bit panel, so I don't get why 12-bit matters.

Additionally what I don't get is why they never built this stuff into HDMI handshaking and EDID? I mean if a TV doesn't accept or properly handle certain resolutions or audio formats, it will never get them because HDMI doesn't send sets stuff they can't receive. But with the black levels and colour spaces and all that, TVs just accept anything and try to display it even if they won't be displayed correctly. Hard to understand what the HDMI developers were thinking there. Some of this stuff is just as important as having the right resolution and audio formats, but that doesn't seem to matter. If your set can't handle 0-255? Well you can just send it anyway and everything will be dark and the blacks will be crushed, etc. Even if your set can handle it (which most can these days), if you don't set it up right, it won't be right! WTF? Who thought that would be a good idea? LOL.

Another thing I don't get relates to the same thing but extending to DVI. As I understand it, DVI is always in RGB 0-255--correct me if I'm mistaken--and 16-235 is not supported/does not exist with a DVI connection (or with a DVI-HDMI connection). So that means you could never send a DVI display 16-235, nor could you send it YCbCr, correct? Fair enough, but if you use a DVI-HDMI connection you can send a display that only supports 16-235, full RGB anyway and it will crush the blacks as mentioned. But why is this even possible? If HDMI sets must accept RGB (because DVI connections work) why aren't they all capable of 0-255 display? My oldest TV (which is not in use anymore) most certainly cannot; though it can display RGB (because clearly, there's an image) it's not capable of displaying 0-255. Why is this even possible?! Since DVI-HDMI connections are possible on all HDMI sets, I don't get how 0-255 would not be mandatory as well. Because, it's the only thing you can get from DVI! (Again, as I understand it.) In other words if you hook up an older TV which only has HDMI to a DVI output, you will never get the correct display despite the fact that you will get a display/image. But nowhere in TV manuals do they ever state stuff like this!
ES_Revenge is offline  
post #8 of 52 Old 09-08-2014, 04:29 PM
Advanced Member
 
SteelWill's Avatar
 
Join Date: Jan 2003
Posts: 624
Mentioned: 2 Post(s)
Tagged: 0 Thread(s)
Quoted: 79 Post(s)
Liked: 39
I think the problem may be that there's actually no one anywhere who completely understands all this.
SteelWill is offline  
post #9 of 52 Old 09-09-2014, 01:03 AM
AVS Forum Club Gold
 
renethx's Avatar
 
Join Date: Jan 2006
Posts: 16,132
Mentioned: 20 Post(s)
Tagged: 1 Thread(s)
Quoted: 246 Post(s)
Liked: 402
Quote:
Originally Posted by ES_Revenge View Post
I'm pretty lost with the x:y:z business and what exactly constitutes "10-bit" and "12-bit" colour. For example with my PC (which I set up as Full RGB 0-255), my TV indicates a "10-bit" signal as long as I'm using HDMI to get the signal there. On signals below 10-bit (I'm guessing must be 8-bit?) the TV indicates nothing in that area of the display info bar.

On my PS3 though (also set to 0-255/Full RGB) my TV indicates "12-bit". Why/how that is, I'm not really sure about. Apparently only "pro graphics" PC videocards like FireGL and Quadro take can output 12-bit, but what makes 12-bit even useful or beneficial from the PS3 I'm not sure. I doubt my TV is anything more than a 10-bit panel, so I don't get why 12-bit matters.
Consumer Radeon cards also support higher color depth. In video playback, the source is 8bit (or 10bit in some re-encoded contents), the decoder outputs 8bit (or 10bit) and the video renderer processes in 16bit (in the case of madVR) for precision, then dithers to 8bit/10bit. EVR/madVR supports 8bit output, EVR-CP supports 8/10bit output. So outputting 10bit may make a sense if you use MPC-HC/BE's EVR-CP and your display supports it properly.

Madshi posted:

Quote:
Now the latest AMD version seemingly has added dithering capability - which is very nice improvement!! My interpretation of the different bitdepth settings is as follows:

12bit: AMD stretches from 0-255 to 16-235 and dithers to 12bit.
10bit: AMD stretches from 0-255 to 16-235 and dithers to 10bit.
8bit: AMD stretches from 0-255 to 16-235 and dithers to 8bit.
6bit: AMD stretches from 0-255 to 16-235 and dithers to 6bit
So another benefit of outputting higher bitdepth: lowering the noise when you MUST convert full RGB to limited RGB for some reason. You can avoid this entirely with full RGB output, of course.

In computer graphics, outputting higher bitdepth is surely beneficial. That's why NVIDIA Qudaro, as well as AMD FirePro (and Radeon) supports higher color depth.

Quote:
Originally Posted by ES_Revenge View Post
Another thing I don't get relates to the same thing but extending to DVI. As I understand it, DVI is always in RGB 0-255--correct me if I'm mistaken--and 16-235 is not supported/does not exist with a DVI connection (or with a DVI-HDMI connection). So that means you could never send a DVI display 16-235, nor could you send it YCbCr, correct? Fair enough, but if you use a DVI-HDMI connection you can send a display that only supports 16-235, full RGB anyway and it will crush the blacks as mentioned. But why is this even possible? If HDMI sets must accept RGB (because DVI connections work) why aren't they all capable of 0-255 display? My oldest TV (which is not in use anymore) most certainly cannot; though it can display RGB (because clearly, there's an image) it's not capable of displaying 0-255. Why is this even possible?! Since DVI-HDMI connections are possible on all HDMI sets, I don't get how 0-255 would not be mandatory as well. Because, it's the only thing you can get from DVI! (Again, as I understand it.) In other words if you hook up an older TV which only has HDMI to a DVI output, you will never get the correct display despite the fact that you will get a display/image. But nowhere in TV manuals do they ever state stuff like this!
Many PC monitors support only full RGB with HDMI in. That's why people are complaining about Intel HD Graphics, which always sends limited RGB if it detects HDMI in the display (there is a workaround by hacking the registry). (But I am not sure what you try to say.)

Last edited by renethx; 09-10-2014 at 08:48 PM.
renethx is offline  
post #10 of 52 Old 09-09-2014, 03:57 AM
Qaq
Senior Member
 
Qaq's Avatar
 
Join Date: Nov 2009
Posts: 470
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Quoted: 4 Post(s)
Liked: 13
Modern TVs have PC modes for RGB input, but still far from truly RGB displays. Some of them always convert RGB back to YUV (with chroma downsampling from 444 to 422 or even 420) and AFAIK all of them process picture in YUV in "cinema motion" modes. They are just made for stand alone players with YUV pipelines. From that point our best option seems like YUV 444 (422 for some TVs).
MadVR has an option to output in YUV, but I don't know how good that implementation is.

Burned by the Audio Inquisition

Last edited by Qaq; 09-09-2014 at 04:01 AM.
Qaq is offline  
post #11 of 52 Old 09-09-2014, 09:12 AM
AVS Forum Club Gold
 
renethx's Avatar
 
Join Date: Jan 2006
Posts: 16,132
Mentioned: 20 Post(s)
Tagged: 1 Thread(s)
Quoted: 246 Post(s)
Liked: 402
Quote:
Originally Posted by Qaq View Post
Modern TVs have PC modes for RGB input, but still far from truly RGB displays. Some of them always convert RGB back to YUV (with chroma downsampling from 444 to 422 or even 420) and AFAIK all of them process picture in YUV in "cinema motion" modes. They are just made for stand alone players with YUV pipelines. From that point our best option seems like YUV 444 (422 for some TVs).
MadVR has an option to output in YUV, but I don't know how good that implementation is.
So there are three choices:

1. Send full RGB to TV and let TV convert to YCbCr 4:2:2 in 10/12bit mode for its internal process.
2. Let GPU driver convert full RGB to YCbCr 4:4:4 or 4:2:2.
3. Let madVR output YCbCr (and let GPU output full RGB).

Perhaps most people dismiss the third option because all graphics images other than video from madVR will be tinted. The first option seems to be safer (in particular with NVIDIA and Intel GPUs).

Last edited by renethx; 09-09-2014 at 09:21 AM.
renethx is offline  
post #12 of 52 Old 09-09-2014, 11:17 AM
AVS Forum Club Gold
 
renethx's Avatar
 
Join Date: Jan 2006
Posts: 16,132
Mentioned: 20 Post(s)
Tagged: 1 Thread(s)
Quoted: 246 Post(s)
Liked: 402
I found a readable article by Spears & Musil, Choosing a Color Space (highly recommended to novices). I will cite some of it:

Quote:
And now we get to the meat of this guide. What format should you set your player to output? If you have a video processor, what format should you feed it, and what format should you have it produce? Or does it even matter?

The answer, as with so many other things in life, is, “It depends.”

The Conversion Chain

Let’s consider the process necessary to get video off a shiny disc (or from a digital broadcast or cable channel). First the video needs to be converted from 4:2:0 to 4:2:2, then to 4:4:4, then to RGB, and finally it can be fed to the display controller. This is the same process no matter what display technology is being used, whether LCD, DLP, plasma, or CRT. It’s possible to shortcut the process slightly by going directly from 4:2:0 to 4:4:4, but in practice this isn’t used as often as you’d think.

If you choose to output 4:2:2 from your player to the display, then the display will need to do the scaling to 4:4:4 and then to RGB. If you output 4:4:4 to the display, the display will not need to do any scaling at all, but will need to do the conversion to RGB. If you output RGB to the display, then the display can avoid all conversion steps and send the signal right to the controller. No matter which you choose, the same conversion steps are still happening; all you are choosing is which device is performing the conversion.

There’s no specific reason that a display or a player would be the optimal place to do these conversion steps. In theory doing the conversion in the display minimizes the amount of data that has to flow across the HDMI link, but in practice HDMI is more than adequate to handle any format all the way up to 4:4:4 or RGB.

So the key to choosing the right color space to output is finding out which device does a better job of converting color spaces. This is not always easy to evaluate, and it’s quite possible for one device to do a better job in one area, like 4:2:2 to 4:4:4, but do worse in another area, like 4:4:4 to RGB.

You’d think that if a display handles a 4:2:2 input signal well, then feeding it an RGB signal would be no worse, but in fact some displays do extra work when they are fed RGB, because they convert the signal back to 4:4:4 or even 4:2:2! This happens because one or more of their internal processing chips is designed only for one color format. So for these displays, sending in any format other than the one it will use for internal processing will only add extra processing and potentially degrade the image.

The same logic applies to video processors. If the processor does all its work in 4:2:2, there’s no advantage to sending it RGB or 4:4:4, and in fact there may be a disadvantage.

Unfortunately device makers tend not to reveal the exact processing steps they use internally, or the algorithms they use to convert various color spaces to RGB. Some use different algorithms depending on which color space is fed in. The bottom line is to assume nothing, and test every combination.
Inside HTPC (where full RGB is the standard color space), there are two places for color space conversion (in this order):

1. Video player: YCbCr 4:2:0 -> YCbCr 4:4:4 (chroma upsampling) -> full RGB, possibly with the help of GPU/GPU driver via DXVA2. Then
2. GPU driver: full RGB -> full RGB, limited RGB, YCbCr 4:4:4 or YCbCr 4:2:2. This is globally applied to all graphics images.

Assuming the display device's processor works in YCbCr natively, the problem reduces to:

- RGB->YCbCr by the GPU driver
vs.
- RGB->YCbCr by the display device

It depends on your GPU and your display which is better. You will know the answer only after experiments.
Bizzy G.L.X. and htpcforever like this.

Last edited by renethx; 09-11-2014 at 09:04 AM.
renethx is offline  
post #13 of 52 Old 09-15-2014, 06:00 PM
Senior Member
 
Bizzy G.L.X.'s Avatar
 
Join Date: Aug 2010
Location: Wash DC
Posts: 200
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Quoted: 10 Post(s)
Liked: 22
renethx said: Inside HTPC (where full RGB is the standard color space), there are two places for color space conversion (in this order):

1. Video player: YCbCr 4:2:0 -> YCbCr 4:4:4 (chroma upsampling) -> full RGB, possibly with the help of GPU/GPU driver via DXVA2. Then
2. GPU driver: full RGB -> full RGB, limited RGB, YCbCr 4:4:4 or YCbCr 4:2:2. This is globally applied to all graphics images.


Thanks renethx, really good info.


It's interesting that it's the video player first and the GPU driver second. I would have thought the GPU needs to touch the stream first before sending it off to the video player (GPU then Video Player, then Renderer).

Case:Fractal Design Node 605
APU:AMD Richland A10-6700
RAM:8GB AMD 1866
Board:ASUS A88XM Plus
Storage:OCZ 256 GB Vector
Optical:Panasonic Slim BDR
PS:Silverstone Strider 550 Gold SFF
Software:WMC8+LAV+madVR+MPC-HC
Input:Logitech K400 mini KB/trackpad+Harmony 720
Output:Sammy 55" S6 LED LCD+Yamaha soundbar
Bizzy G.L.X. is offline  
post #14 of 52 Old 09-15-2014, 10:34 PM
AVS Forum Club Gold
 
renethx's Avatar
 
Join Date: Jan 2006
Posts: 16,132
Mentioned: 20 Post(s)
Tagged: 1 Thread(s)
Quoted: 246 Post(s)
Liked: 402
Quote:
Originally Posted by Bizzy G.L.X. View Post
renethx said: Inside HTPC (where full RGB is the standard color space), there are two places for color space conversion (in this order):

1. Video player: YCbCr 4:2:0 -> YCbCr 4:4:4 (chroma upsampling) -> full RGB, possibly with the help of GPU/GPU driver via DXVA2. Then
2. GPU driver: full RGB -> full RGB, limited RGB, YCbCr 4:4:4 or YCbCr 4:2:2. This is globally applied to all graphics images.


Thanks renethx, really good info.


It's interesting that it's the video player first and the GPU driver second. I would have thought the GPU needs to touch the stream first before sending it off to the video player (GPU then Video Player, then Renderer).
Actually the player may use GPU (hardware) or GPU+GPU driver in several ways. For example,

- DXVA decoder: decoding the compressed video via DXVA
- DXVA processor: processing the uncompressed video via DXVA (deinterlacing and various post-processing tasks)

On the other hand color space conversion by GPU driver applies to all contents in the desktop globally, including photo viewers, applications, games, videos.

Last edited by renethx; 09-15-2014 at 10:38 PM.
renethx is offline  
post #15 of 52 Old 09-18-2014, 02:14 PM
 
ajhieb's Avatar
 
Join Date: Jul 2009
Location: The Commonwealth, not the Jelly.
Posts: 2,696
Mentioned: 15 Post(s)
Tagged: 0 Thread(s)
Quoted: 1037 Post(s)
Liked: 698
So, slightly off topic, but I don't think it's worth its own thread...

Why in the heck does Limited RGB even exist in the first place? Is there any advantage to using it over Full RGB beyond the compatibility with other devices that are using it? Does it use less bandwidth or something like that?
ajhieb is offline  
post #16 of 52 Old 09-18-2014, 03:21 PM
AVS Forum Special Member
 
Aleron Ives's Avatar
 
Join Date: Oct 2009
Posts: 5,149
Mentioned: 4 Post(s)
Tagged: 0 Thread(s)
Quoted: 1845 Post(s)
Liked: 1634
According to the Wikipedia article on YCbCr:

"The scaling that results in the use of a smaller range of digital values than what might appear to be desirable for representation of the nominal range of the input data allows for some "overshoot" and "undershoot" during processing without necessitating undesirable clipping. This "head-room" and "toe-room" can also be used for extension of the nominal color gamut, as specified by xvYCC."

which sounds like a fairly reasonable explanation to me.
ajhieb likes this.
Aleron Ives is offline  
post #17 of 52 Old 09-18-2014, 05:53 PM
AVS Forum Special Member
 
sawfish's Avatar
 
Join Date: Feb 2013
Posts: 1,000
Mentioned: 1 Post(s)
Tagged: 0 Thread(s)
Quoted: 146 Post(s)
Liked: 150
Quote:
Originally Posted by ajhieb View Post
So, slightly off topic, but I don't think it's worth its own thread...

Why in the heck does Limited RGB even exist in the first place? Is there any advantage to using it over Full RGB beyond the compatibility with other devices that are using it? Does it use less bandwidth or something like that?
I listed several advantages at the end of this message:

https://www.avsforum.com/forum/139-di...l#post26956129

See this one for a description of levels:

https://www.avsforum.com/forum/139-di...l#post26449881

I really hate the "RGB Limited" and "RGB Full" terms; as I wrote the other day, the full/limited terminology should be abolished because it's too confusing, as the real difference is the reference black and white points, and outputting video as "full range" means expanding [16-235] to [0-255] and throwing away BTB and WTW. "Full range" means discarding information and scaling values unevenly as opposed to "Limited Range", which is passthrough. That is, if your video player is outputting Video Levels, the video card doesn't need to touch the video in any way. As long as your TV is configured for Video Levels, it should calibrate the same as when using a BD player or other video device as source.
ajhieb likes this.
sawfish is offline  
post #18 of 52 Old 09-19-2014, 07:10 AM
Advanced Member
 
SteelWill's Avatar
 
Join Date: Jan 2003
Posts: 624
Mentioned: 2 Post(s)
Tagged: 0 Thread(s)
Quoted: 79 Post(s)
Liked: 39
So can you or anyone explain BTB and WTW? Full 0 and Limited 16 should be the same black, and should be the blackest back. If you have BTB below 16 in Limited how is that even visible on that scale? Or if it is visible how is that not in effect Full with 0 being real black and 16 just being a grey?
pittsoccer33 likes this.
SteelWill is offline  
post #19 of 52 Old 09-19-2014, 07:38 AM
 
ajhieb's Avatar
 
Join Date: Jul 2009
Location: The Commonwealth, not the Jelly.
Posts: 2,696
Mentioned: 15 Post(s)
Tagged: 0 Thread(s)
Quoted: 1037 Post(s)
Liked: 698
Quote:
Originally Posted by Aleron Ives View Post
According to the Wikipedia article on YCbCr:

"The scaling that results in the use of a smaller range of digital values than what might appear to be desirable for representation of the nominal range of the input data allows for some "overshoot" and "undershoot" during processing without necessitating undesirable clipping. This "head-room" and "toe-room" can also be used for extension of the nominal color gamut, as specified by xvYCC."

which sounds like a fairly reasonable explanation to me.
Quote:
Originally Posted by sawfish View Post
I listed several advantages at the end of this message:

https://www.avsforum.com/forum/139-di...l#post26956129

See this one for a description of levels:

https://www.avsforum.com/forum/139-di...l#post26449881

I really hate the "RGB Limited" and "RGB Full" terms; as I wrote the other day, the full/limited terminology should be abolished because it's too confusing, as the real difference is the reference black and white points, and outputting video as "full range" means expanding [16-235] to [0-255] and throwing away BTB and WTW. "Full range" means discarding information and scaling values unevenly as opposed to "Limited Range", which is passthrough. That is, if your video player is outputting Video Levels, the video card doesn't need to touch the video in any way. As long as your TV is configured for Video Levels, it should calibrate the same as when using a BD player or other video device as source.

Thanks for helping to clarify things guys.

In hindsight I probably phrased my question poorly though. Instead of asking why limited (or Video Levels if you prefer) exists, I guess I'm asking why there are 2 different standards in the consumer world at all.

Perhaps I don't understand it properly (scratch that, I'm sure of it) but it would seem to me that the headroom and toeroom would only really be useful for things like colorspace conversions. If I'm just displaying pixels in what amounts to a completely digital signal chain, then a given value in the video stream should correspond with an exact brightness level of a pixel on the screen, every time. I wouldn't think overshoot or undershoot would be an issue for displaying the video.

Let me put it this way... what would be the disadvantage if CE devices and computers all used the same range and the other one never existed in the first place?
ajhieb is offline  
post #20 of 52 Old 09-19-2014, 10:38 AM
AVS Forum Addicted Member
 
Foxbat121's Avatar
 
Join Date: Jul 2003
Location: VA
Posts: 11,845
Mentioned: 10 Post(s)
Tagged: 0 Thread(s)
Quoted: 698 Post(s)
Liked: 490
You will not be able to calibrate your TV/Monitor for one.


Second of all, videos are all stored on media as YCbCr. A conversion is always needed to final display of RGB. So saying there is no colorspace conversion is not true.


Video industry has always been with the standard with head rooms even in analog days (IRE reference level). So, in other words, PC range should never existed.
ajhieb likes this.
Foxbat121 is online now  
post #21 of 52 Old 09-19-2014, 12:00 PM
 
ajhieb's Avatar
 
Join Date: Jul 2009
Location: The Commonwealth, not the Jelly.
Posts: 2,696
Mentioned: 15 Post(s)
Tagged: 0 Thread(s)
Quoted: 1037 Post(s)
Liked: 698
Quote:
Originally Posted by Foxbat121 View Post
You will not be able to calibrate your TV/Monitor for one.


Second of all, videos are all stored on media as YCbCr. A conversion is always needed to final display of RGB. So saying there is no colorspace conversion is not true.


Video industry has always been with the standard with head rooms even in analog days (IRE reference level). So, in other words, PC range should never existed.
Okay, that's what I was trying to get at. It seemed to me that one of the two wasn't necessary. Thanks for clarifying.
ajhieb is offline  
post #22 of 52 Old 09-19-2014, 04:40 PM
AVS Forum Special Member
 
Nevcairiel's Avatar
 
Join Date: Mar 2010
Location: Germany
Posts: 1,058
Mentioned: 3 Post(s)
Tagged: 0 Thread(s)
Quoted: 45 Post(s)
Liked: 136
Quote:
Originally Posted by sawfish View Post
the real difference is the reference black and white points, and outputting video as "full range" means expanding [16-235] to [0-255] and throwing away BTB and WTW. "Full range" means discarding information and scaling values unevenly
This is not accurate, if done properly.
It is true that BTB and WTW are being discarded, but any good calibration will have those outside the visible spectrum anyway, but this is up to debate i guess and not my main point.

The important aspect is that you DO NOT convert RGB 16-235 to 0-255 when you output "full range" RGB, at least not when its done properly (some players do this wrong, and its terrible for quality)

Video is generally YCbCr in the source, which gets converted to RGB. In this conversion step, you can decide if your target is going to be 0-255 RGB, or 16-235 RGB. The conversion from YCbCr is a floating point operation, which means it'll result in floating point data, not exact numbers fitting a scale of 16-235 (or 0-255 for that matter), the conversion factors are very odd fractions anyway, and the only difference between targeting 16-235 or 0-255 RGB output is slightly adjusting the factors.

Following this chain, one could even argue that 0-255 has actually more room to store finer variations of the output and require less rounding, but since the difference is not even half a bit, that argument is a bit weak.

My main argument for deciding if you want 0-255 or 16-235 output usually boils down to ease of use:
If your TV accepts 0-255 properly, then its much easier to set your video player to also output 0-255, and everything your HTPC outputs looks good on the TV.
If your TV does not accept 0-255, but only 16-235, you have two alternate choices, either set your graphics card to output 16-235, or your video player (but not both, never both). The first has the distinct disadvantage that your graphics card will do the dreaded 0-255 -> 16-235 conversion, in questionable quality, and the second has the disadvantage that anything BUT video has the black and white levels clipped, which is OK if video is all you do, but not OK if you also browse, game or simply look at pictures.

In the end it comes down to PCs always operating at 0-255 internally, and outputting anything else has its drawbacks in some area.
pittsoccer33 likes this.

Last edited by Nevcairiel; 09-19-2014 at 04:47 PM.
Nevcairiel is offline  
post #23 of 52 Old 09-19-2014, 08:37 PM
AVS Forum Special Member
 
sawfish's Avatar
 
Join Date: Feb 2013
Posts: 1,000
Mentioned: 1 Post(s)
Tagged: 0 Thread(s)
Quoted: 146 Post(s)
Liked: 150
Quote:
Originally Posted by Nevcairiel View Post
This is not accurate, if done properly.
It is true that BTB and WTW are being discarded, but any good calibration will have those outside the visible spectrum anyway, but this is up to debate i guess and not my main point.
BTB being invisible on a calibrated display is not up for debate; it should be invisible. WTW being visible really isn't either. See Spears and Munsil for more.

Quote:
Originally Posted by Nevcairiel View Post
The important aspect is that you DO NOT convert RGB 16-235 to 0-255 when you output "full range" RGB, at least not when its done properly (some players do this wrong, and its terrible for quality)

Video is generally YCbCr in the source, which gets converted to RGB. In this conversion step, you can decide if your target is going to be 0-255 RGB, or 16-235 RGB. The conversion from YCbCr is a floating point operation, which means it'll result in floating point data, not exact numbers fitting a scale of 16-235 (or 0-255 for that matter), the conversion factors are very odd fractions anyway, and the only difference between targeting 16-235 or 0-255 RGB output is slightly adjusting the factors.
Huh? The YCbCr encoding has reference black at RGB 16 and white at RGB 235. Those values absolutely ARE scaled to 0-255 when converting from Video to PC Levels, and 16-235 doesn't fit evenly into 0-255. OTOH, converting YCbCr to RGB when the target is Video Levels means no scaling and no discarding of information; it can be considered "passthrough".

Quote:
Originally Posted by Nevcairiel View Post
Following this chain, one could even argue that 0-255 has actually more room to store finer variations of the output and require less rounding, but since the difference is not even half a bit, that argument is a bit weak.
Your video card should always output 0-255. (About the only reason you would want it to convert everything to 16-235 is if your display only supports 16-235.) If you take video in YCbCr and convert it to RGB in the straightforward way, you'll end up with RGB values in the range 1- 254. This is what programs like XBMC do when they are configured for "Limited Color Range (16-235)". The video card can take this and output it directly, and it will be exactly what a display like a normal TV configured for standard Video Levels (aka "RGB Limited") wants. This preserves BTB and WTW, and reference black and white will be at their standard points, 16 and 235, respectively.

This is why I hate the "limited" and "full" terminology. "Full" sounds better than "limited", but it is "limited" that is passthrough and contains the full range of values encoded in the video, 1-254, which fits perfectly into RGB's 0-255. Converting video to "Full range" means discarding BTB and WTW and scaling 16-235 unevenly into 0-255.
sawfish is offline  
post #24 of 52 Old 09-19-2014, 08:40 PM
AVS Forum Special Member
 
sawfish's Avatar
 
Join Date: Feb 2013
Posts: 1,000
Mentioned: 1 Post(s)
Tagged: 0 Thread(s)
Quoted: 146 Post(s)
Liked: 150
Quote:
Originally Posted by SteelWill View Post
So can you or anyone explain BTB and WTW? Full 0 and Limited 16 should be the same black, and should be the blackest back. If you have BTB below 16 in Limited how is that even visible on that scale? Or if it is visible how is that not in effect Full with 0 being real black and 16 just being a grey?
I explained all that in this message I linked to:

https://www.avsforum.com/forum/139-di...l#post26449881
sawfish is offline  
post #25 of 52 Old 09-20-2014, 12:29 AM
AVS Forum Special Member
 
Nevcairiel's Avatar
 
Join Date: Mar 2010
Location: Germany
Posts: 1,058
Mentioned: 3 Post(s)
Tagged: 0 Thread(s)
Quoted: 45 Post(s)
Liked: 136
Quote:
Originally Posted by sawfish View Post
Huh? The YCbCr encoding has reference black at RGB 16 and white at RGB 235. Those values absolutely ARE scaled to 0-255 when converting from Video to PC Levels, and 16-235 doesn't fit evenly into 0-255. OTOH, converting YCbCr to RGB when the target is Video Levels means no scaling and no discarding of information; it can be considered "passthrough"
The YCbCr encoding has nothing in RGB at any level, it has it in YCbCr. Its just a tiny adjustment in the conversion from YCbCr to RGB. You are converting from YCbCr to RGB PC levels, or you are converting from YCbCr to RGB TV levels, simply by adjusting the factors in the YCbCr -> RGB conversion matrix.
Come back once you have implemented the conversion at least once in software and understand how it works exactly, and how this difference doesn't "scale" the range as such. It really helps to understand the finer details when you do the math yourself.

People always claim this "pass through", but thats just not how it works.

Additionally, running a setup like you describe will result in blacks and whites being crushed in all applications you run on the HTPC, except videos itself, which is absolutely not acceptable for many people. My 10ft GUI looks like crap when black and whites get crushed, not to mention the occasional time I use it to actually browse the web.

Last edited by Nevcairiel; 09-20-2014 at 12:48 AM.
Nevcairiel is offline  
post #26 of 52 Old 09-20-2014, 12:59 PM
AVS Forum Special Member
 
sawfish's Avatar
 
Join Date: Feb 2013
Posts: 1,000
Mentioned: 1 Post(s)
Tagged: 0 Thread(s)
Quoted: 146 Post(s)
Liked: 150
Quote:
Originally Posted by Nevcairiel View Post
The YCbCr encoding has nothing in RGB at any level, it has it in YCbCr.
You don't say! That's why I used the word "convert" so many times when talking about converting between the two encodings.

Quote:
Originally Posted by Nevcairiel View Post
Its just a tiny adjustment in the conversion from YCbCr to RGB. You are converting from YCbCr to RGB PC levels, or you are converting from YCbCr to RGB TV levels, simply by adjusting the factors in the YCbCr -> RGB conversion matrix.
Come back once you have implemented the conversion at least once in software and understand how it works exactly, and how this difference doesn't "scale" the range as such.
I'm not trying to give the math. I'm trying to explain the effects in a way that is useful to people who are puzzling over "RGB Limited" and "RGB Full" settings. I've tried to state it concisely in this message:

https://www.avsforum.com/forum/139-di...l#post26449881

Tell you what. Propose an experiment I can do that will refute anything I've said, or more to the point, demonstrate that what you've been talking about is useful in some way. I have Calman software and an i1D3 meter so I can even measure xyY. Everything I've talked about allows me to get consistent calibrations between my HTPC and its Nvidia GT430 and Sony S5100 BD player and correctly navigate the levels options in players and displays, so I believe I'm thinking about things in the correct way.

Quote:
Originally Posted by Nevcairiel View Post
People always claim this "pass through", but thats just not how it works.
They do? I must have missed it in all the confusing levels threads I've read over the years. Let's see. An RGB value encoded in the video ends up the same RGB value when decoded, e.g. the AVS HD 709 Black Clipping bars all contain the pixel values they are labeled with. I think "passthrough" is a fair term to characterize that observation.

Quote:
Originally Posted by Nevcairiel View Post
Additionally, running a setup like you describe will result in blacks and whites being crushed in all applications you run on the HTPC, except videos itself, which is absolutely not acceptable for many people. My 10ft GUI looks like crap when black and whites get crushed, not to mention the occasional time I use it to actually browse the web.
I guess you're referring to a message I linked to, as I haven't talked about that in this thread. Since you haven't quoted me, I'll copy what I said to give your comment the proper context:

Quote:
Originally Posted by sawfish View Post
For the OP, here are several specific reasons I use Video Levels with my HTPC and its Nvidia GT430, along with a potentially important caveat.

1. Outputting PC Levels sacrifices BTB and WTW, which makes it harder to set Brightness and Contrast, and losing WTW is arguably bad because rarely there can be valid information in 235 and above.

2. For Nvidia cards and the ST60 and Sony LCDs I've hooked up to them, using PC Levels required me to adjust Brightness and Contrast of video in the Nvidia Control Panel, whereas using Video Levels did not; I could do everything on the TV, which is what I want.

3. Using Video Levels also achieved consistency with my Sony S5100 BD player, which unlike my S350 from 2008, does not support PC Levels, and achieving consistency with other devices is a consideration for people going through an AVR or other switch that has only one output.

4. Finally, being able to leave the Nvidia Control Panel Video section at "With the video player" avoids the problem I described here:

http://forum.xbmc.org/showthread.php?tid=180884

All that said, using Video Levels on the TV does create a levels mismatch for my Nvidia card for desktop graphics, which causes some color fidelity issues for desktop graphics, but they do not impact the usage of the programs I use on my TV, WMC and XBMC, in any way, as I use them solely for video; more on that here:

https://www.avsforum.com/forum/139-di...l#post25938273

I find it's a good trade-off if you don't care about gaming, photo display, etc. I do it on my HTPC for the TV connection, but I do use PC Levels on my gaming machine. YMMV with your specific hardware and software, but these are the sorts of things to be thinking about.
So yeah, you really did everyone a service with your redundant comment. If you had quoted me, I would have simply replied, "You don't say! I already explained that very clearly. "

BTW, XBMC Gotham adjusts its UI when set to "Limited Color Range (16-235)", so what you claimed about "your 10ft GUI looks like crap" is complete crap when talking about XBMC, and while WMC is not as smart, to me, the WMC UI looks fine with the crushing; the deeper blues certainly don't impair its use.

I'm not going to respond to another post like the one you just made; it's too tedious. As I said earlier, "Tell you what. Propose an experiment I can do that will refute anything I've said, or more to the point, demonstrate that what you've been talking about is useful in some way." If the experiment is relevant, I will respond. If you reply with more of the same, I will put you on ignore with no further notice.
sawfish is offline  
post #27 of 52 Old 09-20-2014, 01:43 PM
AVS Forum Special Member
 
Nevcairiel's Avatar
 
Join Date: Mar 2010
Location: Germany
Posts: 1,058
Mentioned: 3 Post(s)
Tagged: 0 Thread(s)
Quoted: 45 Post(s)
Liked: 136
Quote:
Originally Posted by sawfish View Post
I'm not trying to give the math. I'm trying to explain the effects in a way that is useful to people who are puzzling over "RGB Limited" and "RGB Full" settings.
And I thought this was AV Science, and not AV User Helpline, my mistake.
Nevcairiel is offline  
post #28 of 52 Old 09-20-2014, 03:28 PM
AVS Forum Special Member
 
Aleron Ives's Avatar
 
Join Date: Oct 2009
Posts: 5,149
Mentioned: 4 Post(s)
Tagged: 0 Thread(s)
Quoted: 1845 Post(s)
Liked: 1634
Quote:
Originally Posted by Nevcairiel View Post
And I thought this was AV Science
I keep hoping this site will get renamed to AV Truthiness, as that name would much more accurately reflect what goes on here most of the time, but it sadly never happens. It seems that if you actually want to discuss AV science, then you have to go to Doom9.
Aleron Ives is offline  
post #29 of 52 Old 09-21-2014, 05:44 AM
Advanced Member
 
aliaskary77's Avatar
 
Join Date: Oct 2007
Posts: 677
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Quoted: 46 Post(s)
Liked: 56
Soo....to try to bring this back on topic, i am going to use the same thread to ask my questions. This thread got me looking at everything again.

I read most of the above and think parts sunk in. Here is what i was trying to use to check if i have things set right, the settings i have now, and the issues remaining.

1. Tools. No external meters. Strictly TV and PC settings using MP4-2c files for Black Clipping and White Clipping.

2. Settings: HTPC AMD 7790 connected through Denon 1612 AVR to a Samsung UN55F6300.
  • Catalyst Settings Pixel Format: RGB 4:4:4 Limited (Full keeps reverting back to limited automatically)
  • Video: Use Video Player Settings, Dynamic On with Full 0-255 selected
  • With MPC-HC, LAV Video Settings RGB Output Set to PC 0-255.
  • madVR set to output TV Settings 16-235
With these settings, I have the Samsung TV Picture Settings HDMI Level set to Normal, which I believe is supposed to be Full.

MPC-HC: with brightness at 18, on black clipping i can make 17-25 blink. Any higher and the lower ones all start to blink
MPC-HC: with contrast at 100, on white clipping, 230 to 253, all blink.


In contrast, before i started, no amount of brightness or contrast would make anything less than 17 blink on black clipping or anything above 235 blink on white clipping.


So, I think I have everything setup properly for the htpc. at least from these two test clips and mpc-hc.



3. Issues

With 1 hdmi going to the tv from the avr, the tv signal looks good for the most part is very dark. 30 for brightness is better suited. 18 is way too dark when looking at shadows. i can let that slide as its two different signals and color spaces.


XBMC is the problem. I do use it for about 75% viewing. I tried to play the clips through these settings. I found the new Gotham expert settings for video output to select limited or full.
XBMC limited On or Off, nothing above white 235 blinks.
XBMC limited On or Off, to see even 17 to 25 blink, i have to crank up brightness to at least 32.
No TV contrast or brightness can make the white above 235 or black under 17 blink.

As mentioned, between tv and htpc i can live with. Anyway to get XBMC play nice like MPC-HC/madVR?

Thanks.

Note: Attachments just to show which clips i am using, and are not screenshots of my setup.
Attached Thumbnails
Click image for larger version

Name:	black.PNG
Views:	150
Size:	30.1 KB
ID:	272921   Click image for larger version

Name:	white.PNG
Views:	155
Size:	50.8 KB
ID:	272929  

Last edited by aliaskary77; 09-21-2014 at 08:08 AM.
aliaskary77 is offline  
post #30 of 52 Old 09-21-2014, 09:52 AM
AVS Forum Club Gold
 
renethx's Avatar
 
Join Date: Jan 2006
Posts: 16,132
Mentioned: 20 Post(s)
Tagged: 1 Thread(s)
Quoted: 246 Post(s)
Liked: 402
Quote:
Originally Posted by aliaskary77 View Post
Full keeps reverting back to limited automatically
This should not happen. Try: uninstall the driver, run amdcleanuputility.exe, reboot, then install the driver again.
renethx is offline  
Sponsored Links
Advertisement
 
Reply Home Theater Computers

Thread Tools
Show Printable Version Show Printable Version
Email this Page Email this Page


Forum Jump: 

Posting Rules  
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off