Space available is 10"x12"x .3", camera must be color, processing power requirement is 30ghz and at least 20ghz (estimated with visual basic 6 on windows XP). Video is from a camcorder using USB 2.0 I have .5 sec to capture and need to get 10 frames at least. One of the frames will be used(one with least camera shake) I have .5 sec. to finish processing the image.I didn't even consider RGB.
A few years ago, I looked into buying some REAL-TIME video editing equipment.
They were HUGE. Even though this was for editing, it used 20 raided HD stacks and multiple fiber I/O to handle the datarate.
Are you sure you want to do 30fps? Would 15fps be "good enough" or lower?
How about black and white?
If you have the juice to wanna use 400 micro controllers, you should easily be able to fit a laptop, or small-form factor PC into the design.
If you are doing the video wall, the route you are taking isn't a good one.
No, no led wall just lots of processing done in a short amount of time.I think the simplest way to handle the firewire and initial 30fp video processing would be a small form factor PC motherboard.
But: Have you though how you are going to handle netwrok communications with '400 microcontrollers' and what data rates are involved?
The main unit is effectively sending the entire 30fps video stream (plus framing, addressing & error checking) over *some* interface(s) to the other devices.
Assuming basic 640 x 480 video: 307200 pixels * 3 (RGB) = 921600 Bytes per frame.
921600 * 30 (fps) = 27,648,000 bytes per second.
(Not counting the framing, addressing and other overheads).
You would need 100 MBit ethernet or similar just to distribute the data stream, so whatever you are sending to would need matching interfaces.
(Are you thinking of making a LED video wall??)
Image recognition. Cuda would be the best way to go but I'm not a C programmer and there isn't much on the web about how to program in Cuda.By the sounds of things it's way over your skill set and probably most peoples. Your 30GHz processing requirement is way beyond current tech. Memory bandwidth is also going to be a problem (memory is somewhat slower than CPU GHz). Of course that kind of horsepower will have high current requirements.
What is it for?
Compared to cuda GPU CPU is just the wrong tool for image processing but I think it will be easier to fit 20Ghz in the space of this project than to learn C or C++ then learn to program Cuda. I found some SBCs two of which would almost fit and have a total of over 20 ghz.Memory and the bus bandwidth will always be a bottleneck in today's computers.
You want one with the most cores like the GTX280 (128 cores) Their next generation promises up to 512 cores.
They program is C++ to my knowledge.
http://en.wikipedia.org/wiki/CUDA
Here's a program that uses CUDA cores for video processing.
http://www.badaboomit.com/
The estimate is based on pseudocode of the most time consuming parts of the software and based on previous projects, I didn't write the software until I get a clear idea of what hardware I need. It looks like I might have to lower those spec a little, and make a "just good enough" system. It would be easier, save money and time.Have you written the software / algorithms in VB already? How do you know you'll need 20GHz? How did you arrive at that number?
Image recognition is a very advanced topic.
by Jeff Child
by Jake Hertz
by Jake Hertz
by Jake Hertz