Intel VAAPI howto with Leia v18 nightly based on Ubuntu 18.04 server
(2015-09-18, 02:17)noggin Wrote:
(2015-09-17, 20:20)VirtualRain Wrote: My Sony TV is a 2015 UHD set. The TV has an HDMI setting for "Auto", "Limited", and "Full". Are you saying the TV ignores this setting, or it just doesn't work properly on "Auto"?

I've not tried forcing mine. I have a 2014 set. I just know that in default mode that the VAAPI EGL stuff that fritsch and co have developed here - that allows 16-235 to be preserved by using the GPU in full range AND allows for VAAPI MCDI deinterlacing doesn't work for me in this mode because the TV interprets the xrandr Full setting as Full, when it is there as a 'cheat' (and a very good one) to get Limited all the way through without 0-255 scaling.

Quote:FYI, I've currently got things working with OpenElec 5 and Kodi 14.2 with Kodi set to 16-235 (and "Prefer VAAPI render method" disabled), No change to GPU, TV set to "Limited" where I'm getting proper preservation of levels without conversion... I can see blacker than blacks and whiter than whites making it easy to set my TV black level to reference black. Banding is minimal - better than when converting to full range but not as smooth as what I saw in a post on the previous page.

Yep - but that's not what is being discussed in this thread. We specifically want to use VAAPI rendering as it lets us do decent quality Motion Compensated Hardware deinterlacing. The work in this thread allows you to use VAAPI rendering and to avoid 0-255 banding - or if you can't at least mitigate it with dithering.

If you have "Prefer VAAPI render method" disabled you are going to be using software deinterlacing?

If you are only watching progressive sources, this may not be an issue, but lots of us use Kodi for watching Live/Recorded TV, and much of this is interlaced, and MCDI VAAPI deinterlacing is worth having.

Quote:In this situation you have two options. Stick with Full level output (not an issue if you switch between Limited and Full sources with an AVR as this should pass through the info frames that the TV follows), however disable the 16-235 settings in Kodi, and run with dithering enabled to help mask the banding otherwise caused by 16-235->0-255 range extension, or run the HDMI output in "Limited" mode (i.e. don't do the xrandr thing to change the GPU output range) and also make sure Limited levels in Kodi are disabled but again ensure dithering is enabled to hide the banding.

Maybe I misunderstand, but in either of these scenarios, you're going to lose your BTB and WTW information. It's not just about banding. You need everything to pass through without levels conversion... player, GPU and TV. When any part of the signal chain does a conversion, 16 becomes 0 and 235 becomes 256 and you lose that extra dynamic range. Dithering is better than nothing, but no conversion is the ideal solution.

Does your TV not have a mode where it can be forced to accept 16-235 without conversion?

BTB and WTW don't really worry me. Yes - they help you calibrate your TV - but any content <16 shouldn't be visible on a correctly calibrated display, so clipping it in the digital domain (whilst not good practice) isn't the end of the world with a well mastered source (though clipping <16 >235 transients can cause issues with scaling at a later date)

Scaling artefacts do worry me - as I don't like banding. A little bit of dither helps a lot to mask them. (My first employer patented such a technique...)

I see... It all makes sense now. Thank you for taking the time to step in here and write a helpful response. Really appreciate it. Learning a lot. Smile

It was not clear at all from the first two posts that this is primarily addressing issues with interlacing. It seemed to me to be about overall better video quality and passing proper levels. As mentioned above, I appear to have proper levels pass through working end-to-end using standard builds, but still see some very slight lines in gradients... Not sure where those are coming from... Any ideas? My gradients are not perfectly smooth (but much better than initially when levels were being converted). Is it possible my GPU is still converting levels or something? (I can't imagine that's true if I have preservation of BTB and WTW?)

As noted above, In my recent quest for proper levels pass-through, I found I had to disable "Prefer VAAPI render method" not knowing what it does... Is it only necessary for interlaced content or does it also benefit progressive content? What is it exactly?

Given I almost exclusively view progressive material, is there any point in me having a look at the stuff being tested in this thread?

And, you may want to have a look at your Sony TV settings... You might have a setting for forcing video levels vs full range like mine. Wink

Messages In This Thread
RE: New Era: VAAPI with EGL interoperation - by VirtualRain - 2015-09-18, 11:11
Live TV broken again? - by schamane - 2016-02-29, 19:56
Random crashes - by hal2100 - 2016-03-08, 22:03