IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
Best FFT library?
mudlord
post Apr 18 2011, 07:07
Post #1





Group: Developer (Donating)
Posts: 805
Joined: 1-December 07
Member No.: 49165



Hi,

Since FB2K seems to lack a FFT library for general use (apart from the visualization API) I figured I'd ask here.
I am wondering on people's recommendations for FFT calculation, to be more precise 1 dimensional DFTs.

I am somewhat limited by license since GPL stuff is forbidden under foobar2000. And I already got hounded personally before, for not sticking to the GPL, so I don't wanna make the same mistakes twice, since some certain projects are VERY vocal about their GPL and licensing rights.

Any suggestions as to what library has good ease of use, and above all, processing speed would be great. Libraries which can be used natively in C++ would be preferred, but plain C ones could do.
Thanks.

This post has been edited by mudlord: Apr 18 2011, 07:08
Go to the top of the page
+Quote Post
saratoga
post Apr 18 2011, 07:15
Post #2





Group: Members
Posts: 4853
Joined: 2-September 02
Member No.: 3264



Do you need non-power of 2 sizes? The ffmpeg FFT is fairly efficient, not too complicated and LGPL, but I think is restricted to powers of 2. Sucks that you can't use fftw . . .
Go to the top of the page
+Quote Post
mudlord
post Apr 18 2011, 07:19
Post #3





Group: Developer (Donating)
Posts: 805
Joined: 1-December 07
Member No.: 49165



Nope, dont need non power of twos. Plain POT FFT sizes are fine.
I will take a look at FFMPEG.
Go to the top of the page
+Quote Post
Garf
post Apr 18 2011, 08:17
Post #4


Server Admin


Group: Admin
Posts: 4882
Joined: 24-September 01
Member No.: 13



Intel IPP (needs a license, but can be compatible with fb2k) or AMD CML (is free I think?)

djbfft: http://cr.yp.to

FXT: http://www.jjj.de/fxt/ Edit: is GPL

Ooura 2,4 and split-radix: http://www.kurims.kyoto-u.ac.jp/~ooura/fft.html

KISSFFT: http://sourceforge.net/projects/kissfft/

Of these, Ooura is very fast and still simple, so if you don't know what to pick, that is my bet.

This post has been edited by Garf: Apr 21 2011, 10:17
Go to the top of the page
+Quote Post
mudlord
post Apr 18 2011, 08:22
Post #5





Group: Developer (Donating)
Posts: 805
Joined: 1-December 07
Member No.: 49165



Nice!

Thanks a lot Garf!
Will def. take a look at Ooura. KISSFFT looks quite nice, I like how simple it is to implement.
Will take a look at the others as well.

Thanks again! Really appreciate it!
Go to the top of the page
+Quote Post
honestguv
post Apr 18 2011, 09:29
Post #6





Group: Members
Posts: 257
Joined: 10-August 07
Member No.: 46091



QUOTE (mudlord @ Apr 18 2011, 08:22) *
Nice!

Thanks a lot Garf!
Will def. take a look at Ooura. KISSFFT looks quite nice, I like how simple it is to implement.
Will take a look at the others as well.

Thanks again! Really appreciate it!


I have tended to use this one over the years:

http://www.fftw.org/

Go to the top of the page
+Quote Post
kode54
post Apr 18 2011, 10:37
Post #7





Group: Admin
Posts: 4578
Joined: 15-December 02
Member No.: 4082



QUOTE (honestguv @ Apr 18 2011, 01:29) *
I have tended to use this one over the years:

http://www.fftw.org/

Thanks for reading the original post that says he can't use FFTW because it's GPL.
Go to the top of the page
+Quote Post
mudlord
post Apr 18 2011, 11:50
Post #8





Group: Developer (Donating)
Posts: 805
Joined: 1-December 07
Member No.: 49165



