I'm making a camera system with CMOS image sensor and micro controller. But I don't know yet how fast cpu clock I need. Assuming that I use 5MP cmos image sensor and take just still image with 1fps, 2592x1944 and RGB format(8bit for each color), how fast cpu would I need?

Thank you

  • 1
    \$\begingroup\$ I think you're doing your design backwards. First, find a suitable sensor, then look at its datasheet and see what its requirements are. \$\endgroup\$ – Nick Johnson May 21 '15 at 13:38
  • 1
    \$\begingroup\$ What exactly will the CPU be doing? Image capture? Image processing? Communications? Will image processing be performed on an entire captured image or on streamed video on a pixel-by-pixel basis? How complex would the image processing be? If you haven't figured it out, your question is impossible to answer in it's current form. \$\endgroup\$ – Tut May 21 '15 at 13:43

There is no easy simple answer to this question. The first thing to say is clock frequency is not really that important. For years people believe that the higher clock frequency the faster the processor is, and this is not true. What you can say is that if you have a particular processor chip and you clock it at a frequency, and then you increase that frequency, then that processor chip will perform faster, the program code on it will run faster. But trying to make comparisons of performance based on clock frequency of different processors is not possible.

The reason is to do with the architecture of the processor. It's to do with the number of clock cycles to execute the instrutions and that varies from processor to processor.

There's a couple of different ways to approach the answer: try to find out what processors other people are using for a similar application, or try to do some calculations on what level of performance of processor you need, that is, how many million instructions per second do you need?

The other key thing you have to think about is the data rate speed between the processor and camera, if you select a processor whose data bus speed is too low then you can't read the data quickly enough out from the camera.

5 MegaPixels, one byte per pixel equals 5 Megabytes per frame. If you want full motion video, then you'll need 24 or more frames per second, call it 25, which means you want a processor that can perform better than 125 Megabytes per second bus speed.

In terms of estimating processor processing performance you need, you'd have to think about writing code, sketch out a program, data read operations from the camera, and then what your application is going to do to that data.

It's going to be an estimate. If you're doing video at 25 frames per second, then you can multiply your answer by 25 to give you the total number instructions per second you will need. But you need to be very conservative when doing this kind of analysis, best to assume your answer is too low and go for a processor that can deliver a significantly greater level of performance than your calculation shows.

What this analysis will do is give you an indication of processor performance, and enable you to rule out microcontrollers which are just too slow to get anywhere near the level of performance you need.

  • \$\begingroup\$ 5MB/frame * 25 frames/s != 25MB/s \$\endgroup\$ – Tom Carpenter May 21 '15 at 14:16

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.