For what kind of applications can i use dsp core of beagleboard? Can i use the DSP acceleration for background subtraction algorithm in OpenCV?
You can use the DSP for all kinds of computations. It is a general purpose CPU optimized for DSP applications. So yes, even floating point stuff will work albeit the performance will not be great.
The DSP really shines if you do integer computations over large arrays of data. Here the DSP can easily compute so fast that the time to transfer data from and to memory becomes the bottleneck.
To give you a figure what is possible: I have an algorithm running that post-processes data from a camera (doing the bayer deinterleaving). I have 8 bit input images and 24 bit output images. The performance I archive on the beagleboard DSP running at ~ 350Mhz is 144 million pixels per second. That equals to roughly half a gigabyte of processed data per second.
Getting the DSP up and running and compiling a hello world program is not simple though. You have to integrate a DSP kernel driver (I use DSPLINK). You have to learn how to use the (huge) DSP/ARM interop libraries, how to use the toolchain just for a simple hello world. Plan two weeks at least.
Once this works the real work starts by learning how to write fast code for the DSP, how to manage the internal memorys, DMA, interrupts and all such stuff.
In the end it is well worth it because you unlock an incredible fast DSP that can easily outperform the Cortex-A8 if assigned the right job. On top of that you get access to the image co-processors which lets you off-load computations even further. And then there is a complete ARM9 CPU tightly coupled to the DSP that sits there idle and waits to be used as well.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With