Yes, I made it crystal clear that any GPL related software is avoided.
Unless its under LGPL.
Go to the top of the page
+Quote Post
lvqcl
post Apr 18 2011, 16:03
Post #9





Group: Developer
Posts: 3327
Joined: 2-December 07
Member No.: 49183



QUOTE (saratoga @ Apr 18 2011, 10:15) *
The ffmpeg FFT is fairly efficient, not too complicated and LGPL, but I think is restricted to powers of 2.

And FFT length is limited by 216.

QUOTE (Garf @ Apr 18 2011, 11:17) *
AMD CML (is free I think?)

I don' t understand this legal jargon:
QUOTE
You may:
a) use the Software; and
b) make a reasonable number of copies necessary for the purposes of this License. You must reproduce on such copy AMD's copyright notice and any other proprietary legends that were on the original copy of the Software.

You may not:
a) decompile, reverse engineer, disassemble or otherwise reduce the Software to a human-perceivable form;
b) modify, network, rent, lend, loan, distribute or create derivative works based upon the Software in whole or in part; or
c) transfer or sublicense the Software to another end user or otherwise transfer the Software except as permitted by this License.
Go to the top of the page
+Quote Post
mudlord
post Apr 20 2011, 04:05
Post #10





Group: Developer (Donating)
Posts: 805
Joined: 1-December 07
Member No.: 49165



QUOTE
I don' t understand this legal jargon:


yeah, the derivative works clause is interesting. In that case, has AMD lawyers thought of people using the library at all? tongue.gif

Go to the top of the page
+Quote Post
Garf
post Apr 20 2011, 08:46
Post #11


Server Admin


Group: Admin
Posts: 4882
Joined: 24-September 01
Member No.: 13



QUOTE (mudlord @ Apr 20 2011, 05:05) *
yeah, the derivative works clause is interesting. In that case, has AMD lawyers thought of people using the library at all? tongue.gif


Good catch. I filed a bug on this. Wonder if they care.
Go to the top of the page
+Quote Post
Garf
post Apr 20 2011, 18:36
Post #12


Server Admin


Group: Admin
Posts: 4882
Joined: 24-September 01
Member No.: 13



QUOTE (Garf @ Apr 20 2011, 09:46) *
QUOTE (mudlord @ Apr 20 2011, 05:05) *
yeah, the derivative works clause is interesting. In that case, has AMD lawyers thought of people using the library at all? tongue.gif


Good catch. I filed a bug on this. Wonder if they care.


They pointed to this license, which should avoid the gaffe you found, but contains even more legalese:

http://developer.amd.com/cpu/Libraries/acm...es/default.aspx
Go to the top of the page
+Quote Post
mudlord
post Apr 21 2011, 08:17
Post #13





Group: Developer (Donating)
Posts: 805
Joined: 1-December 07
Member No.: 49165



Yep...
QUOTE
5. Restrictions. Restrictions regarding Your use of the Materials are as follows. You may not:
a) distribute, publish or sublicense the Documentation, the Sample Source, the Libraries (except when built
into the Distributed Software), the Tools or any Source Code in the Materials to any one;
b) reproduce copies of the Materials other than what is reasonably required for the Licensed Purpose;
c) decompile, reverse engineer, disassemble or otherwise reduce the Object Code contained in the
Materials to a human-perceivable form;
d) alter any copyright, trademark or patent notice(s) in the Materials;
e) use AMD’s trademarks in Your software or product names or in a way that suggests the Distributed
Software comes from AMD or is endorsed by AMD;
f) use AMD’s trademarks in Your software or product names or in a way that that suggests that any of the
Materials are endorsed by AMD;
g) include contents in malicious, deceptive or unlawful programs;
h) modify and/or distribute any of the Materials so that any part of thereof becomes subject to a Free
Software License; or
i) rent, lease or lend the Materials or transfer the Materials to any third party except as expressly provided
herein.


Much more sane smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 25th July 2014 - 09:01