2012-05-03 113 views
6

當使用FFTW(http://www.fftw.org/)而不是OpenCV的cvDFT(http://goo.gl/YCHj0)時,我可以期待加速嗎?FFTW與OpenCV cvDFT

我的程序的運行時間很大程度上取決於反向和正向DFT的應用,我正在考慮使用FFTW而不是OpenCV cvDFT。

IIRC FFTW執行某種「運行時編譯」,而cvDFT是一種簡單的FFT實現,所以我猜它可能會加快我的處理速度。

所以在我自己嘗試之前,我想在這裏問一下,如果有人偶然發現了同樣的問題並解決了之前的問題。提前

回答

11

謝謝,我都用了(OpenCV的和FFTW),你可以期望FFTW要快於OpenCV的更簡單的實現(多少很大程度上取決於當然你的處理器和圖像大小)。但是,如果您打算使用您的軟件,FFTW會有相當昂貴的許可證($ 7500.00)。在商業案例中,我建議在FFTW上使用Intel's IPP,因爲性能類似於更便宜的許可證(199.00美元)+您在IPP中獲得比FFTW更多的功能(即僅使用FFT庫)。

Here是FFTW和各種競爭對手圖書館之間的幾個基準。結果有點古怪,但比較有用。我不確定爲什麼不包括IPP 2D變換(也許當這些基準測試完成後,他們還不存在)。

如果您使用IPP路由,您可以構建帶有IPP支持的OpenCV,它將使用IPP等效替換本地cvDFT實現。這會給你一個很好的性能提升(特別是在Intel芯片上),而且你不需要改變你的代碼。

+0

非常感謝!我會先嚐試IPP重新編譯。不過,需要檢查這些授權問題。 –

+0

沒問題!希望您能找到IPP足夠快的滿足您的需求!它最有可能在最新的英特爾酷睿-i7芯片上表現最佳。 – mevatron