[Vorbis-dev] Well decomposed mdct

Ralph Giles giles at xiph.org
Sun Feb 20 11:30:36 PST 2005


On Sun, Feb 20, 2005 at 03:09:37PM +0100, petshome at atlas.cz wrote:

> I did composition of butterfly8 and butterfly16 and I found, that these functions are well decomposed - decomposition doesn't lower computional speed. On the other hand the same can be done with butterfly8 - decomposition to butterfly4 (further decomposition is not possible) but there's no reason to do this. I think little improvement can be done by inlining them. Compiler and processor can do some speed up only in functions, not between them. Speculative execution works better without jumps.

Glad to hear they are in fact a sane decomposition. Thanks for checking.

> Did anybody tested MDCT on pictures/video data? It can bring same computional load as DCT but lower data rates (as MP3 - Vorbis).

You mean running image data through vorbis? some people have experiemented with that, I think.

If you mean in general, then yes, most lossy image and video formats use an MDCT, including our 
own theora codec.

> Did anybody tested arithmetic coding instead of Huffman coding? This can lower data rate (or increase quality). Computional complexity will increase but cannot be so high for Pentium 4. This can be audiophile option when coding. I don't suppose support of this on fixed-point decoders.

No. Performance issues aside (it's not really more complex, just much, much slower--vorbis isn't 
only implemented on GHz P4s :) useful implementations of arithmetic coding are still covered by 
patents, though many of those will be expiring in the next decade. There are some variations of 
range coding that are believed to be free and do almost as well.

Would be interesting to find out how far from optimum our huffman codebooks are, if you want to 
experiment. We do know the fixed sets the reference encoder uses are withing a few percent of 
optimal for huffman, but I don't know about optimal with respect to actual entropy.

FWIW,
 -r


More information about the Vorbis-dev mailing list