Linux Fernetmenta's vdpau options
#1
Question 
Hi there,

I'm using Openelec 2 beta 5, and it seems to include Fernetmenta's patches for vdpau. There are at least 2 options which are new to me:

Allow OpenGL VDPAU interopt RGB and interopt YUV

Does someone now what those options do? I'm using a sony TV which let you select colorspace and hdmi range (full or limited), does somebody know which options woukd be best? Any hints on why?

Thanks to all!
Reply
#2
In principle those options make use of: ftp://download.nvidia.com/XFree86/vdpau/...nterop.txt

VDPAU can do decoding and YUV-RGB conversion. Interop RGB should always be selected. Deselecting it make the system fall back to a legacy work around for vdpau interoperation with OpenGL.
If you select inerop YUV, vdpau video video mixer is bypassed for progressive material. Means that YUV-RGB conversion is done by OpenGL instead of vdpau. This improves performance on less powerfull systems. Video options like vdpau noise reduction will disappear from the video settings.

Regardless of which options is selected set your TV to full range.
Reply
#3
(2012-08-05, 12:05)FernetMenta Wrote: Regardless of which options is selected set your TV to full range.

I respectfully disagree. The REC.709 colorspace (the standard for HD content) is limited range RGB with definitions for CMY and luminance values. Setting to full range, especially if on a non-calibrated display, will typically result in overly saturated primaries and incorrect secondaries. If the display is a plasma there is also an increased risk of burn-in damage, due to white defaulting to super-white, instead of normal white (255 instead of 235.) There is a common misconception that setting to a limited color space will limit the number of shades displayed. This is incorrect. Setting to limited will only tell the TV that it should be using the correct range, 15 for black and 235 for white, and includes the super-black and super white shades (0-14 and 236-255.)

Source: 5 years as an ISF certified TV calibrator.
Reply
#4
XBMC checks for e.g REC.709 and does conversion to full range.

EDIT: For VDPAU this means you have to activate VDPAU Studio level
Reply
#5
(2012-08-05, 17:13)FernetMenta Wrote: XBMC checks for e.g REC.709 and does conversion to full range.

EDIT: For VDPAU this means you have to activate VDPAU Studio level

Finally, a good explanation of what the "Studio Level Color Conversion" does. I did not know that. Thank you.
Reply
#6
(2012-08-05, 17:13)FernetMenta Wrote: XBMC checks for e.g REC.709 and does conversion to full range.

EDIT: For VDPAU this means you have to activate VDPAU Studio level

I believe, with all the work you have done/are doing regarding VDPAU, that you may be the best person to finally clear up this issue for me.

On a Plasma TV, which xorg.conf setting is best - "ColorSpace" "YCbCr444" with no VDPAU Studio Level,
or "ColorSpace" "RGB" set to "Full" with VDPAU Studio Level ?

My system is an ION1 connected HDMI to TV.....

I see a whole lot of conflicting information, both here and on Openelec's forum, regarding this issue.... so much so that I believe I read that Openelec went to YCbCR444 as their default a while back.

Also, thanks for the info on your new settings.. I had been looking around for what those affected also.
Reply
#7
Yeah, now that we have both FernetMenta and cowfodder here, we may finally know which settings are the best!

Ok, in my ION system, it seems clear that I have to enable RGB interop AND studio level correction. What about colorspace? We let it at RGB as by default, correct?

In my TV, HDMI level should be set to full range, what about colorspace? I can set it to auto, itu.601 or itu.709, what should it be set to?

And last, but not least, until now, I always disabled studio level correction because it was impossible to me to set the tv propertly. I use some basic Test disc found at AVSforum, with which you can adjust your tv to see some black/grey flashing bars on black background (brightness) and some white/grey ones on white background (to adjust contrast). But, if I remember fine, when I use that I always see all the black/grey bars, even with ridiculous amount of brightness, and with white it's even worse. And, of course, there's the problem with non vdpau material: setting the system for vdpau material with those corrections, will make non-vdpau material too dark and you loose lots of details.

Any ideas?

Thanks for your help! That could make it to the definitve thread of how to properly set up the nvida systems with modern TVs!
Reply
#8
(2012-08-06, 04:12)sdsnyr94 Wrote:
(2012-08-05, 17:13)FernetMenta Wrote: XBMC checks for e.g REC.709 and does conversion to full range.

EDIT: For VDPAU this means you have to activate VDPAU Studio level

I believe, with all the work you have done/are doing regarding VDPAU, that you may be the best person to finally clear up this issue for me.

On a Plasma TV, which xorg.conf setting is best - "ColorSpace" "YCbCr444" with no VDPAU Studio Level,
or "ColorSpace" "RGB" set to "Full" with VDPAU Studio Level ?

My system is an ION1 connected HDMI to TV.....

