8

OpenCV の cvDFT (http://goo.gl/YCHj0) の代わりに FFTW (http://www.fftw.org/) を使用すると、高速化を期待できますか?

私のプログラムの実行時間は、逆 DFT と順 DFT の適用によって大きく左右されます。OpenCV cvDFT の代わりに FFTW を使用することを考えています。

IIRC FFTW はある種の「ランタイム コンパイル」を行いますが、cvDFT は単純な FFT 実装であるため、処理が少し高速化されると思います。

ですから、自分で試してみる前に、誰かが同じ質問につまずいて以前に解決した場合に備えて、ここで質問することを考えました.

前もって感謝します

4

2 に答える 2

15

私は両方 (OpenCV と FFTW) を使用しましたが、FFTW は OpenCV での単純な実装よりも高速であることが期待できます (もちろん、プロセッサと画像サイズに大きく依存します)。ただし、ソフトウェアを商業的に使用する予定がある場合、FFTW にはかなり高価なライセンス ($7500.00) があります。商用の場合、FFTW よりもはるかに手頃なライセンス ($199.00) でパフォーマンスが似ているため、FFTW よりもIntel の IPPをお勧めします。さらに、FFTW よりも IPP の方がはるかに多くの機能を利用できます (つまり、FFT ライブラリのみ)。

ここでは、FFTW とさまざまな競合ライブラリ間のベンチマークをいくつか示します。結果はちょっと古いですが、比較に役立ちます。IPP 2D 変換が含まれていない理由はわかりません (おそらく、これらのベンチマークが行われた時点ではまだ存在していなかったのでしょう)。

IPP ルートを使用する場合は、IPP サポートを使用して OpenCV をビルドでき、ネイティブcvDFT実装を IPP と同等のものに交換できます。これにより、(特に Intel チップで) パフォーマンスが大幅に向上し、コードを変更する必要がなくなります。

于 2012-05-03T18:20:20.243 に答える