PDA

View Full Version : VMR9 + Catalyst 7.7, different colors than 7.6


ChiDragon
14th August 2007, 18:20
I guess this is a PC scale/TV scale issue. From what I've read through a brief search, ATI started "correcting" the VMR9 output in a Catalyst display driver 6 version. I can confirm that the colors were washed out when I tried to use VMR9 with years-old drivers to display subtitles on my AIW Radeon 9800 Pro.

I'm using a Radeon X1950 Pro now (on XP), and was surprised to find that everything looked right with VMR9 when I first tried it, using Catalyst 7.6. When I upgraded to 7.7 it was back to same old, same old. I've switched back and forth between the two versions a few times to confirm I wasn't crazy, and even reformatted between two of them.

Some screenshots:
VDubMod (http://chidragon.thedessie.com/DF01%20VDubMod.png)
MPC using VMR9 with 7.6 (http://chidragon.thedessie.com/DF02%20MPC%20VMR9%20DD%207.6.png)
MPC using VMR9 with 7.7 (http://chidragon.thedessie.com/DF03%20MPC%20VMR9%20DD%207.7.png)

As you can see there's a slight difference between VirtualDub and 7.6, but a huge one between the two of them and 7.7. This also applies to VMR7 but not to the overlay mixer. These screens are from an XviD, but the same applies to DivX (decoded by XviD on my machine) and MPEG-2. I haven't compared anything else. Forcing XviD to output RGB "fixes" the problem, but of course doesn't affect MPEG-2s.

Is anyone else experiencing this? I don't really mind using the older drivers for now, but I thought it was an odd reversion worth documenting.

MatMaul
14th August 2007, 19:43
yeah ati/amd, I don't know why, remove the automatic 16-235=>0-255 level remap with yuv output since 7.7 => go back to 7.6 drivers for me ....
I haven't tested yet the fresh 7.8 version.

Demi9OD
14th August 2007, 20:43
Actually the 7.7 screenshot is correct for PC monitors. You are seeing blacks as greys because the color black is represent by a 16 value, and not a 0. You can either set your TV input to 16-235 (if it supports this), or run it through a Lanczos resize in MPC which, for whatever reason, will expand the colorspace back to 0-255 in MPC. I have not tried the 8.8 drivers either yet.

arfster
15th August 2007, 04:14
If you're using an ATI 2400/2600, there's a bug where as soon as you hit HD resolutions (meaning 720 vertical lines), levels get PC>TV expanded. This happens with EVR and VMR9/dxva, but not VMR9 software mode.

If you want to demo it, run a ffdshow resize on a DVD and switch it on/off. 718 vertical lines = no expansion, 720 = expansion.

foxyshadis
15th August 2007, 07:52
It's because they want to drive people insane in a conspiracy to get people to buy hardware players that just work. I can't think of any other reason for all the back-and-forths over the years.

(With an X1400 mobility, I get the dubious benefit that it's always been wrong, except for like two updates in the 6.something era, so at least it's consistent. We laptop folks must be the Rodney Dangerfields.)

arfster, I don't think it's a bug, because they also switch from BT.601 to BT.709 colorometry at the same time. I think the pointless confusion is intentional.

At least nvidia gives you a registry option so you can make it permanent, while they play their games with the defaults.

HeadBangeR77
15th August 2007, 09:53
I've just installed the latest Omega drivers, based on Catalyst 7.4 (the guy is really busy, so they are not released as regularly as it used to be), and everything is fine. I guess they must have messed sth up with the latest official ones, since a couple of drivers before 7.6 also used to be correct. Or the "Omega" guy is aware of the issue, and fixes it, as he fixed everything back to the times when I had my first 8500. ;)

CruNcher
15th August 2007, 13:16
foxyshadis nahh Nvidia is not better @ the moment with driver coding and bugs squashing then ATI the other way is the case this bug you show here seems to be nothing agains't this http://forums.nvidia.com/index.php?showtopic=15184&st=20 :P
Look how fast they (ATI) fixed the last security hole in their driver, but ok Nvidia would have done that most probably @ the same speed, because it was a media hyped bug and here you see what i mean we need media attention ;) for such stuff.

Demi9OD
15th August 2007, 15:03
What problems does the expansion actually cause on a display calibrated for 0-255? Do you actually lose shadow detail or do you get banding because of the expansion? Correct me if I am wrong but this is what is happing I think.

[--|------------|--]
--[|----------------|]--

Is that correct? 0-16 and 235-255 are clipped off the side, they are no longer part of the output, and 16-235 are expanded via hardware to 0-255.

MatMaul
15th August 2007, 19:58
Is that correct? 0-16 and 235-255 are clipped off the side, they are no longer part of the output, and 16-235 are expanded via hardware to 0-255.
no, that was the behaviour before 7.7 drivers, and it is the good behaviour I think with yuv output.
with yuv output you don't care about 0-16 and 235-255 bounds, when data reach those values it's because of compression artefacts. On very rare case (few hdtv sample if I remember) the stream is encoded with full 0-255 pc range but it's not common at all.
(it's what I understood but I can say bullshit too, other people correct me if I'm wrong :p)

now there is no conversion, so 16-235 is displayed on a 0-255 display => the black is grey because 16 is black for the video but it's grey for your monitor

Demi9OD
15th August 2007, 20:21
MatMaul There is no conversion until you reach 720p res, at that point, when there is conversion, I am asking how it is done.

MatMaul
15th August 2007, 20:36
MatMaul There is no conversion until you reach 720p res, at that point, when there is conversion, I am asking how it is done.

with 7.6 drivers and before I have an automatic 16-235=>0-255 conversion on my computer (I speak about vmr9 renderless of course).
the black is not grey like with 7.7 drivers, in any resolution.

arfster
16th August 2007, 01:00
What problems does the expansion actually cause on a display calibrated for 0-255?

More or less nothing, assuming the expansion is done properly (it seems to be with 2xxx cards), and assuming your HDTV calibrates to 0-255 properly - quite a few clip at arbitrary black levels, like below 8 or 6.

Ideally a card should _not_ expand though, as 16-235/240 is the original the video format is stored in, and what display standards use. Sure, have it as an option for those displaying on PC monitors, but it's simply wrong to do it without asking.

The really irritating thing for me is that it's not consistent. SD, no expansion. HD, expansion. I could make ffdshow filters to auto expand only SD, but then I get no hardware deinterlacing.

HeadBangeR77
16th August 2007, 02:00
Ideally a card should _not_ expand though, as 16-235/240 is the original the video format is stored in, and what display standards use. Sure, have it as an option for those displaying on PC monitors, but it's simply wrong to do it without asking.
Why, I'm gonna ask? Should we be doomed to washed out blacks and dimmed whites? Just because it's the original storage standard for TV? Following this kind of logic all DVD players and decoders shouldn't deinterlace without kindly asking us first. ;)

The really irritating thing for me is that it's not consistent. SD, no expansion. HD, expansion. I could make ffdshow filters to auto expand only SD, but then I get no hardware deinterlacing.
And here we shall agree on this matter. I should say it's double inconsistent, since it seems to change with almost every new edition of graphic drivers. And this is what really pisses us all off! The number on threads on this problem is still growing. I can't see any logic behind such a behaviour, as foxyshadis already stated above.

cheers
HDBR77

wozio
16th August 2007, 07:00
Yes, I also think that levels should be always expanded. Imagine HTPC where user interface is displayed using full 0-255 range but video played is presented in video range. Of course display must be calibrated to video so user interface and everything else (pictures for example) is displayed wrong.

Of course option possible to set by user would be best.

Anyone tried 7.8?

mrkazador
16th August 2007, 10:45
I dont know what is wrong with ATI! Over the past drivers they keep changing Vmr levels, for what reason? I HAVE NO IDEA :mad: Driving me insane, why cant they just leave it at the proper levels of 16-235? Even a switch in the control panel so the user can choose what they like.

breez
16th August 2007, 17:03
On X1950Pro with 7.8 (WinXP):

No expansion below 720p for EVR and VMR9 (renderless) and expansion at or above 720p.

I also noticed that with EVR chroma upsampling is smooth if the renderer scales the video even a little bit. For example output a 1296x729 to my 1280x1024 screen, EVR scales to 1280x720 and chroma is upsampled correctly. If I output straight 1280x720, EVR does no scaling and chroma upsampling appears blocky. VMR9 has bad chroma upsampling in every case. I'm not sure if this behavior with EVR was introduced in these newer drivers or if it was always there, but I'm happy nonetheless as this means I can finally stop wasting CPU cycles on colorspace conversion.

arfster
16th August 2007, 19:43
Anyone tried 7.8?

No fix for HD levels expansion, and they broke MPEG2 1080i acceleration with VMR9 (it weaves regardless of what deinterlacing mode you select). Cyberlink MPEG2 decoder does the same thing with EVR, although ATI's own avivo ds filter works fine and uses vector-adaptive as it should do.

wozio
17th August 2007, 10:55
How is it possible that they keep breaking something and after two moths fixing it. After few months they are breaking it once again. I remember 6.6 was latest previous drivers with correct expanding behaviour, or at least consistent (expansion for all sources). They they've broken it in 6.7 and fixed, I don't know, in 7.2???

Demi9OD
17th August 2007, 14:27
I don't know that they are really breaking it, because they are catering to different markets with the same product. Those using PC displays and those using TV displays. If anything, there just needs to be a toggle switch in CCC for 16-235 or 0-255.

foxyshadis
21st August 2007, 23:59
I suspect that an engineer changes it, someone complains, another engineer changes it back, someone else complains, cycle repeats. There just hasn't been a top-level decision on what to do with anything but the HD, or engineers are ignoring/don't know of whatever decision has been reached, so they keep screwing it up.

It should be as simple as, if you output RGB, expand the levels. If you output YUV (coax, s-video, or component), don't. Only violate this if the stream carries explicit instructions in the VIDEOINFOHEADER2 (which has optional levels and colorometry fields), or a (currently non-existant) registry override is set. I don't see what's so hard about these rules.

This does presume that LCD TVs that can take vga, dvi, and hdmi do not do level conversion. I'd have to look into that, since I don't have one.

CruNcher
22nd August 2007, 00:45
How about they useing a cvs/svn and every dev works on his branch and mybe he forgot to update his local branch and so his old files get into the SVN/CVS and boom old errors are back, happens from time to time in Open Source projects too, now the dev that fixed the previous problems in his branch changes something and commits so the online branch has now the previous fix again ;D

wozio
22nd August 2007, 07:08
This does presume that LCD TVs that can take vga, dvi, and hdmi do not do level conversion. I'd have to look into that, since I don't have one.

Newest TVs do have an option to expand or not (for example in samsung lcd this option is called 'HDMI black level'). But for display it doesn't matter, they can/must be calibrated to either tv or pc scale. Problem is when inoput signal is in two differrent scales as it is on current ati drivers, sd video at tv levels and everything else on pc levels...

arfster
22nd August 2007, 17:51
My support ticket from ATI (6 weeks ago!) came back, and the engineers apparently say HD levels expansion is intended.

Woudln't be surprised if they're just trying to get rid of me though. It's kinda daft to have a CCC option that specifically allows selection between PC and MCE levels, then ignore it with HD.

Rash
6th September 2007, 02:31
At least nvidia gives you a registry option so you can make it permanent, while they play their games with the defaults.
No, they don't. Well, at least not anymore. There used to be a registry setting on Forceware 83.xx (xx because I don't remember the number).

Now on Vista EVR does 16-235 no matter what, SD, HDTV, 2k, 4k (I'm a video producer). That just drives me really, really crazy on all those programs that can't use Haali Renderer. :(

I suspect that an engineer changes it, someone complains, another engineer changes it back, someone else complains, cycle repeats. There just hasn't been a top-level decision on what to do with anything but the HD, or engineers are ignoring/don't know of whatever decision has been reached, so they keep screwing it up.

It should be as simple as, if you output RGB, expand the levels. If you output YUV (coax, s-video, or component), don't. Only violate this if the stream carries explicit instructions in the VIDEOINFOHEADER2 (which has optional levels and colorometry fields), or a (currently non-existant) registry override is set. I don't see what's so hard about these rules.
I completely agree with you. Too bad driver makers don't read forums much (well, at least not video forums). That what you said would be perfect.

A friend of mine said something like that does happen. Well, sort of. If he plugs his video card to his monitor using RBG (analog) it does 0-255 for all videos. If he plugs it using DVI he gets 16-235 for all videos. I can't test it, but I use DVI and I get 16-235 on ALL resolutions!

This does presume that LCD TVs that can take vga, dvi, and hdmi do not do level conversion. I'd have to look into that, since I don't have one.
I have one and mine works basically as a computer monitor (I connect it using DVI). So I get 16-235 and black is not black. :(

This is all really frustrating. Specially when you see your videos washed out and with wrong colors and you know other people will see it that way.

wozio
6th September 2007, 07:20
Now on Vista EVR does 16-235 no matter what, SD, HDTV, 2k, 4k (I'm a video producer). That just drives me really, really crazy on all those programs that can't use Haali Renderer. :(

Such behaviour is much better than expand for hd don't for sd. You always have color controls in driver control panel where you can expand by yourself for each application. This operation is done in drivers so it is the same as expanded always.

laserfan
7th September 2007, 13:52
This comment was made re: v7.8

No fix for HD levels expansion, and they broke MPEG2 1080i acceleration with VMR9 (it weaves regardless of what deinterlacing mode you select). Cyberlink MPEG2 decoder does the same thing with EVR, although ATI's own avivo ds filter works fine and uses vector-adaptive as it should do.

Is there a consensus here to use 7.6 for now? I'm a new owner of a high-end card X1950PRO and Cyberlink PDVD Ultra and all the settings are making me dizzy... :eek:

Rash
7th September 2007, 18:01
Such behaviour is much better than expand for hd don't for sd. You always have color controls in driver control panel where you can expand by yourself for each application. This operation is done in drivers so it is the same as expanded always.
Well, not exactely. I can correct colors on NVIDIA Control Panel alright. But I still can't get rid of grey bars. Have a look.

http://rash.apanela.com/images/lost_color.png

This is horrible!

Demi9OD
7th September 2007, 19:24
I think 7.7 with reg fixes is the way to go.

trdenoise 0
dxva_nodetailenhance 0
usebt601sc 1

For me with XP and an X1900 card this was all I needed, they are all strings created directly under /0001, no UVD folder in XP.

wozio
8th September 2007, 08:28
Well, not exactely. I can correct colors on NVIDIA Control Panel alright. But I still can't get rid of grey bars. Have a look.

http://rash.apanela.com/images/lost_color.png

This is horrible!
This is problem of media player. Grey bars are not a part of video but background drawed by player. If you are using windows media player, then there is option to choose background color, try to change it.

wozio
8th September 2007, 08:30
dxva_nodetailenhance 0
Does it work for you? On my x1650 there was no difference. Can you post screenshots with it enabled and disabled?

Rash
9th September 2007, 00:08
No, it is not Wozio. My background color is set to 0,0,0 but they are still displayed as 16,16,16. This problem is related to EVR (Enhanced Video Renderer) since it shows up on all players that use it. And EVR creates 16,16,16 bars to compensate for the video according to my video card's driver. So if I don't mess with my video card's brightness and contrast I can't see the edges of the video (it is "masked").

I have done several tests that confirm this. Too bad nobody (driver makers and Microsoft) cares about it.

arfster
9th September 2007, 23:10
Does it work for you? On my x1650 there was no difference. Can you post screenshots with it enabled and disabled?

It's dxva_detailenhance afaicr.

I did screenshots with a 2400 a while back, and it was clearly sharpening. Didn't like it, so turned it off. GPU% (aka shaders) difference was minimal, unlike trdenoise.

raynor
21st October 2007, 21:06
How about the new Catalyst 7.10 ?

Have they fixed it yet (i.e. reverted it to always expand to
0-255 on DVI connections) ?

As I don't have an ATI card, I can't check. But I'm suffering
from the same issue with my NVidia card, and am considering
switching to ATI in the future. But only if they finally fix this
issue for good. :devil:

It would be nice if any ATI owner could post in the future, when
this problem has been fixed (again).

By the way, for those interested, I found the discussion in this thread
enlightening: http://forum.inmatrix.com/index.php?showtopic=5661

Bottom line: Be it ATI or NVidia, this whole thing is a terrible mess :eek:.

arfster
21st October 2007, 21:19
How about the new Catalyst 7.10 ?

Have they fixed it yet (i.e. reverted it to always expand to
0-255 on DVI connections) ?


Nope. Three months and three driver revisions since I reported the bug too.

Not too critical now though, you can reverse it back to 16-235 by setting brightness 16, contrast 86 in CCC. You just have to set UseBT601CSC=1 in registry so SD behaves the same as HD (by default HD expands, SD doesn't).

raynor
21st October 2007, 21:51
So If I understand you correctly, if I had an ATI card :rolleyes:,
all I would have to do is set UseBT601CSC=1 in the registry,
and VMR9/EVR color levels would be "correct" (0-255 that is)
for SD as well as for HD material ?

That sounds like an O.K. fix for me. Does it work with Vista, too ?

The thing is, with my NVidia card I'm doing fine with XP
and NVidia's own registry hack, but numerous users have reported
that NV's registry hack does not work under Vista, leaving
them in the dust (and preventing me from upgrading to Vista).

Cheers,
Raynor

arfster
21st October 2007, 22:07
So If I understand you correctly, if I had an ATI card :rolleyes:,
all I would have to do is set UseBT601CSC=1 in the registry,
and VMR9/EVR color levels would be "correct" (0-255 that is)
for SD as well as for HD material ?


Well, imo 16-235 is correct, since it's the original. However, otherwise you're right - that setting results in both SD and HD being equally expanded to 0-255.

In Vista, this works for everything in EVR, and everything in VMR9 when accelerated. For VMR9 without acceleration, it doesn't work by default in same apps (eg MPC, although DVBviewer is fine). Only when you move a colour control is the expansion engaged. I just avoid vmr9 altogether nowadays, EVR is better behaved generally.

The only problem is with HD 720p material with >16/9 aspect ratio, because these are encoded with bt709 as is all HD stuff. However, the card assumes they're SD because they're less than 720 lines vertical (eg 1280/2.35=544), and expands them using bt601. Makes a bit of a mess.

CruNcher
22nd October 2007, 13:50
http://www.theinquirer.net/en/inquirer/news/2007/09/18/nvidia-cynically-fiddled-video-benchmarks
http://www.fudzilla.com/index.php?option=com_content&task=view&id=2777&Itemid=34
big slap in the face for Nvidias PureVideo quality i wonder if PureVideo 3 gonna perform now as ATI Adaptive TNR when being released in some weeks :P

Rash
29th October 2007, 17:40
Whoa, big slap. That must have hurt.

Demi9OD
29th October 2007, 19:56
But the 8800GTs! They are my gaming/hd dream card -_-

raynor
29th October 2007, 22:53
But the 8800GTs! They are my gaming/hd dream card -_-

Dream card for gaming ... yes, no doubt about it ;)

Dream card for HD & General Video Playback ... no, IMHO :devil:


At least ATI has a registry fix that supposedly works for both Vista
& XP (see above), while the NVidia registry fix for the "washed out
colors" / expansion issue works only for XP, leaving you with
some trouble if you use Vista (which I luckily do not, yet)


PS: Regarding the UseBT601CSC Key, Is this key already there in the registry by default,
so that I will only have to set it to "1", when I get me an ATI card, or does it have to be created
from scratch ? If so, where exactly ?

On a sidenote, what is BT601 ? What is BT709 ? Could somebody please briefly expain this for
non-video experts ? What does this have to do with the 16-235 / 0-255 color expansion issue ?
:thanks:

arfster
30th October 2007, 15:12
PS: Regarding the UseBT601CSC Key, Is this key already there in the registry by default,


Nope - it's one of a range of hidden keys the relevant ATI video dll reads out of the registry, which all take default values when
not there (in this case 0).

Exdeus did a little script that semi-automates the addition of a few video-related tweaks for the 2400/2600, including usebt601csc:

http://exdeus.home.comcast.net/~exdeus/ati-hd2x00/

There's a link there to my post on avsforum detailing the above changes.



On a sidenote, what is BT601 ? What is BT709 ? Could somebody please briefly expain this for
non-video experts ? What does this have to do with the 16-235 / 0-255 color expansion issue ?
:thanks:

They're colour spaces - BT601 is for SD, BT709 for HD. If you want to expand/contract levels you have to know which the original video uses, as you'll get colour errors if you use the wrong one.

The ATI drivers use 720 vertical lines as a cutoff - anything below it assumes BT601, equal and above BT709. This causes problems for 720p files with wide aspect ratios which have not encoded the black bars, so the encode is 1280*550 or thereabouts - these are from a HD source and thus use BT709, but the drivers screw up and assume from the vertical resolution they're SD. If you recontract the auto-expansion (via CCC brightness16, contrast86) it'll use the same method though, so you get back to the original.

thuan
4th November 2007, 10:39
@arfster: I can't get on the comcast page, can you post the script somewhere else?

EDIT: Using 2400XT on Vista 32bit with Catalyst 7.10 and yes I have washed out color with VMR9 and the funny behavior with EVR, as expanded color range for HD and not for SD.

thuan
6th November 2007, 09:13
Here's the link to the post on avsforum about this issue:
http://www.avsforum.com/avs-vb/showpost.php?p=11622510&postcount=2011

raynor
6th November 2007, 22:43
Using 2400XT on Vista 32bit with Catalyst 7.10 and yes I have washed out color with VMR9 and the funny behavior with EVR, as expanded color range for HD and not for SD.

Without the UseBT601CSC=1 Fix,
I guess ? (Please clarify ;))

thuan
7th November 2007, 04:43
Well, to sum it up yes.
With that registry key present it works right. As in expand for all video whether it's SD or HD in EVR mode. In VMR9 mode it's only works with DXVA mode or after you touch a slider in any program that has procamp without DXVA. All tested on the above configuration.

raynor
16th February 2008, 08:07
*BUMP*

It's been a while, and I'm just curious ...
any change (concerning SD/HD color levels expansion)
with the 8.2 Catalyst ?

Thx for any feedback,
raynor

LoRd_MuldeR
16th February 2008, 15:31
At least the nasty V-Sync bug with OpenGL is still not fixed.
If I remember correctly, then Catalyst 7.6 was the last working one...

arfster
16th February 2008, 21:23
It's been a while, and I'm just curious ...
any change (concerning SD/HD color levels expansion)
with the 8.2 Catalyst ?


Nope - still expands HD, while leaving SD at 16-235. They haven't even bothered to do the easy fix for levels consistency of setting usebt601csc to 1 by default.

I went through all this with their tech support extensively in July last year and still not even the slightest progress, so clearly they just don't give a monkeys about video playback. They even marked my bug report as resolved, presumably because it hadn't been touched for months - I bitchily opened it again, no comment in response.

raynor
25th February 2008, 03:44
One more thing:

Could anybody comment on the current situation
with NVIDIA + Vista ?

Does it expand the levels to 0-255 when using EVR,
(i.e. have they fixed their drivers by now), or
is the picture still washed out (i.e. no expansion).

My latest information was that with NVIDIA + WinXP
there is a registry fix, whereas with Vista the situation was
more or less hopeless.

Any information would be greatly appreciated, as i will have
to buy a new graphics card soon, and having 0-255 levels
is a must have for me. So, if NVIDIA hasnt fixed its Vista drivers,
I will have to go with ATI, because at least there is a working
registry fix for ATI cards (i.e. for Vista too).

raynor
27th February 2008, 03:38
Are there no Nvidia card owners who are runnig Vista
and could please quickly check out if the video colors are still
washed out (i.e. not expanded) with the latest drivers using VMR9
and (especially) EVR (e.g. using MPC Home Cinema) ?

Any comments would really help me make a decision and
would be greatly appreciated.

All the best,
Raynor.

raynor
13th March 2008, 07:28
*BUMP*

So, are all the nVidia owners happy with their
color levels (i.e. has nVidia fixed it) or is it still a problem ?

sorry for bumping this, but I really have to know
for making a decision which graphics card to buy (see above)

Thanks again,
raynor


:thanks:

Comatose
22nd April 2008, 05:05
I'm on WinXP, with a 8800GTS (G80, 320MB), using latest drivers.
I didn't have a chance to try EVR on Vista, but in any case...
On WinXP, it's still not working properly. All renderers, including Overlay Mixer, aren't extending the luma range.

Haali's Video Renderer, on the other hand, is doing it properly :)

wozio
22nd April 2008, 08:39
On WinXP, it's still not working properly. All renderers, including Overlay Mixer, aren't extending the luma range.

It a matter of taste if it is correct or not. You can always expand it manually via driver settings, just bump up comtrast and lower brightness for video and that's it. This is even better so you can calibrate your display to preserve BTB and WTW information. In case of automatic expansion there is no such possibility.

kurkosdr
1st October 2009, 15:56
*BUMP*

Same problem here (Catalyst 8.453, 24 March 2008). It seems most NVIDIA and ATI drivers for vista have this problem, and it's Microsoft's fault. They recommend using the RGB 16-235 range, instead of the RGB 0-255. This is fine when using TV-out (composite) to send picture to your analog TV, but if you are using a DVI monitor, you must use the whole range.

The RGB 16-235 is not the "correct"/"original" picture. YUV pictures do not have below-black and above-white information (if they do, it's just compression artifacts). So this means that "YUV black" should be converted to RGB0 and "YUV white" to RGB255. If it gets converted to dark grey (RGB16) and bright grey (RGB235) it's wrong, as you get grey where you should have black and so on.

Quick FIx:
-If you are using VLC (latest version), go to Tools --> Preferences --> Video and uncheck the "Use hardware YUV--> RGB convertions". This should fix the issue for VLC only. In fact, the Videolan team put this option there to solve specifically this problem (in the previous versions, it was hidden deep inside the advanced menu), so use it.

-Other people claim (http://www.xpmediacentre.com.au/community/video-audio-cards-vista/33458-ati-catalyst-8-11-drivers-now-available.html) that ATI fixed the issue in their latest drivers, but I mysteriously don't get any of the last 4 monitor options on my laptop display (i only get "attributes" and "avivo color") so I can't confirm. I 've searched all corners of CCC, no other option found.

Anyway, as long as I stick to VLC for everything, I am happy. The only trade-off is that I can't use any other DVD player, like PowerDVD, so I can't enjoy the advanced de-interlacing filter of PowerDVD, I am stuck with the sub-par of VLC (blend, that is). Anyway, most DVD's are progressive now, so it's a small trade-off.

Test pattern:
Here is a test pattern to see what are you getting (download (http://rapidshare.com/files/287376219/BlackLevel.zip.html)). Play it with the player of your choice, then hit printscreen on your keyboard and paste on ms paint. Select the color picker tool and click on the backround of the test pattern (between the boxes). The go to colors -> edit colors -> define custom colors. The "Lum" must be 0. If it's 15, you are getting the wrong range. When you click on the top left box (monitors don't show this box), the "Lum" should be 1. When you click on the bottom right box, the "Lum" must be 240.

PS: Don't tell me to upgrade drivers. This is the latest my laptop vendor offers, lazy hp...
PS2: Adjusting the brightness and contrast via CCC will just mess up things. If you want to view a youtube video of play a game, you 'll have to re-adjust every time. Adjusting brightness and contrast via your player will do nothing. The drivers will still convert RGB0 to RGB16, and now you have a black crush problem to take care of, too. Only the 2 above fixes work for all people, for now.

burfadel
1st October 2009, 17:29
I'm not sure if HP actually add anything to the drivers, Catalyst Maker and 9.9 would probably work well together :) if you have anything older than a X2xx mobile chip, you'd have to stick to 9.3 and catalyst maker :)

dukey
11th October 2009, 13:22
In a nut shell, VRM9 simply renders colour spaces incorrectly. Overlay and all the previous generation of MS video renderers don't have this problem. VRM9 just creates a DX9 surface, the drivers shouldn't be having to correct this.

madshi
11th October 2009, 22:07
The RGB 16-235 is not the "correct"/"original" picture. YUV pictures do not have below-black and above-white information (if they do, it's just compression artifacts). So this means that "YUV black" should be converted to RGB0 and "YUV white" to RGB255.
That is all incorrect information.

DVDs, NTSC broadcasts, PAL broadcasts, HD DVDs and Blu-Rays are all encoded in 8bit YCbCr and they all can in theory contain BTB and WTW information. Most of them don't, but in theory they can. But anyway, that doesn't really matter at all. What matters is only which RGB format your monitor/display wants. Some want video levels (16-235), some want computer levels (0-255). Some are adjustable to either standard. Most TVs and home cinema projectors want video levels (16-235). Most computer monitors and business projectors want computer levels (0-255).

Neither video levels nor computer levels are right or wrong. The crucial thing is that the PC must send out the levels the display expects. Otherwise the image quality will suffer a lot. So there are 2 steps to a correct configuration:

(1) Find out which levels your display wants (can be either video or computer levels).
(2) Make sure your computer outputs these levels.

kurkosdr
15th November 2009, 19:42
Neither video levels nor computer levels are right or wrong. The crucial thing is that the PC must send out the levels the display expects. Otherwise the image quality will suffer a lot.
Yes but having RGB 16-235 levels for video and RGB 0-255 for everything else (photo viewer, youtube, web etc) is a bonehead decision nevertheless.

-Say you monitor requires RGB 16-235 levels. This means DVDs will look fine, while everything else, from youtube videos, jpeg photos, webpages, and even the desktop itself will look bad.

-Now say you have a computer monitor, like most of the people who use pcs. Computer monitors require RGB 0-255 levels. This means everything will look fine (youtube videos, jpeg photos etc) except DVD's which will look flat and with washed out colors.

Anyone will tell you that the way to set the levels is through the graphics card drivers, so they will get universally set for all software, not the YUV converter. The YUV converter should export proper RGB 0-255 signal. Then it's up to the driver to either leave at is it, or compress it to RGB 16-235.

Also, keep in mind that, even if you do manage to set up your card to export in RGB 16-235 (so photos and web won't look bad on your RGB 16-235 monitor), then the video will get compressed to RGB 16-235 by the YUV converter, and then further compressed to RGB 32- 220 by the graphics card driver! So you will still get the washed out colors even if you have an RGB 16-235 monitor!

The only solution to this (apart from moving to windows 7) is disabling the YUV conversions (don't try messing with the renderers, you might lose video hardware acceleration)

madshi
15th November 2009, 21:38
Yes but having RGB 16-235 levels for video and RGB 0-255 for everything else (photo viewer, youtube, web etc) is a bonehead decision nevertheless.

-Say you monitor requires RGB 16-235 levels. This means DVDs will look fine, while everything else, from youtube videos, jpeg photos, webpages, and even the desktop itself will look bad.

-Now say you have a computer monitor, like most of the people who use pcs. Computer monitors require RGB 0-255 levels. This means everything will look fine (youtube videos, jpeg photos etc) except DVD's which will look flat and with washed out colors.

Anyone will tell you that the way to set the levels is through the graphics card drivers, so they will get universally set for all software, not the YUV converter. The YUV converter should export proper RGB 0-255 signal. Then it's up to the driver to either leave at is it, or compress it to RGB 16-235.
If we're talking about displaying all this on a computer monitor, then yes, of course you should setup video playback for RGB 0-255 output. But look, some of us are using their PCs as HTPCs (home theater PCs). I have a dedicated PC built using only passive components (no fan at all) in a special case which looks like a normal Hifi component and all it ever does it playing back Blu-Rays, HD DVDs and HD broadcasts. So I sure want my HTPC to behave like any normal consumer electronics device does by default, which is outputting video as RGB 16-235, which is also what the majority of TVs (not computer monitors) expect by default. Personally, I don't care about youtube videos, web pages, jpeg photos or anything else because that's just not what I'm using my HTPC for.

*You* want PC-levels. And for you it's the correct choice. *I* want video levels. And for me video levels are the correct choice. So what I'm saying is that neither of this is "right" or "wrong". It all depends on what the PC is used for and which monitor/display/TV it's connected to.

kurkosdr
16th November 2009, 12:35
*I* want video levels.
And what you are getting is video levels for DVDs and PC-levels for JPEG photos and webpages. So you don't get what you want. That's bad

You really don't use your HTPC to view photos and youtube videos? Strange..

As I say above, the best choice would be to allow us set the levels from the Catalyst, so all our software would output in the correct levels each one of us wants.

This would be better both for you and me.

Probably seven has this feature.

madshi
16th November 2009, 12:56
And what you are getting is video levels for DVDs
Correct.

and PC-levels for JPEG photos and webpages
I get no levels for JPEG photos and webpages at all, because I don't show JPEG photos or webpages with my HTPC.

So you don't get what you want. That's bad
I get *exactly* what I want. That's good

You really don't use your HTPC to view photos and youtube videos? Strange..
You really use your HTPC to view photos and youtube videos? Strange..

--------

Let me ask you something: It seems your preferred solution with current Catalyst drivers is to setup everything to PC-levels. Correct? But what do you do if you have a beamer or TV which only works correctly with video levels? Are you aware that in this situation your setup would not only screw up video playback quality, but photo and youtube playback quality, as well?

As I say above, the best choice would be to allow us set the levels from the Catalyst, so all our software would output in the correct levels each one of us wants.

This would be better both for you and me.
I'd have no problem with that. My point was all along that neither PC levels nor video levels are wrong, and that the user should be able to choose.

However, the video should *NOT* be rendered in PC levels - and then converted by the driver (e.g. Catalyst) to video levels. Because if you did that, BTB and WTW information would be clipped. Which is bad. Also stretching 8bit video between video <-> PC levels harms image quality. Video should be rendered directly to the correct output levels.

kurkosdr
16th November 2009, 14:30
However, the video should *NOT* be rendered in PC levels - and then converted by the driver (e.g. Catalyst) to video levels. Because if you did that, BTB and WTW information would be clipped. Which is bad. Also stretching 8bit video between video <-> PC levels harms image quality. Video should be rendered directly to the correct output levels.

I admit you have a point there. The best solution would be the media player to have an option to set what levels you want (RGB 15-235 or RGB 0-255). Now, the only way to get that option is changing some obscure key in the registery. And not always
Neither PowerDVD nor WMP offer you a choice to set what levels you want. And this is software we 've paid money for!
Currently, only VLC has this kind of switch.

Also note that many monitors switch themselves in "PC levels" mode if they detect an RGB 0-255 signal on the input. Notably Samsung tv's. So, if you have one of this monitors, you are basically in the same fate as we PC monitor users, washed out colors.

So, I strongly believe we need that kind of switch in all media players.

madshi
16th November 2009, 14:35
I admit you have a point there. The best solution would be the media player to have an option to set what levels you want (RGB 15-235 or RGB 0-255). Now, the only way to get that option is changing some obscure key in the registery. And not always
Neither PowerDVD nor WMP offer you a choice to set what levels you want. And this is software we 've paid money for!
Currently, only VLC has this kind of switch.

Also note that many monitors switch themselves in "PC levels" mode if they detect an RGB 0-255 signal on the input. Notably Samsung tv's. So, if you have one of this monitors, you are basically in the same fate as we PC monitor users, washed out colors.

So, I strongly believe we need that kind of switch in all media players.
MPC HC allows you to choose the levels, too, at least when using EVR. The levels depend on the media player, the renderer and the graphics driver. So it's a very complex thing. Personally, I've given up hope that GPU companies will ever get this right.