Defective Pixels in Canon A570 IS

November 25, 2007 6:12 pm UTC | In Tech

We know almost every pixel array (CCD sensor in camera, LCD screen, etc) has defective pixels. For camera CCD sensor, a few defective pixels can ruin good pictures, but we usually don’t see those pixels in the JPEG picture. Here’s a short story about those defective pixels.

I installed CHDK on my Canon A570 IS camera and shot a few test pictures to find out defective pixels of my camera. To my surprise, this 7.1 mega-pixel CCD sensor has couple thousands defective pixels. The following picture represents the raw output from CCD sensor when I shot a 15 sec picture with ridiculously bright light source: (The green border is just showing image boundary, not from the actual picture.)


The raw file is 3152 columns by 2340 rows, 10 bits per pixel, so the file size is 3152 x 2340 x 10 bits = 9219600 bytes. The first few columns and rows are used for background subtraction (masked pixels, their values are usually around 30-40 on this 210 = 1024 scale), so the active area is actually 3072 x 2304 pixels. The above picture is RAW CCD output down scaled to 0-255 and converted to 8-bit gray PNG (i.e., before demosaicing/gamma correction/any other process taken place). As you can see, there’re a lot (9205) of 0-valued defective pixels in the active area. There is no defective pixel in the masked area.

When I shot with faster shutter speed, I have less (2991) defective pixels. The following was shot with 1/250 sec shutter speed, showing CCD value 0 as black (defective pixels), 1-40 as gray (masked pixels), and 40-267 as white. No pixel has value more than 267.


I shot a lot of RAW pictures and found the number of defective pixels is either 9205 or 2991. Generally speaking, the slower the shutter speed, the more chance I get 9205 defective pixels. But I did have 2991 defective pixels with 1/30 sec picture, and 9205 defective pixels with 1/250 sec picture, with all other settings the same. So I have no idea what determines the defective pixel pattern. Also what’s interesting is those 2991 defective pixels are subset of the 9205 defective pixels.

If I go ahead and demosaic, combining RGB channels together, This is part of the image I get: (You can see defective pixels in different color channels.)


Instead, most RAW format processors find those 0-valued (sub)pixels and interpolate over with neighbor pixels. By doing that, here’s what I get: (white balance etc. was tuned a little bit as well)


Nicely white, no annoying dots any more, right? This “cheating” process is done inside the camera when saving JPEG file, and also done in most RAW format conversion. DNG specification states that:

Defective pixels should be mapped out (interpolated over) before the raw data is stored as DNG.

Enjoy your camera with 0.1% defective pixels!

Tags: , , , , , , ,


  1. 继续拜

    Comment by kisstar — November 25, 2007 9:28 pm UTC #

  2. What CHDK firmware are you using?

    I have a A570 IS with 1.01A firmware, and nothing seems to work :(

    Comment by A570 IS — December 4, 2007 8:23 am UTC #

  3. I have 1.01a. CHDK was ported to 1.01a few weeks before. Check CHDK website.

    Comment by atppp — December 4, 2007 9:56 am UTC #

  4. Using this one:,44.0.html

    Last post there is mine too… you seem to have it working thought :(

    Comment by A570 IS — December 4, 2007 10:13 am UTC #

  5. Apparently Mac OS X created several hidden files that prevent this from working…

    Comment by A570 IS — December 4, 2007 10:32 am UTC #

  6. Well, I can try that build later. But you can also try the first ported version here:

    This is the one I am using currently..

    Comment by atppp — December 4, 2007 10:33 am UTC #

  7. Oh you are using MacOS? That’s interesting. I am sure people would appreciate your feedback if you can figure out what’s going on..

    Comment by atppp — December 4, 2007 10:34 am UTC #

  8. Yeah I had to use the shell to delete about 7 hidden files…

    Now it works…

    Thanks anyway

    Comment by A570 IS — December 4, 2007 11:38 am UTC #

Sorry, the comment form is closed at this time.

This weblog is licensed under a Creative Commons License.
Powered by WordPress. Theme based on Pool by Borja Fernandez.