2012-05-03 2 views
6

OpenCV의 cvDFT (http://goo.gl/YCHj0) 대신 FFTW (http://www.fftw.org/)를 사용할 때 속도 향상을 기대할 수 있습니까?FFTW 대 OpenCV cvDFT

내 프로그램의 런타임은 역방향 및 순방향 DFT의 적용으로 크게 결정되며 OpenCV cvDFT 대신 FFTW를 사용하려고합니다.

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를 빌드 할 수 있으며 기본 cvDFT 구현을 IPP와 동일한 것으로 바꿉니다. 이렇게하면 (특히 인텔 칩에서) 좋은 성능 향상을 얻을 수 있으며 코드를 변경할 필요가 없습니다.

+0

고맙습니다. 먼저 IPP 재 컴파일을 시도 할 것입니다. 하지만 라이센스 문제를 확인해야합니다. –

+0

괜찮습니다! IPP가 귀하의 요구에 충분히 빠르기를 바랍니다! 최신 Intel Core-i7 칩에서 가장 잘 작동합니다. – mevatron