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