Refresh rate for playback: results

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



  While home for the holidays, I spent time playing with refresh rates
for TV playback.  The goal was to get the fast-scrolling stock quotes at
the bottom of a national news channel to look as smooth and as readable
as my TV.  I'm using:

  - My app tvtime [1], which uses linear interpolation to scale up each
    field to full 720x480 and display it using XVideo at 50/59.94fps.
  - Matrox g400, with double-buffered overlay surfaces (patched driver).
  - A hacked kernel module by Zdenek Kabelac which gives me a device
    where read() blocks until the next vertical retrace.
  - I fixed [2] the XF86VidMode extension so I could use AddModeLine and
    SwitchToModeLine to change my refresh rate on the fly.

  I first experimented with trying to set the refresh rate of my monitor
to exactly the same rate as the input, and then re-evaluate my choice at
regular intervals.  This was suggested by Dave Marsh in his paper on
rate conversion [3].  I attempted to modify the refresh by using a
static mode and changing the dot clock, and also by increasing or
descreasing the htotal and vtotal values.

  What I found was that there seems to be a very coarse granularity for
possible refresh rates.  Playing with the htotal and vtotal values
showed that they aren't honoured exactly, and instead jump up or down in
spurts.  Changing the dot clock showed that the theoretical refresh rate
is not at all the actual rate, and they'll usually be off by almost half
a hz.  Not only that, but whenever I change dot clocks, the monitor has
to resync completely, which causes a much larger break in the video.  At
least with ModModeLine there's the chance we could hack the source to
not require a resync in the best case.

  The closest I was able to get at 1024x768 was within .2-3hz of the
input framerate.  With this much error, the beautiful scrolling text
would stutter harshly every 30 seconds or so.  Very sad.

  I've found that things are much different depending on what frame size
you're at though.  At 800x600, the two monitors I've tried can happily
run at a 95hz or 100hz refresh rate.  This seems high enough that the
scrolling text seems very smooth.  However, close examination shows that
the text is a bit wavey in its smoothness, and single-pixel high lines
flicker more than on a TV, since we're now favouring one shade over the
other.

  I'm going to continue to experiment, and I'll post my results on my
refresh rate page [4].

  [1] http://www.dumbterm.net/graphics/tvtime/
  [2] The XF86VidMode extension in 4.1 has bugs!  I'll soon post my
      patch with comments to Xpert.
  [3] http://www.microsoft.com/hwdev/archive/TVBROADCAST/TempRate.asp
  [4] http://www.dumbterm.net/graphics/refresh/

-- 
Billy Biggs
vektor@xxxxxxxxxxxx





[Index of Archives]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [Linux USB]

Powered by Linux