[mythtv-users] nVidia GF4 mx440 tv-out optimization

Bruce Markey bjm at lvcm.com
Sun Mar 28 15:50:25 EST 2004


blacklion at blacklion.org wrote:
> I've actually seen this same problem.  I have a Chaintech 7NIF2 board
> with the GF4 MX 440 S-Video out.  The desktop looks terrible, as
> expected.  However, when I have the frontend running, I can see the
> horizontal refresh flicker.  I have this hooked up to a Sony 27-inch
> TV.  The TV has 3 A/V inputs.  Only one of the inputs has an S-Video
> connector.  I have my HorizSync set to 30 - 50 and my VertRefresh set to
> 60.  I don't see this flicker when watching Live TV or videos.  I
> haven't put in any images yet so I'm not sure how they look.  It's only
> on the menu screens that I see a flicker.

Flicker has to do with how TVs work and how eyes work. Several
environmental factors can effect how much you perceive flicker
but one general thing is to reduce the maximum brightness (by
lowering "contrast" for most sets, go figure ;-).

> On another note, I haven't been impressed so far with the Live TV
> picture.  I'm sure there is more configuration that I could do.  I just
> need some direction.  Here are the two problems I'm seeing:

Nor had I (rickin', sniggle frit...) and have experimented with
a lot of things for over a year. Now with the "adjust" filter
and lots of tweaking I finally have a picture that reproduces
the color palette nearly identical to a direct feed into the
TV set.

> 1. Light colors and whites have hardly any detail at all.  They are just
> so bright that all the detail is just washed out.

Bingo! This is the biggest problem for picture "quality" and
there is no tweak to the resolution or compression or deinterlace
that will fix the colors(!). There are actually a couple related
issues with luma and chroma that need to be adjusted.

Before going into these adjustments, it is very helpful to use AGC
if possible. The "v4l2" interface for bttv includes an option to
set Automatic Gain Control. Some card have too high saturation and
others too low by default. AGC normalizes the chroma level which will
prevent distortions when trying to compensate further down the line.

$ v4lctl -c /dev/video0 list
attribute  | type   | current | default | comment
-----------+--------+---------+---------+-------------------------------------
norm       | choice | NTSC    | PAL     | PAL NTSC SECAM PAL-Nc PAL-M PAL-N NTSC-JP PAL-60
input      | choice | Televis | Televis | Television Composite1 S-Video
audio mode | choice | lang1   | mono    | mono stereo lang1 lang2
bright     | int    |   34000 |   32768 | range is 0 => 65535
contrast   | int    |   23200 |   32768 | range is 0 => 65535
color      | int    |   32000 |   32768 | range is 0 => 65535
hue        | int    |   32768 |   32768 | range is 0 => 65535
mute       | bool   | off     | off     |
chroma agc | bool   | on      | off     |
combfilter | bool   | off     | off     |
automute   | bool   | on      | off     |
luma decim | bool   | off     | off     |
agc crush  | bool   | on      | off     |
vcr hack   | bool   | off     | off     |
whitecrush | int    |     207 |     207 | range is 0 => 255
whitecrush | int    |     127 |     127 | range is 0 => 255

If you don't see some of the attributes like "chroma agc" then
your kernel doesn't have v4l2 support. You can go the bytesex.org
to get the v4l2 patches for your kernel version.

If you do have v4l2, this will turn on the AGC mode:

$ v4lctl -c /dev/video0 setattr 'chroma agc' on


The problems with the image from bttv are that there is a known
bug in the values for the luma range and also the chroma range
doesn't align properly with the luma.

The luma bug causes anything near white to be fully white. Clouds
in the sky, for example, are white blobs with no detail. The quick
hack is the cut the v4l contrast to avoid high luma altogether.
However, the better solution is to use the "adjust" filter written
by Andrew Mahone. This remaps any value from the chip to fall
within the normal range.

The other problem is that the chroma range is misadjusted so that
colors in bright areas are weak and pale compared to colors in
darker areas. If you turn up the saturation to the point where
dark red is beating and bleeding, bright red is still pinkish and
pale as if white paint was mixed in. The overall effect is that
video looks like "old film" as someone once described it. Things
don't look dense but just sort of washed out.

This can also be fixed with the "adjust" filter. By narrowing the
chroma input range to the filter, the chroma range is stretched
into the higher luma (bright) range. If saturation is the color
width, this would be the color height =). More color at bright
levels means that things look more solid, dense, vivid, lifelike,
and more bright color without dark colors bleeding.

With these adjustments, video looks like live video rather than
that dingy film look.

mysql -u mythtv -pmythtv -hyourhost mythconverg

mysql> update channel set contrast=23200,brightness=34000,colour=32000,hue=32768;

mysql> update channel set videofilters='adjust=18:237:1.0:35:220:1.0';

PVR-X50 cards do have a better picture than bttv cards by default
so it is 'common knowledge' that PVR cards are somehow superior
in the quality of the capture hardware (even though they use the
same capture chip =). However, with these adjustments, I see a much
better, more vivid picture from my bttv cards than I can possibly
get from any adjustments with my PVR-250.


BTW, to return safely to the crappy defaults:

mysql> update channel set contrast=32758,brightness=32768,colour=32768,hue=32768;

mysql> update channel set videofilters='';

> 2. I'm not sure what to call it,

Call it "interlace artifacts" ;-)

>  but I see a lot of "jitter" or
> horizontal lines during fast moving scenes on TV.  I've activated the
> "Jitter reduction" option in the TV settings, but that doesn't seem to
> help.

The horizontal lines are the result of TV being interlaced and
every other line is a half of a frame later in time than the other
half of the lines. The only way a TV picture can ever look right
is if there is a true one-to-one alignment with the scanlines on
the screen. With X running (at some resolution) in an underscaned
area on the screen, that's not going to happen.

There are way to blur the horizontal line called "deinterlacing".
Go to TV Settings->Playback, first page. You could simply check
"Deinterlace playback", however, you will get better results if
you leave it unchecked and enter "kerneldeint" in the Custon
Filters test box.

"Jitter reduction" has to do with evening out the timing of the
frame drawing and will reduce the choppy movement seen in news
tickers. This has nothing to do with horizontal lines despite what
you may have heard elsewhere ;-).

--  bjm


More information about the mythtv-users mailing list