[Tremor] Tremor ARM performance issues

Jim Barlow JBarlow at ivl.com
Fri Dec 5 15:18:54 PST 2008


The patch actually contains all of the C source for the FFT itself, in
the cfft() function.  It would help matters to substitute an ARM
optimized FFT in its place.  Most codecs seem to use the Gluth technique
because it allows one to take advantage of existing optimized FFT code.
It's definitely out there for ARM.

prerot and prelap transform the MDCT spectrum into something that can be
run through the FFT.  postlap and postrot reverse this transform.  See
their thesis paper in chapter 5 for a description of how the algorithm
is developed.  These transforms simply perform complex multiplies and
store the result in a different part of the buffer -- equations 5.8,
5.9.

I don't have a C version, but there's enough information in the comments
and the thesis to see what the intent is.  It is a shame that Sandvall
didn't include a pure C version -- it would have helped with
understanding the algorithm.

Table size shouldn't be an issue, because you could remove the standard
MDCT tables, which I believe are just as long as the FFT tables.


Jim Barlow


-----Original Message-----
From: tremor-bounces at xiph.org [mailto:tremor-bounces at xiph.org] On Behalf
Of Nicholas Vinen
Sent: Friday, December 05, 2008 14:23
To: tremor at xiph.org
Subject: Re: [Tremor] Tremor ARM performance issues


Thanks for the information. It does look interesting.

Unfortunately I think implementing this on an ARM will take some work.
Firstly because the assembly function will need to be rewritten in C or
in ARM assembly. I'd first have to understand the assembly format of
their CPU/DSP, and then understand what they are doing, unless you can
point me to a C version of that function (which would be very useful!).
I've implemented FFT before but it was so long ago I don't remember the
exact details. I do remember the re-ordering of the data (some kind of
interleaving) which I assume is what this "prelap" function does.



More information about the Tremor mailing list