[intel] wrong white and black levels in xv
xorg.the.jokluge at recursor.net
Thu Nov 22 15:11:03 PST 2007
I have an issue with correct black and white levels with
the intel driver. The most visible symptom is a greyish black in movies.
As introduction a quote from Wikipedia:
Blacker-than-Black - PC RGB, 100% black starts off at 0 and 100% is at
255. Studio RGB, 100% black is at 16, and 100% white is at 235.
Anything lower than 16, say from 0 - 15, that's below black, and
anything higher than 235, from 236 - 255, that's above white.
There exists a test case published by Mark Sydow which shows
wether you are affected. Play the file VTS_01_1.VOB with your favorite
media player - I'm using mplayer. Pause on the first black screen. If
you own a CRT, crank up the brightness. If you own a TFT, adjust
contrast so that the dim white greay are distinguishable. If I set
video output to gl or x11 and play the attached VTS_01_1.VOB everything
below level 16 (reference black) is as black as the background. This
happens, because the levels 16...235 are expanded to 0...255. If I set
video output to xv, I can see bars all the way down to 0, making black
in most movies look greyish. The natural solution to this problem is to
adjust you screen, but you can't do this with a machine which is not
complety dedicated to video presentation.
With Windows, this problem was introduced with VMR9 and there are
quite a few solutions:
1. video driver update
2. forcing RGB or adjust within FFDShow
3. use AVISynth
4. use a shader for Media Player Classic
Unfortunately, none of this options are available for Linux.
The "ATI Radeon Video Overlay" driver supplies the variable
XV_COLORSPACE acessible by xvattr, the i810 does not have this option.
gxine exhibits the same behaviour, vlc is wrong at all devices. So, how
to fix? GL is rather unusable for me since there is diagonal tearing.
Xubuntu 7.10 gutsy
Intel i945GM chipset
1280x1024 24 bit
More information about the xorg