Vision on DSP

Hi,

I am considering buying a Beagleboard Xm for a robotic vision project. What could I do with a MIPI camera (so I don’t have bandwidth issues) with an opitmized vision libray for DSP, ie VLIB?

I would like to process 10-15 fps, mainly using low level vision algorithms. What would be the maximum resolution I can attain ?

Thanks in advance.

Hi,

You will be able to get at most 150 MHz pixel rate with 8 bit, 75 MHz with 12-bit (it is actually 16 bit) - these are maximal ratings according to datasheet. So with mt9p031 it is possible to get the full frame rate - it means 5 megapixels @15 fps. But getting the frames and processing them are quite different stories. The maximal memory bandwidth you can achieve in software processing (carefully using neon, cache alignment and prefetch) is in the range of 500-700 mb/s, with non-optimized access it is going to drop down to 200-300 mb/s. I have no idea what is with DSP, but pretty much sure that it will not be faster. Besides, DSP does not come readily usable. If you are not specifically bound to using Beagleboard XM, I would suggest to use something else - e.g. there exist imx6 boards with serial and parallel camera ports.

Best regards,
Shavkat

Thanks for the answer.

Actually I’ m not bound , but I was impressed by pictures like this and this, and I wanted to check if it is really possible in a real project.

As other options I was looking the i.mx6 as you mentioned and odroid XU (no MIPI here, but has USB3 and seems quite powerfull)

Hi,

You will be able to get at most 150 MHz pixel rate with 8 bit, 75 MHz with 12-bit (it is actually 16 bit) - these are maximal ratings according to datasheet. So with mt9p031 it is possible to get the full frame rate - it means 5 megapixels @15 fps. But getting the frames and processing them are quite different stories. The maximal memory bandwidth you can achieve in software processing (carefully using neon, cache alignment and prefetch) is in the range of 500-700 mb/s, with non-optimized access it is going to drop down to 200-300 mb/s. I have no idea what is with DSP, but pretty much sure that it will not be faster. Besides, DSP does not come readily usable. If you are not specifically bound to using Beagleboard XM, I would suggest to use something else - e.g. there exist imx6 boards with serial and parallel camera ports.

The best solutions for camera processing is OMAP5 [1] because it has RPMSG support in mainline so you can use the DSP for image processing. Supports single or dual MIPI CSI-2 camera.

[1] http://www.svtronics.com/index.php?route=product/product&product_id=33
[2] http://www.ti.com/tool/omap5432-evm

Regards,
John

On a quick glance - picture is really appealing, but I am not quite sure what is actually shown there. In the table right above it performance improvements are given for different image operations - there improvements are modest - about 20-80%.
In the article they compare DSP code to pure unoptimized C code, not to the vectorized neon. Neon might give a similar boost - something like 10-20 times compared to pure C. Neon actually implements a number of DSP-typical operators.
And well, it is just my not very much professional opinion. You can get a dsp running twice faster than omap3 core, but neon on multicore imx might be even faster.

Best regards,
Shavkat

@john3909

If I am not mistaken OMAP5432 has no DSP. Also I think it’s too new processor and maybe risky to bother with.

@Nizamov Shawkat

Actually the way they present the improvement in percentages is confusing at first glance. Instead check the numbers in useconds in previous columns. For example where it says 85.25% dsp time is 6317us and neon 42817 , ie the dsp finishes in the (100-85.25)% of time NEON uses.

As for the article, they present dsp usage with unoptimized c code for dsp and optimized vlib c code for dsp (to my understanding)

At last I also found [this](http://kth.diva- portal.org/smash/get/diva2:402370/FULLTEXT01 )
In page 96 there is a comparison of dsp and neon

What worries me is that neon execution time increases exponentially with data size.

@john3909

If I am not mistaken OMAP5432 has no DSP. Also I think it’s too new processor and maybe risky to bother with.

OMAP5432 has the following DSP TMS320DMC64x+ and the processor has been around for almost two years.