What fraction of work is iDCT?

Samuel Hocevar sam at zoy.org
Mon Jun 25 14:02:57 CEST 2001

On Sat, Jun 23, 2001, 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?

   On a sample MPEG2 stream I have (Dolby_Broadway), vdec_IDCT is called
about 85,000 times per second, and vdec_SparseIDCT about 58,000 times
per second. When using the MMX EXT version, it represents around 22% of
the decoding process, while the C version eats almost 30%.

> 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?

   It's hard to tell, but a quick calculus is that the C iDCT eats 35%
of your CPU, while the iDCT version would eat 85,000/377,000 which is
about 22%. You'd probably gain even more than with MMX EXT vs. C on an
x86, which means a 10-20% performance gain. This is of course a rough
estimation, but I think it's definitely worth it.


More information about the vlc-devel mailing list