PDA

View Full Version : VMR9 video playback too bright/washed (Win9x): YUV is TV range instead of PC range


shae
02-07-07, 05:27 PM
I have a problem with video playback on a GF5200 on Win9x. The video is too bright/washed using VMR9 output (not overlay), because the YUV range isn't extended to 0-255 and remains the original 16-235/240, so blacks and whites aren't what they should be, etc.

A websearch revealed this is a known problem. All 6x.xx, 7x.xx and 8x.xx driver versions I tried suffer from this. I don't know about >81.98 as these are the latest for Win9x. The 5x.xx series is trouble for certain games. 4x.xx ruin video playback in a different way. Older than that doesn't support the FX series.

I found information on the web (and in the NV documentation) about adding a DWORD value to the registry named "VMRCCCSStatus" to override the default behavior, but the position of this value is only specified for WinNT. I'm pretty confident for Win9x it should be:

HKLM\System\CurrentControlSet\Services\Class\Displ ay\0000\NVIDIA\DirectDraw\VMRCCCSStatus

I tried setting it to 1 and 3, restarting afterwards, to no avail. I also tried adding it to a few other display/nVidia registry locations (and setting it to 1), which didn't help either.

Does anyone know how to fix this annoying problem? Switching drivers between games and video playback isn't an appealing prospect.

(In case anyone wonders why I'm not using Overlay, it's because it also ruins the colors [differently]. I don't want tweaked colors, I watch source colors.)

DaveW
02-08-07, 11:52 AM
I don't know the answer to your specific problem, but i've also been spending a lot of time faffing with the color controls in the nVidia drivers to get videos looking just right. The default settings for the drivers are way off, black is especially bright. Since most video codecs allocate less bits for the darker colors, making the darker colors brighter makes the artifacts much more noticable. I wish there was a "don't mess with the color space" checkbox. It would be nice if LCD monitors had a button for this too.

shae
02-08-07, 06:51 PM
The problem of getting the colors left untouched with nV is generally solved by using VMR (7 or 9) instead of the Overlay renderer. I don't think it's possible getting original colors with Overlay.

In fact, the above was true until drivers 5x.xx. I guess you're using XP, so that VMRCCCSStatus value might work for you. It's also possible that this problem was fixed with drivers newer than 81.98.

Another option, which might be ok for you but isn't ideal for me because I don't have CPU power to spare, is using ffdshow's HQ YV12->RGB conversion. There are no color problems when the renderer gets RGB instead of YUV, and as an added bonus, it will also solve the blockiness/pixelation that happens on pure red (among other) colors.

Another option, probably less taxing, that works for me (at least with the current hardware/driver/OS configuration) also involves ffdshow. Enable the AviSynth module and add the line:

ColorYUV(levels="TV->PC")

And I hear it might be possible to fix the YUV range with MPC using Pixel Shaders, which sounds like a nice solution that doesn't use CPU. But that's something I have not tried.

But ultimately, right now, I'm still hopeful I could get the senseless drivers to do the right thing...

Rash
04-19-07, 11:07 AM
Somehow I feel like spamming all the forums that have this issue. The trouble persists on Windows Vista as well, and more specifically on DVD playback. For DVD I'd rather use PureVideo, that does produce nice image quality. Unfortunately it is ruined by this wrong YUV color convertion. For 2.35:1 movies I get a grey bar and a black bar (eletronically inserted) that is pretty annoying. :(

I tested the VMRCCCSStatus key with 0x1 value but to no avail. Today I will test it with 0x3 (though 0x3 should force the wrong TV scale). Anyway, have you guys found a solution to this? Grey bars are really annoying. :( Thanks.

JaylumX
04-20-07, 04:51 AM
To fix the VMR9 bug follow the instruction bellow accordingly. It works.

You can work around this issue by forcing either standard or extended
mode as follows:

1 Launch regedit and determine the current primary display card by
looking in HKey_Local_Machine\Hardware\DeviceMap\Video and note the
GUID (global unique identifier assigned by Windows), which is the long
string in brackets { } at the end of the entry "\device\video0".

2 Look in
HKey_Local_Machine\SYSTEM\CurrentControlSet\Contro l\Video\{GUID}\0000
where {GUID} is thenumber derived from the previous step.

3 Open the "0000" directory and create a new DWORD called
VMRCCCSStatus and give it a value of
0x3 - to force use of the standard YUV range of 16-235
0x1 - to force use of the extended YUV range of 0-255
**********

The weird thing? I think there is a typo in there, I could only get
the 0-255 range if I reversed the value:
0x3 for 0-255

Don't mistake the VMRCCSStatus (should already be in the reigstry)
with the one you have to create, VMRCCCSStatus. Wonder why the new
one has three Cs, shrug, just don't mess with anything else in the
registry, just add the above value and get out.

Use the 0x3 option to correct the colour range.

Linkage (http://www.futurehardware.in/2754734-7-post.htm)

EDIT: As far as i know this fix is for Windows XP. I have no way of testing it on other OS's.

Rash
04-20-07, 01:14 PM
Thank you for your replay, Jay. I've tried that one already but it didn't work. I tried 0x1, 0x3 and 0x0 (which worked for some people). I believe the Vista drivers don't have that key implemented yet, so they simply ignore it.

I hope NVIDIA fix this color scaling on upcoming drivers. I never had problems with it when using PureVideo on Windows XP. Have a look at this screenshot I took (DVD + PureVideo).
http://rash.apanela.com/images/nv_color.png

Thank you again for your help. ;)

TierMann
04-21-07, 03:10 PM
Awesome! Black is black again!
Thanks for the info. This has been "bugging" me for a long time now.

0x3 works for me in XP.