[FFmpeg-devel] [PATCH] split-radix FFT
Tue Aug 5 11:33:43 CEST 2008
On Mon, Aug 4, 2008 at 10:27 PM, matthieu castet
<castet.matthieu at free.fr> wrote:
> M?ns Rullg?rd wrote:
>> Loren Merritt <lorenm at u.washington.edu> writes:
>>> $subject, vaguely based on djbfft.
>>> Changed from djb:
>>> * added simd.
>>> * removed the hand-scheduled pentium-pro code. gcc's output from
>>> simple C is better on all cpus I have access to.
>>> * removed the distinction between fft and ifft. they're just
>>> permutations of eachother, so the difference belongs in revtab and
>>> not in the code.
>>> * removed the distinction between pass() and pass_big(). C can always
>>> use the memory-efficient version, and simd never does because the
>>> shuffles are too costly.
>>> * made an entirely different pass_big(), to avoid store->load aliasing.
>> Any progress on this? IMDCT is taking 84% time decoding Vorbis on
>> ARM, and SIMD-optimising the FFT in svn seems silly.
> Shouldn't fixed point stuff should help a lot on arm ?
Yes, fixed point stuff should help on low end arm cores without fpu.
If you are interested in audio decoding on such cores, you are better
to use rockbox (http://www.rockbox.org/) and not FFmpeg at the moment.
Modern arm cores have hardware fpu which is reasonably fast, so it is
quite questionable if fixed point decoder would be better for such
cores. The same happened for x86 in the past and floating point audio
decoders are now better for modern x86 cores.
> IRRC there was post about wma and cook fixed point implementation that
> were lot's of faster on such cpu.
Yes, there was some activity trying to add fixed point audio decoding
support to FFmpeg (merge some stuff from rockbox). But fixed point
code contributors were required to also implement split-radix FFT for
FFmpeg as a payload. This kind of 'blackmail' did not work well that
time, so FFmpeg is still absolutely horrible at decoding audio on old
fpu-less arm cores. Anyway, with split-radix FFT finally getting
implemented, there may be some hope for FFmpeg to get fixed point
audio decoding too
More information about the ffmpeg-devel