FFTW frente a OpenCV cvDFT

¿Puedo esperar una aceleración cuando uso FFTW (http://www.fftw.org/) en lugar de cvDFT de OpenCV (http://goo.gl/YCHj0)?

El tiempo de ejecución de mi programa está fuertemente determinado por la aplicación de DFT inversa y directa y estoy pensando en usar FFTW en lugar de OpenCV cvDFT.

IIRC FFTW hace algún tipo de "compilación en tiempo de ejecución", mientras que cvDFT es una implementación FFT simple, así que supongo que podría acelerar un poco mi procesamiento.

Entonces, antes de probarlo por mí mismo, pensé en preguntar aquí en caso de que alguien tropezara con la misma pregunta y la resolviera antes.

Gracias por adelantado

preguntado el 03 de mayo de 12 a las 18:05

2 Respuestas

He usado ambos (OpenCV y FFTW) y puede esperar que FFTW sea más rápido que la implementación más simple en OpenCV (cuánto depende mucho de su procesador y del tamaño de la imagen, por supuesto). Sin embargo, si planea usar su software comercialmente, FFTW tiene una licencia bastante costosa ($7500.00). En el caso comercial, recomendaría IPP de Intel sobre FFTW ya que el rendimiento es similar con una licencia mucho más asequible ($ 199.00) + obtienes mucha más funcionalidad en IPP que con FFTW (es decir, solo una biblioteca FFT).

Aquí hay varios puntos de referencia entre FFTW y varias bibliotecas de la competencia. Los resultados son un poco antiguos, pero son útiles para comparar. No estoy seguro de por qué no se incluyen las transformaciones IPP 2D (quizás cuando se realizaron estos puntos de referencia aún no existían).

Si sigue la ruta IPP, puede compilar OpenCV con soporte IPP e intercambiará el nativo cvDFT implementación con el equivalente de IPP. Esto le dará un buen impulso al rendimiento (particularmente en los chips Intel) y no tendrá que cambiar su código.

Respondido 07 ago 17, 23:08

¡Muchas gracias! Primero probaré la recopilación de IPP. Sin embargo, es necesario verificar esos problemas de licencia. - Arvid Terzibaschian

¡No hay problema! ¡Espero que encuentre que IPP es lo suficientemente rápido para sus necesidades! Lo más probable es que funcione mejor en los chips Intel Core-i7 más recientes. - mevatrón

Una comparación más actualizada y bastante bien hecha entre varias opciones de FFT, hay opciones bastante rápidas y gratuitas:

https://github.com/project-gemmi/benchmarking-fft

Respondido el 15 de Septiembre de 20 a las 22:09

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.