FFTW与OpenCV cvDFT

Arv*_*ian 7 opencv runtime fftw dft

使用FFTW(http://www.fftw.org/)而不是OpenCV的cvDFT(http://goo.gl/YCHj0)时,我能指望加速吗?

我的程序的运行时间很大程度上取决于反向和正向DFT的应用,我正在考虑使用FFTW而不是OpenCV cvDFT.

IIRC FFTW执行某种"运行时编译",而cvDFT是一个简单的FFT实现,所以我想它可以加快我的处理速度.

所以在我自己尝试之前,我想在这里问一下,如果有人偶然发现了同样的问题并解决了它.

提前致谢

mev*_*ron 13

我已经使用了两者(OpenCV和FFTW),你可以期望FFTW比OpenCV中更简单的实现更快(当然,在很大程度上取决于你的处理器和图像大小).但是,如果您计划在商业上使用您的软件,则FFTW具有相当昂贵的许可证($ 7500.00).在商业案例中,我建议英特尔的IPP优于FFTW,因为性能类似于更实惠的许可证(199.00美元)+你在IPP中获得的功能比使用FFTW更多(即只有FFT库).

以下是FFTW与各种竞争对手图书馆之间的几个基准.结果有点旧,但对比较有用.我不确定为什么不包括IPP 2D变换(也许当这些基准测试完成时它们还不存在).

如果您使用IPP路由,您可以构建具有IPP支持的OpenCV,它将cvDFT使用IPP等效项替换本机实现.这将为您带来不错的性能提升(特别是在英特尔芯片上),您无需更改代码.