TI Microcontroller

Thread Starter

user2323

Joined Jul 26, 2009
11
Is there any microcontrollers that run 500mhz or up, I saw some TI ones that run at 300mhz what languages can those be programmed with and are they more difficult to program than PICmicro?
 

Thread Starter

user2323

Joined Jul 26, 2009
11
I want to send digital video from my camcorder (usb or firewire) whichever is going to be easier to a network of 400 microcontrollers for processing I need each MCU to recieve a small portion of the video (for eg. 30X30 pixels) how would I go about doing this, also I need an MCU running at 100Mhz or higher. I know thats too slow to recieve vga at 30fps so I would need a way to slow down the stream or if anyone knows of a MCU than can handle 30fps.

Any input on this would be very appreciated.
 

retched

Joined Dec 5, 2009
5,207
If you are only worried about a 30px x 30px portion of the video frame, just about any 'modern' uC could handle that. I am confused why you would want 400 uCs.
I think it would be better to use 10 uCs that do 40 segments each. Recombining the signal would be much easier using less uCs, due to timing issues and such.

Give me an idea of what the end result is to be, and I will help you solve this problem.

If you are splitting a 640x480 signal into 30px x 30px chunks, 30 times a second, timing will be crucial.

If the result is a re-structured 640x480 post-processed 30fps video, a final DSP uC, to handle the output could also be of assistance.
 

rjenkins

Joined Nov 6, 2005
1,013
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??)
 

retched

Joined Dec 5, 2009
5,207
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.
 

Thread Starter

user2323

Joined Jul 26, 2009
11
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.
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.
If I go with laptops I was looking at sony z series(smallest mobo with core i5 2.5ghz that I know of) I would need at least 4 of these. Not enough room for these(each of these have a motherboard about 4x6x.5" a 2.5" SSD and ofcource battery even if I use one batter for two laptop) and a little over my budget. This is why I was considering uCs or a mix of one laptop and uCs. To to make things worse If I go with uC I can only program in BASIC and VB6 if its a laptop. And my budget is $6000.

Thanks for the reply.
 
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?
 
Last edited:

Thread Starter

user2323

Joined Jul 26, 2009
11
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??)
No, no led wall just lots of processing done in a short amount of time.
 

Thread Starter

user2323

Joined Jul 26, 2009
11
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?
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.
Would the NVIDIA® GeForce® GT 330M GPU meet the requirements http://www.nvidia.com/object/product_geforce_gt_330m_us.html
and do you know how to program cuda?
would memory still be a problem on parallel computing like a network of uCs?
 
Last edited:

Thread Starter

user2323

Joined Jul 26, 2009
11
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/
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.
 
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.
 

Thread Starter

user2323

Joined Jul 26, 2009
11
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.
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.
 

rjenkins

Joined Nov 6, 2005
1,013
Using Basic or Visual Basic in something that is time / speed critical is just wrong..

Basic is generally an interpreted lanuage. Many of the 'compilers' only translate to a more compact intermediate code format and then the runtime system interprets that.

For image processing you need to be working in assembler or C.

These are about the most compact PCs you are likely to find:
http://www.logicsupply.com/categories/mainboards/pico_itx?gclid=CKCPpYyBqaECFVMB4wodllG4EQ

(The one you link to above does not have the CPU heatsinks fitted - look up the size of heatsinks for the CPUs you would be using..)
 
I would suggest you get fully working code albeit non realtime running on whatever computer you currently have before throwing $6k at hardware that may or may not work.
Eg:
An existing MPEG or whatever format short duration video, run your codec, program, whatever on it and get the desired output. Figure out what sort of processing power you need.

Check out a program called Handbrake, this program will use up multiple core CPUs to convert video to X.264 and can be faster than realtime. Take a look at the source code to get an idea what you're getting into.

Note: powerful computers chew through electricity and make buckets of heat, your case and power requirements may not be realistic.
 
Top