Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Hardware & Software > Software players

Reply
 
Thread Tools Search this Thread Display Modes
Old 27th November 2010, 13:54   #1  |  Link
e-t172
Registered User
 
Join Date: Jan 2008
Posts: 589
GeForce 9400: strange video levels behavior (0-255/16-235)

Hardware/Software configuration
  • Geforce 9400 IGP on motherboard Gigabyte GA-E7AUM-DS2H, latest nVidia drivers (260.99)
  • Sony HDTV (KDL-46W4000) connected using HDMI
  • Windows 7 32-bit
  • Media Player Classic Homecinema 1.4.2499

The Goal
  • Get correct black and white levels for video content. Bonus points if BTB/WTW (Blacker Than Black, Whiter Than White) information is preserved.
  • Get correct black and white levels for non-video content (i.e., all other Windows applications).

The issue

Now here's where it gets complicated. Experience shows that the nVidia driver/card is behaving very strangely regarding output levels.

First of all, I would like to mention that English is not my native language, and all of this is quite complicated to explain, so you'll have to bear with me for a moment.

When testing, I found a reasonably reliable way to determine what input levels the HDTV receives: I'm taking advantage of the "superblank" feature of Sony HDTVs, which allows for WTW content to be displayed. If I understand this feature correctly, it means that 235-blank will be displayed normally with good color balance (as it should be); 255-blank will also be displayed and distinguishable (brighter) from 235 but with a bad (bluish) color balance. This feature, combined with some level testing videos, allows me to see if the TV is receiving 235 (good blank) or 255 (brighter, bad blank). The results I'm getting from the TV seems to corroborate this explanation.

Now, here's what I found. First of all, the NVidia control panel contains a "resolution" section where I can switch between "audio disabled" and "audio enabled" for the HDTV. At first glance one might think that it's just controlling HDMI Audio, but it does other things, too: if I switch back and forth between "audio disabled" and "audio enabled", the color levels change significantly. Judging from the results, I came to the following conclusions:
  • With "audio disabled", the HDTV is considered a computer monitor. The Windows desktop levels are not compressed, which means the desktop colors are wrong (bluish blanks, since it is received as 255 by the TV).
  • With "audio enabled", the HDTV is considered a consumer video device. The Windows desktop levels are compressed from 0-255 to 16-235 levels, which is correct.

So at first glance, "audio enabled" seems like the right choice. But I didn't get into the strange part yet: video levels. The following discussion is about pure EVR (I'm not using EVR-CP or EVR Sync in MPC-HC).
  • With "audio disabled", when playing video in windowed or full screen mode, 16-235 video levels are expanded to 0-255 then sent to the TV, which is obviously wrong.
  • With "audio enabled", when playing video in windowed mode, it seems that the levels are expanded to 0-255, than compressed back to 16-235 before output. I lost BTB/WTW in the process but at least the 16-235 range is correct.
  • Now here's where it gets funny: with "audio enabled", if I switch to fullscreen mode, then the levels change (not just the video area: I figured that the whole output from the card is switched to something else). At first I thought that it was some kind of "smart" driver behavior to optimize the video output. Problem is, it's completely wrong! Indeed, the levels are now expanded to 0-255 and sent as is to the HDTV… so the levels in fullscreen mode are WORSE than in windowed mode! If your TV chose not to display BTB/WTW, you WILL end up with crushed blacks and burned blanks!

I managed to come up with some explanation for this aberrant behavior: I think that in "audio enabled" mode, the processing chain inside the driver/card compresses the whole Windows desktop levels to 16-235. To compensate for this compression when watching video in windowed mode, the video area is first expanded to 0-255, only to get compressed again further down the pipeline. I think that NVidia engineers wanted to have something cleaner when playing video in fullscreen mode and drop all processing altogether, thus sending untouched content to the TV and preserving BTB/WTW. This is a very good idea, but alas, it seems they got their changes wrong and forgot to disable the first step (expansion to 0-255), thus making fullscreen playback worse than before!

Experiencing with other video renderers

The behavior is almost the same with the EVR "variants" included with MPC-HC (i.e. EVR-CP and EVR Sync). "Almost" because, with these renderers, the video levels switch is not dependant on the windowed/fullscreen status like with EVR but rather on the video resolution. What I mean is:
  • playing SD video with EVR-CP/EVR-Sync (in windowed or fullscreen mode) is equivalent to playing video with EVR in windowed mode.
  • playing HD video with EVR-CP/EVR-Sync (in windowed or fullscreen mode) is equivalent to playing video with EVR in fullscreen mode.

My guess is the NVidia driver is unable to determine the fullscreen status with these custom renderers and thus falls back to video resolution to take its decision.

I also tried a non-EVR renderer: madVR. In this case, as one could expect, the driver doesn't seem to detect video playback and considers MPC-HC like any other Windows application.

If someone is still keeping track of my explanation, one could notice that there is a solution to the video levels problem: switch to "audio disabled" mode and use madVR without video levels expansion (that is, with the "16-235" levels option in madVR). Indeed, this solves the problem for video: everything stays untouched, and even BTB/WTW is preserved. Problem is, this makes other Windows activities (like photo viewing) much worse (see "audio enabled/disabled" discussion above).

If anyone has an idea on how to solve this complicated problem (registry hack? EDID hack?), I would be happy to hear it. Thanks.
e-t172 is offline   Reply With Quote
Old 27th November 2010, 16:22   #2  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
I don't know if this is relevant to your problem but there is a "dynamic range" setting in the Nvidia control panel.

Go to "Video" -> "Adjust Video Color Settings" -> "2. How do you make color adjustments?" -> select "With the NVidia settings" -> "Advanced". There you can choose either "Full (0-255)" or "Limited (16-235)".
Groucho2004 is offline   Reply With Quote
Old 27th November 2010, 16:30   #3  |  Link
e-t172
Registered User
 
Join Date: Jan 2008
Posts: 589
Yes. I forgot to mention that this setting doesn't seem to change anything in any situation.
e-t172 is offline   Reply With Quote
Old 6th December 2010, 23:00   #4  |  Link
Kado
Otaku
 
Kado's Avatar
 
Join Date: Sep 2006
Location: Portugal
Posts: 576
Nvidia 260.xx drivers borked several settings in the display panel, the latest working drivers are 259.32. Like it's not possible to change the digital format from rgb or ycbcr444 etc.
__________________
In the school, the three guys met. Their relation had been changed in the season, and turned into three love stories.
Kado is offline   Reply With Quote
Old 7th December 2010, 08:36   #5  |  Link
6233638
Registered User
 
Join Date: Apr 2009
Posts: 1,019
In the nvidia control panel go to "Adjust desktop color settings" in the display section. At the bottom set the content type to "Desktop programs" to force 0-255. Works fine for me in 260.99. Selecting RGB or YCC works fine too. I guess if you always want 16-235 choose something different there.
6233638 is offline   Reply With Quote
Reply

Tags
blacklevel, levels, white

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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

Forum Jump


All times are GMT +1. The time now is 08:43.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.