[FFmpeg-devel] [PATCH] split-radix FFT
Tue Aug 5 23:40:30 CEST 2008
Ramiro Polla <ramiro at lisha.ufsc.br> writes:
>> Loren Merritt <lorenm at u.washington.edu> writes:
>>> On Fri, 25 Jul 2008, Loren Merritt wrote:
>>>> $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.
>>> yasm version.
>>> Not nasm comptabile. In particular, I depend on the assembler to
>>> optimize away reg*0 in an address, which nasm does in some cases but
>>> not if there were 3 registers before the zero culling. I could
>>> workaround this at a cost of about 10 lines of code.
>>> Doesn't distinguish HAVE_YASM from HAVE_MMX.
>>> Doesn't support mingw64. There's no barrier in principle, I just don't
>>> have a win64 box, so I could never write that version of the
>>> calling-convention macros.
>> Does FFmpeg build and run on mingw64 at all?
> Yes. It passes regression tests, mmx optimizations work, and it's
> linkable from MSVC.
OK, we don't want to break that. Care to lend a hand with this yasm
mans at mansr.com
More information about the ffmpeg-devel