[Open-graphics] decoding video in real-time

Vesa Solonen vsolonen at cc.hut.fi
Thu Mar 22 16:45:21 EDT 2007


On Thu, 22 Mar 2007, Koen De Vleeschauwer wrote:

>> I believe video players usually use the sound card as timing source,
>> otherwise they'd have to compensate for the difference between the sound
>> card's clock and system/graphics clock by resampling the sound.
>
> If you're watching a live broadcast, the video decoding in the TV receiver has to be synchronous with the video encoding TV transmitter.
> The slightest difference in clock would case video frames to be missed or skipped in the long term. The same clock reference is also used for audio/video synchronisation (lip sync).
> This is the System Clock Reference/Program Clock Reference mechanism.
>
> I thought mplayer uses the sound card timer as System Clock Reference.
> I assume this is because what is really needed to locally re-create the system clock -  a 27 MHz voltage-controlled crystal oscillator - is not generally available on PC hardware.

If one looks at 
http://www.linuxtv.org/wiki/index.php/The_DVB_Decoder_Challenge there is a 
very good summary of problems in DVB decoding on computer. Audio 
resampling is the way to go and it is way more simple than frame rate 
resampling. For frame rate resampling there must be motion compensation 
and such, so very coplicated and resource wasting. A good example of that 
topology seems to be NVidia 'PureVideo' (tm).

IMHO the final product just have to have a driver hook for runtime 
fine tuning of pixel frequency. If the clock synthesizer only allows 
certain too coarse steps, then some kind of fractional division scheme 
could work as phase noise isn't that important here.

I think Timothy was going for variable blanking period as a solution last 
time I made noise about the problem. That needs to be tested on real 
monitors to make sure that picture wont jump. Variable Vblank is really 
elegant if it works well. I've actually tested 27 MHz VCO on an old Matrox 
for analog video deinterlacing/upscaling and it was great, but not too 
digital apart from frequency division by 1728 (27 MHz / 15625 Hz).

-Vesa


More information about the Open-graphics mailing list