*** empty log message ***

This commit is contained in:
Mark Borgerding 2005-10-27 20:10:54 +00:00
parent 070d040425
commit 445b215619

26
README
View File

@ -60,7 +60,7 @@ During this process, I learned:
1. FFT_BRANDX has more than 100K lines of code. The core of kiss_fft is about 500 lines (cpx 1-d).
2. It took me an embarrassingly long time to get FFT_BRANDX working.
3. A simple program using FFT_BRANDX is 522KB. A similar program using kiss_fft is 18KB.
4. FFT_BRANDX is roughly twice as fast as KISS FFT.
4. FFT_BRANDX is roughly twice as fast as KISS FFT in default mode.
It is wonderful that free, highly optimized libraries like FFT_BRANDX exist.
But such libraries carry a huge burden of complexity necessary to extract every
@ -68,6 +68,16 @@ last bit of performance.
Sometimes simpler is better, even if it's not better.
FREQUENTLY ASKED QUESTIONS:
Q: Can I use kissfft in a project with a ___ license?
A: Yes. See LICENSE below.
Q: Why don't I get the output I expect?
A: The two most common causes of this are
1) scaling : is there a constant mutliplier between what you got and what you want?
2) mixed build environment -- all code must be compiled with same preprocessor
definitions for DATATYPE & FIXED_POINT
PERFORMANCE:
(on Athlon XP 2100+, with gcc 2.96, float data type)
@ -83,7 +93,11 @@ DO NOT:
UNDER THE HOOD:
Kiss FFT uses a time decimation, mixed-radix, out-of-place FFT.
No scaling is done. Optimized butterflies are used for factors 2,3,4, and 5.
No scaling is done for the floating point version (for speed).
Scaling is done both ways for the fixed-point version (for overflow prevention).
Optimized butterflies are used for factors 2,3,4, and 5.
The real optimization code only works for even length ffts. It does two half-length
FFTs in parallel (packed into real&imag), and then combines them via twiddling.
@ -92,15 +106,15 @@ No scaling is done. Optimized butterflies are used for factors 2,3,4, and 5.
modified to put the scrap at the tail.
LICENSE:
BSD, see COPYING for details. Basically, "free to use&change, give credit where due, no guarantees"
Revised BSD License, see COPYING for verbiage.
Basically, "free to use&change, give credit where due, no guarantees"
Note this license is compatible with GPL at one end of the spectrum and closed, commercial software at
the other end. See http://www.fsf.org/licensing/licenses
TODO:
*) Add real optimization for odd length FFTs (DST?)
*) Add real optimization to the n-dimensional FFT
*) Add simple windowing function, e.g. Hamming : w(i)=.54-.46*cos(2pi*i/(n-1))
*) Make the fixed point scaling and bit shifts more easily configurable.
*) Document/revisit the input/output fft scaling
*) See if the fixed point code can be optimized a little without adding complexity.
*) Make doc describing the overlap (tail) scrap fast convolution filtering in kiss_fastfir.c
*) Test all the ./tools/ code with fixed point (kiss_fastfir.c doesn't work, maybe others)