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

Måns Rullgård mans
Tue Aug 5 23:40:30 CEST 2008


Ramiro Polla <ramiro at lisha.ufsc.br> writes:

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

OK, we don't want to break that.  Care to lend a hand with this yasm
thing?

-- 
M?ns Rullg?rd
mans at mansr.com




More information about the ffmpeg-devel mailing list