I'm not surprised to see VXL underperforming OpenCV in a neural net operation, since the word "neural" does not appear in the VXL source code.
The VXL vil 2D FFT implementation copies image data from each column and row to a vector, does the FFT on the vector, and copies the data back to the image again, if that data is not already in contiguous memory. This stems from a requirement of vnl_fft_1d, and will usually happen for just the columns. The vil FFT code does not take advantage of the special case of the data being real - it only operates on complex pixel values. These issues could contribute to a performance differential.
From: Jorge Sanchez [mailto:jrg.sanchez@...]
Sent: Thursday, October 23, 2008 1:48 PM
Subject: [Vxl-users] benchmark on OpenCV book
I've found a performance benchmark on the recently edited OpenCV book. I attach a capture of the graph. Can anyone explain such differences? or in other way, what kind of optimizations are used?
Jorge A. Sánchez
Centro de Investigación en Informática para la Ingeniería, CIII.
Universidad Tecnológica Nacional. Facultad Regional Córdoba.
Maestro M. López esq. Cruz Roja Argentina. CP X5016ZAA