Hello,
I've been doing some deep analysis of dark noise statistics on my cameras, and made some surprising discoveries.
Introduction
It's typical in astrophotography (specifically, taking long exposures for nebulas or stars), to prepare calibration files like this:
flat frames
a picture of something grey, as a calibration for the astronomy program to remove vignetting (vignetting is the darkness at the corners of a raw pic, that you don't usually see in a calibrated program, but it's there, as a kind of shadow from the lens)
bias frames
black pictures at the shortest shutter speed. This is supposed to have no dark current noise, but does show any slight variation in the brightness of each pixel.
dark frames
black pictures to find the level of noise. affected by temperature, exposure time, and ISO.
Why take these pics of grey card and some black ones?
The astronomy program can remove 'hot pixels' and reduce noise in the most optimal way. It really works; you can see the difference in the pics even on a high-end camera, and both the bias and dark frames make a difference. The nebula comes out less clouded and more contrast, and less noisy of course.
The Work I've Done
I've taken black, bias, and white (not flat) frames to check the ranges of noise and levels in raw, at different ISO
My Results
-The bias frames, which are supposed to have the least noise, actually have more noise than a dark frame. The only vague theory I have to account for this is that the camera switches to a faster clock rate for the ADC in order to support the quicker shutter speed, and the ADC gets noisier.
A Note About the black level area first
There are some areas which are covered by metal on the chip, so are always in darkness. These are analysed everytime to find the average value to be considered as 'black'. For example, if the average is 128 at ISO80, then every value in the imaging/active area will have 128 subracted, thus leading to 0, for a black picture. This is needed because the black level changes with each picture (by temperature, iso and exposure).
I found that there are some hot pixels (pixels stuck at always the same value) in the black area, so this ruins the black level calibration by some small amount.
-The noise can become so large, that it swings to less than 0. For example if the (true) average is 128, and the noise varies by +-500, then some pixels become less than zero. This affects the average! You are now trying to read an average with some values clipped, which gives you a value higher than it should be! I can actually see this, with averages coming out 4 higher than they should be, ruining the deepest shadows of your pic.
-In the highest ISOs, the colours have different stats! This is strange, as pixels are supposed to be all the same with only come colour filters over them. My theory for this, is that there is an analog gain amplifier somehow connected to each colour, for the purpose of daylight balance.
-Sometimes the picture is too bright! By a level of about 2. My theory for this is that sometimes the shutter speed is inaccurate. The impact of this, is that creating your calibration frames will be wrong by some amount. The bright frames should be thrown out.
The Work
These are stats for an SX50HS with 1/50s, with the lens covered.
white black bias
iso max min max avg std min max avg std
80 97 185 127.5 1.60 101 181 127.6 1.71
200 4092 74 191 127.3 3.61
400 4091 43 240 127.3 6.53
800 4089 21 261 127.7 11.9 24 263 127.6 13.0
1600 4084 0 338 127.3 23.1
3200 4074 0 648 127.4 43.8 0 643 128.5 47.3
6400 4095 0 1336 126.7 86.9
So what does this table mean? For each ISO, I took 16 pics, then found the highest and lowest pixels values of the active/imaging area in all the pics. I also came up with general averages over all pixels (this actually varies by colour) and the worse standard deviation I found (the higher, the more noise).
What can be learned from this table
-Noise increases linearly with ISO. If you double the ISO, you double the noise. Except not as much as you expect; it's like a higher ISO is more 'efficient'. I can't think of a way this helps yet.
-Starting at ISO1600, black frame statistics can go wrong, due to low values being clipped.
-Bias frames are about 9% noisier
-White pixels don't always saturate the ADC. The least dynamic range is at ISO3200 (this may not really be true overall, I have to think about it more). I would explain this by the steps in gain settings not being accurate?
-I didn't show it in the table, but at lower ISO's there's some white pixels somewhere that are dark, I didn't manage to see it myself yet though. At higher ISO, every single pixel is exactly white. The problem could be I didn't make the light bright enough to account for the vignetting, though I didn't see any vignetting.
The difference by colours
iso colour min max avg std
3200 B 0 430 128.1 32.7
G 0 502 129.6 43.7
G2 0 538 129.8 43.7
R 0 406 130.1 41.6
6400 B 0 768 127.1 85.5
G 0 1336 127.0 86.9
G2 0 1064 129.5 86.9
R 0 736 130.9 86.8
-There is a huge difference in the max values, with green pixels being twice as large as the others.
-Green pixels always have similar noise
-Blue is least noisy, maybe it's boosted less? I would have to look at the daylight coefficients to see if my daylight balance idea is true.