FFTW与OpenCV cvDFT的比较

8
我可以使用FFTW(http://www.fftw.org/)代替OpenCV的cvDFT(http://goo.gl/YCHj0),来加速我的程序运行吗?
我的程序运行时间主要由逆向和正向离散傅里叶变换的应用决定,我正在考虑使用FFTW代替OpenCV cvDFT。
据我所知,FFTW进行了某种形式的“运行时编译”,而cvDFT是一个简单的FFT实现,因此我想它可能会加速我的处理速度一些。
因此,在自己尝试之前,我想在这里询问,以防有人遇到相同的问题并在此之前解决了它。
谢谢提前。
2个回答

17

我曾经使用过OpenCV和FFTW两种库,可以预计FFTW比OpenCV中简单的实现更快(当然这很大程度上取决于您的处理器和图像大小)。但是,如果您计划商业化使用软件,FFTW将需要相对昂贵的许可证费用(7500.00美元)。在商业情况下,我建议使用Intel's IPP而不是FFTW,因为IPP的性能类似,许可证费用要便宜得多(199.00美元),而且IPP提供的功能也远远超过了FFTW(即只有FFT库)。

这里有几个FFTW和其它竞争库之间的基准测试结果。这些结果有点老,但还是有用的。我不确定为什么IPP 2D转换不包含在内(可能是在进行这些基准测试时它们还不存在)。

如果您选择使用IPP,您可以构建支持IPP的OpenCV,并将原生的cvDFT实现替换为IPP等效实现。这将大大提高性能(尤其是在英特尔芯片上),而且您不需要更改代码。


非常感谢!我将首先尝试重新编译IPP。不过需要检查一下那些许可问题。 - Arvid Terzibaschian
没问题!希望你发现IPP对你的需求来说足够快!它在最新的英特尔Core-i7芯片上表现最佳。 - mevatron

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接