[FFmpeg-devel] [PATCH] split-radix FFT

Ramiro Polla ramiro
Tue Aug 5 23:24:31 CEST 2008


  wrote:
> 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.

Ramiro Polla




More information about the ffmpeg-devel mailing list