I am interested in developing an idea using CMOS sensors, and I was wondering if I could get some pointers (I don't know much about image sensors)

First, my understanding is that CMOS image sensors can (in theory) access pixels one at a time -- like simplified 2d ram there is a vertical line and horizontal line select -- this is different than CCDs which typically have to read out chunks of pixels at a time. Please correct me if I am wrong.

If I am correct is it possible to get a raw CMOS sensor that let's me read out pixels in what ever order and timing I feel like (so I specifically do not want an easy to use, standardized video format, and I am willing to do the various downstream DSP and error correcting myself.)

At this stage of my project, I don't need a high resolution, low noise setup -- something simple would be fine, I just want complete control over how I read out the pixels. (However, if the system came with simple optics and shutter that would be great)

Does anyone know of such a setup? Are all CMOS sensors available in raw format, or is what I'm asking for very odd?

  • 1
    \$\begingroup\$ I don't think you're going to find such a sensor. They pretty much all read out line by line. But once the data is transferred to a frame buffer (memory, typically SDRAM), you can access the pixels in any order you like. \$\endgroup\$
    – Dave Tweed
    Feb 17, 2013 at 4:53
  • \$\begingroup\$ Do you know if it is commonly possible to read the lines of pixels in random order? (Understood that I could do whatever I want once I get to DRAM, but I am specifically am trying to minimize power and avoid needlessly shipping the entire frame to DRAM) \$\endgroup\$
    – lilinjn
    Feb 17, 2013 at 18:12
  • \$\begingroup\$ Some sensors have a "decimation" mode where pixels are skipped, but you still have to read it out line by line. \$\endgroup\$
    – mng
    Feb 17, 2013 at 22:05
  • \$\begingroup\$ in these "decimation" modes, the the pixels decimated horizontally or are lines skipped? presumably there is not much control over the decimation pattern? \$\endgroup\$
    – lilinjn
    Feb 18, 2013 at 14:08
  • 1
    \$\begingroup\$ The Stonyman CMOS sensor does exactly what it is you're looking for. However, it's designed for small, embedded applications, is grayscale, and may not have the resolution you're looking for. Link: centeye.com/products/current-vision-chips-2 \$\endgroup\$
    – Shamtam
    May 19, 2013 at 17:40

3 Answers 3


You might want to read about the Kepler spacecraft's CCD readout system. Monitoring thousands of stars at a time continuously, with 42 CCD chips, is just too much data. It doesn't take conventional 2D images but reads out only the CCD cells in areas of interest. Sounds sort of like what you're asking about.

Basic info http://kepler.nasa.gov/Mission/QuickGuide/MissionDesign/PhotometerAndSpacecraft/

More detailed technical info http://iopscience.iop.org/2041-8205/713/2/L87/fulltext/apjl_713_2_87.text.html

Plenty more is available online, in particular from NASA Ames and the SETI Institute.

  • 1
    \$\begingroup\$ Yes -- this is very much along the lines of what I am thinking about, except that I am looking for a poor man's, low power version that instead of using CCD arrays, treats the pixels themselves as the "array." Actually the closest thing in concept to what I would like is described in this paper: trs-new.jpl.nasa.gov/dspace/bitstream/2014/8698/1/02-1264.pdf \$\endgroup\$
    – lilinjn
    Feb 18, 2013 at 14:13

CMOS image sensors behave a lot like DRAM; a column select is activated, which reads out all the rows at once to a set of sense amplifiers. Note that the sensed data will leak away over time (like DRAM), so you need to read it out promptly.

Generally the data that comes off from a sensor will have been converted to digital and put in scanline order, and had some brightness/contrast setting imposed by the ADC process. Can you say what it is about your application for which this isn't suitable?

  • \$\begingroup\$ my motivations are 1) minimizing power consumption (I don't always need full resolution for the entire frame, rather I would like to jump around from high resolution ROI to ROI 2) raster line order does't make sense for every processing task; for instance for some things it is easier if you start in the middle of the picture and spiral outwards. Do you know if it is commonly possible to read the lines of pixels in random order? \$\endgroup\$
    – lilinjn
    Feb 17, 2013 at 18:08
  • \$\begingroup\$ Spiralling out adds a lot of overhead in a square sensor addressed by row/column. \$\endgroup\$
    – John U
    Mar 20, 2013 at 15:00

I am no expert on image sensors, but from my basic understanding, pixels are read out line by line and in sequential order. A VSYNC pulse shall initiate a frame transfer, while HREF pulses initiate a pixel line transfer, which will begin a transfer of pixel data from the first pixel in a row to the last pixel in a row. Please see this webpage for more details.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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