[mythtv-users] Re: Choppy hd live tv playback with HD3000

Daniel Kristjansson danielk at cuymedia.net
Mon Dec 19 23:49:36 EST 2005

On Mon, 2005-12-19 at 21:40 -0500, Boleslaw Ciesielski wrote:
> Brandon Beattie wrote:
> > If you want to use IDCT hardware acceleration (Also known as XvMC
> > Hardware decoding), see the same setup->tv-settings->playback->page 1.

> Is IDCT really the same as XvMC? I thought IDCT (inverse discrete cosine 
> transform) was part of the calculations in the MPEG2 decompression 
> algorithm (and JPEG as well). XvMC is "motion compensation" which I 
> thought had to do with deinterlacing.
> What is really the relationship between them?

XV[ideo]   API for hardware color conversion and scaling.
XvMC       Extension to XVideo API for MPEG slice level decoding.

Initially XvMC only did motion compensation, but it was extended to
do the IDCT and then VLD. The nVidia 4 MX, and nVidia 5,6&7 series
all do IDCT. MC and IDCT acceleration are handled almost identically
to each other in the code. The only difference really is that if we
don't detect that IDCT is available we call the idct()* function on
an slice before passing it to the driver; the IDCT extension was
already built into version 1.0 of the XvMC extension to XVideo.

XvMC-VLD acceleration is a little different. It was created after
the XvMC extension was created and isn't as nice a fit; and so
far it is only supported for VIA hardware.

*idct() is actually a function pointer which calls different functions
to compute the IDCT depending on the CPU. The IDCT is just a transform
which acts like the FFT, except that it is in the real and not the
imaginary number domain, and it is 'discrete' meaning it we throw out
all the fractions. The little waves around text in JPEG images is due
to this approximation.

If you enable "Standard XvMC", MythTV always uses XvMC w/IDCT if 
it is available, unless you set the NO_XVMC_IDCT environment variable.
If you enable "XvMC-VLD", MythTV tries to use XvMC-VLD acceleration,
then falls back to XvMC w/IDCT, and then XvMC w/o IDCT, then XVideo,
then X11 Shm, then plain old X11. The last two require MythTV to do
the scaling and color conversion so they aren't terribly efficient,
but they work in a pinch on a reasonably modern system, at least
with standard definition content.

-- Daniel

More information about the mythtv-users mailing list