Saturday, April 21, 2012

Optimizing the performance of Gcc compiled programs for BeagleBoard

Researching the various ways to optimize the compilation programs for BeagleBoard, I've come with the following parameters for GCC:


-O3 -fomit-frame-pointer -mfloat-abi=softfp -mfpu=neon -mcpu=cortex-a8 -ftree-vectorize -ffast-math

At the moment they are the best parameters we could get. Maybe you have aditional parameters you use to speed the resulting program's performance?

Improving Beagleboard capture speed on OpenCV

It seems that the capture routines of OpenCV don't perform so well on the Beagleboard. Our  tests were really disappointing, with 2-3 fps on our low vision project.

We had to develop a custom optimized capture mechanism, which retrieves the raw YUYV frames, extracts the Y components, and works from there.

This allow us to grab at full camera speed at 640x480 for a Logitech Pro9000 camera, and we are optimizing to get the full resolution, 1600x1200.  Apparently SDL can be used to grab frames with improved speed, this is something we didn't consider.

PS: To have better information, see my next post