What fraction of work is iDCT?

Jeffrey W. Baker jwbaker at acm.org
Mon Jun 25 07:34:41 CEST 2001


On Sun, 24 Jun 2001, Michel LESPINASSE wrote:

> On Sat, Jun 23, 2001 at 12:39:01AM -0700, Jeffrey W. Baker wrote:
> > I am unfamiliar with the workload needed to decode a DVD.  Can someone
> > please characterize for me how frequently the iDCT need to be performed,
> > and what fraction of the CPU load it normally represents?  I have an iDCT
> > routine for AltiVec to replace the broken routine currently in the source
> > tree.  This routine performs the transform at the rate of 377000
> > transforms per second on an otheriwse idle 400 MHz 7410.  With the
> > "classic" iDCT, the machine drops about every fifth frame.  How much
> > should I expect this new routine to boost performance?
>
> I'm not sure about vlc, but I know for libmpeg2 on x86 the work is
> roughly divided like that:
>
> 30% motion compensation
> 25% IDCT
> 25% parsing of IDCT coefficients
> 20% everything else (mostly parsing)
>
> of course if any component is less optimized it will take more
> time. For example the c IDCT would easily be 3-4 times slower than the
> mmx/sse IDCT so that would affect the percentages a lot. Also color
> conversion and display will add more time on top of that.
>
> By the way, if you have working IDCT of MC routines for altivec I'd be
> interested to get a copy too :)

Alright I'll try to send it to you tomorrow :)  I just adapted the AltiVec
IDCT from Apple's AltiVec examples.  It has a liberal license, which only
requires that if you redistribute it, you don't mention Apple.

Unfortunately Motorola's GCC 2.95.2 with the vector extensions can't build
all of vlc, so the build has to flip between it and a reliable GCC.

-jwb





More information about the vlc-devel mailing list