I see a whole lot of conflicting information, both here and on Openelec's forum, regarding this issue.... so much so that I believe I read that Openelec went to YCbCR444 as their default a while back.

Also, thanks for the info on your new settings.. I had been looking around for what those affected also.

It seems to me, with the info from FernetMenta, that YCC444 and no VDPAU Studio correction and Full RGB with Studio correction would give roughly the same results for HD material. Since most SD isn't touched by VDPAU (I think) it might be off.

(2012-08-06, 12:02)PatrickVogeli Wrote: Yeah, now that we have both FernetMenta and cowfodder here, we may finally know which settings are the best!

Ok, in my ION system, it seems clear that I have to enable RGB interop AND studio level correction. What about colorspace? We let it at RGB as by default, correct?

In my TV, HDMI level should be set to full range, what about colorspace? I can set it to auto, itu.601 or itu.709, what should it be set to?

And last, but not least, until now, I always disabled studio level correction because it was impossible to me to set the tv propertly. I use some basic Test disc found at AVSforum, with which you can adjust your tv to see some black/grey flashing bars on black background (brightness) and some white/grey ones on white background (to adjust contrast). But, if I remember fine, when I use that I always see all the black/grey bars, even with ridiculous amount of brightness, and with white it's even worse. And, of course, there's the problem with non vdpau material: setting the system for vdpau material with those corrections, will make non-vdpau material too dark and you loose lots of details.

Any ideas?

Thanks for your help! That could make it to the definitve thread of how to properly set up the nvida systems with modern TVs!

Well, the TV setting depends largely on what you're watching. itu.601 is the NTSC standard, itu.709 is ATSC HD standard. As far as the issue you've had with test discs, maybe try setting xorg to YCC444 and disabling VDPAU correction. I've still not had the chance to do a definitive test on all the various combinations, and since my entire collection is in formats that are handled by VDPAU I've just gone with the studio corrected settings. Again, I'll have to see if I can find the time to test all the combinations.
Reply
#9
XMBC output is RGB full range for GUI and video. Setting gfx to YUV makes no sense. You just convert back and forth. Currently vdapu stuio level determines color space by size of video. I will change this to obsering tags provided by ffmpeg in case we can trust them.
Reply
#10
Definitely yes, enabling studio level means for vdpau material means I need different settings (brightness and contrast) for vdpau enabled material and non vdpau one, which is quite of inconvenient.

FernetMenta, any help on that one? Why is that way?

PD: I think I got it... VDPAU studio level converts the blu ray material to full range rgb while standard def non vdpau is output as is.. correct? If that's so... why don't we disable any vdpau color processing and adjust the display that way? That is, to itu 709 and limited hdmi black levels, which should be the same for nearly all video material. Sure the xbmc interface woukd be displayed differently (crushed blacks, grey whites maybe?), but at least all videos woukd share the same tv settings and should look fine, wouldn't they?
Reply
#11
VDPAU Studio Level ist not what it should be. I tried some test patterns and on my calibrated Plasma it gives me a incorrect image. Without it everything should be normal on a display that can process full RGB like every Panasonic Plasma or Samsung LCD TV...
Reply
#12
YUV to RGB conversion has to be done anyhow. Dependent on your setting it happens in different places:

1)
Software decoding (render method != software): done by OpenGL shaders

2
Software rendering: done by a function before rendering

3)
different hw accelerators

For 1) and 2) we have convertion matrices in order to handle the differeent color spaces.

If you don't select vdau studio level conversion, you'll get a standard conversion built into vdpau. Since vdpau does not know about the color space it can't apply the proper conversion matrix.
VDPAU studio level conversion provides a way for advanced applications like XBMC to influence the conversion.

If you observe incorrect colors when vdpau studio level is active, means that the matrices provided to the API are wrong or the colorspace of the input material is not detected right.

As I sayed erlier: Currently colorspace is detected by the dimensions of the inputmaterial SD is assuemed when width < 1000, hd when width > 1000.
With the re-write of vdpau I have also corrected conversion matrices which I think are wrong in current mainline version. This code has not been merged yet.
Reply
#13
Ok. So this means that at the moment the studio level option is broken due to incorrect matrices?

For me the black with studio level on is to bright and without it is perfect... material is AVCHD709 in .mp4 Format (1080p).
Reply
#14
I have exactly the same feeling! With studio enabled I must set my brightness to very low levels, which wouldn't that bad, but then videos.which don't use aVDPAU are too dark and the dark greys get lost because of incorrect brightness!

I really don't know what we are supposed to do.. I don't quite understand that technical talk
Reply
#15
Sorry for confusion. I had a look into the code: vdpau studio level conversion is wrong. Without this option conversion for bt 601 and 709 is done correctly. I think we should remove this option.
Reply

Logout Mark Read Team Forum Stats Members Help
Fernetmenta's vdpau options2