1
\$\begingroup\$

My imaging system currently produces a stream of digitized video data at 10Msps. That is, parallel 12bit ADC output at 10MHz. The next step is to collect the data in 1024*1024 chunks and perform image processing on it. With pauses, the frame rate is about 0.25s. Thus, the data for the new image is ready every 0.25s. The image processing might involve many complicated operations (not known yet).

Where do I start? What embedded systems would be most suitable for my application? I found several similar question like this one, which suggested embedded systems such as DSP uCs, FPGAs, other mini computers based on Windows (if I understood it right). However, I wish to hear more speculation on device selection.

I doubt I could keep up with the frame rate and perform real time image processing, but it would be great to find a solution that will have a reasonable performance speed (close to my frame rate) as well as good price, ease of implementation, the size, etc.

\$\endgroup\$
  • \$\begingroup\$ The RaspberryPi is essentially a mini-computer that operates at about 700MHz. It also runs a Linux kernel and even has support for a desktop environment and monitors. You could use something like OpenCV or Matlab for the image processing. \$\endgroup\$ – sherrellbc Jul 10 '14 at 14:50
  • \$\begingroup\$ @Tut The data can be read in parallel from 12bit ADC. \$\endgroup\$ – Nazar Jul 10 '14 at 14:55
  • \$\begingroup\$ @sherrellbc I wish to build something of my own, but this is a good option if I fail to do it myself. \$\endgroup\$ – Nazar Jul 10 '14 at 15:01
  • 1
    \$\begingroup\$ TI's DaVinvi DM36x SoCs have in-built DSP/Image processing and SDK's are available... but our support experience has been dire. \$\endgroup\$ – John U Jul 10 '14 at 16:25
  • 1
    \$\begingroup\$ Whatever hardware you choose, don't neglect your storage and output requirements: minimum 1.5MB of RAM for the frame buffer, and minimum 48Mbps of output. \$\endgroup\$ – markt Jul 10 '14 at 22:33
2
\$\begingroup\$

If you have a bit of budget, the Xilinx Spartan 6 FPGA is quite well suited to video processing. You can even buy a complete kit for about $5K. The link has some reference designs which you can compare to what you are trying to accomplish.

Since you don't know exactly what amount of processing is required, it might be better to err on the side of more capability than you think you'll need, so you don't run out of room on a given approach. You can always downsize to a smaller FPGA.

\$\endgroup\$
  • 1
    \$\begingroup\$ Found an interesting thesis IMPLEMENTATION OF IMAGE PROCESSING ALGORITHMS ON FPGA HARDWARE \$\endgroup\$ – Nazar Jul 10 '14 at 16:22
  • \$\begingroup\$ We found the MATLAB ->FPGA (iterate) design flow used in that thesis to be productive in some very complex signal processing situations. I think the required MATLAB add on cost a lot of money though (not so much compared to salaries, of course). \$\endgroup\$ – Spehro Pefhany Jul 10 '14 at 16:29
  • \$\begingroup\$ I have gone through "what is CPLD" to "Basic CCD driver using CPLD" process in about a month. Since CPLDs and FPGAs are similar and I've done some image processing in MatLAB before, how long, do you think, will it take me to program single FPGA with say simple binary operation function? I suspect the FPGA approach is the best in terms of performance, however, I do not know if it is the best choice for an unexperienced developer, such as me. \$\endgroup\$ – Nazar Jul 10 '14 at 16:45
  • \$\begingroup\$ Wow, that's a real difficult thing to guess. I had a hardware-allergic PhD theoretician go from solidified concept to working prototype in a 2-3 months. \$\endgroup\$ – Spehro Pefhany Jul 10 '14 at 16:47
  • 1
    \$\begingroup\$ CPLDs are considerably more limited than FPGAs, so I am a bit doubtful, but here is a guy who did it, with a similar designflow. waset.org/publications/2656/… \$\endgroup\$ – Spehro Pefhany Jul 10 '14 at 17:00
2
\$\begingroup\$

High-end Analog Devices Blackfin DSP chips such as the ADSP-BF561 and some of the ADSP-BF60x, with 2000+ MMACS (millions of multiply-accumulates per second), are well-suited for video and image processing. Evaluation kits are readily available, although the software tools are not cheap.

\$\endgroup\$
  • \$\begingroup\$ The Blackfin parts are monsters, definitely not for the faint of heart. \$\endgroup\$ – Matt Young Jul 10 '14 at 15:57
  • \$\begingroup\$ I agree with Matt Young. Not only are they large, difficult to design around, but their architecture is entirely proprietary and difficult to learn and use. \$\endgroup\$ – Funkyguy Jul 10 '14 at 16:14
  • \$\begingroup\$ @ShannonStrutz: Can you name a DSP architecture that isn't proprietary? They are all quirky and difficult to learn and use. But they're arguably less difficult than FPGA design. \$\endgroup\$ – Dave Tweed Jul 10 '14 at 16:59
  • \$\begingroup\$ @DaveTweed I believe TI has some DSPs that are paired with ARM controllers. I haven't looked into them but I would be shocked if they didn't have ARM code that had handles to more intuitively run the DSP side. \$\endgroup\$ – Funkyguy Jul 10 '14 at 17:15
2
\$\begingroup\$

I'm surprised nobody has mentioned the Freescale ARM chips. Freescales i.MX6 (and maybe 5) line can do 720p and 1080p resolution and and for sure fast enough to keep up.

Freescale provides Linux BSP, Android, an Windows CE for some. There are development boards for these all across the internet. I'm not sure how well suited they are for bare-metal applications but they are great if you have no problem with using an OS.

\$\endgroup\$
2
\$\begingroup\$

There are also custom ICs out there for the video market that are designed to take in camera sensor, digital, or analog video directly and provide you a with an arm processor plus a method do add your own video processing.

Parts like this http://www.stretchinc.com/products/s7000.php Are used a lot in the security market especially if you are doing advanced motion/object detection. They have an ARM core, image processing front end and a very cool on die FPGA and tool set to accelerate c functions for image processing.

Or you could go the DSP route with someone like http://www.ambarella.com/uploads/docs/S2%20Product%20Brief%20121013.pdf

These guys are used in the gopro and I think also dropcams.

You didn't mention if this was a real product or just a side project. You probably won't have access to these parts if it's just a side project.

\$\endgroup\$
  • \$\begingroup\$ Oh, that's interesting. But these custom ICs would probably be much more expensive... Need to look it up. \$\endgroup\$ – Nazar Jul 10 '14 at 18:32
  • \$\begingroup\$ depends on your volume :) \$\endgroup\$ – Some Hardware Guy Jul 10 '14 at 21:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.