[Vorbis-dev] Butterflies in mdct.c

Monty xiphmont at xiph.org
Thu Jan 27 12:54:03 PST 2005




On Wed, Jan 26, 2005 at 05:49:15PM +0100, petshome at atlas.cz wrote:

> In mdct.c there's some functions including some-point butterfly. In
32-point and 16-point there are calling of smaller-point function
everytime twice on each half of data. When I looked on it I found
that's just linear algebra. So it can be rewritten to matrix
multiplication.

This takes an O(n log2(n)) operation and makes it O(n^2); That's not
an optimization.  Matrix multiplication is a powerful concept in
theory and nearly always the last resort in practice.  Also, the
smallest butterflies are better than O(n log2 (n)) because of identity
cases.

>Can anyone prove that this can't be faster? Even there's possibility
>to use MMX when working with matrixes.

It's unlikely enough that I don't want to take it seriously unless
someone has an example in hand of it running faster.

Monty


More information about the Vorbis-dev mailing list