View Full Version : Digital Image Noise
Robert_Lay
23rd of October 2005 (Sun), 14:10
We often see mention of the "noise" present in digital images. The "noise" in a digital image is the digital equivalent of "grain". I don't believe digital noise is due to the sampling rate. That would be "quantization" noise, which should not be a factor in the final image. As I understand it, the digital noise in an image file is more like "random shot noise", and is analogous to "static" in a radio receiver. The terms "thermal noise" or "dark current" are usually mentioned as the source of digital image noise.
POTN contributers have frequently referred to programs that are specific to the task of reducing the digital noise. My interest and concern here is more in the area of measuring the noise present in a given camera and in acquiring an understanding of how to interpret the noise data and characterizing it in some standard way.
So far, I have been unsuccesful in finding a standardized test for digital image noise or a standardized format for characterizing the noise performance of a camera. I have often seen mention of keeping the lens cap on while taking a shot. From the resulting image, one can assume that everything in that image will be noise.
I have done that at several different shutter speeds and ISO settings, thinking that the noise found in the image would be to some extent proportional to the exposure time and ISO setting. (The aperture would be irrelevant, since we have no light entering the lens.)
Having collected the resulting images and examined their histograms, it is not obvious to me how we can quantify the results.
Does anyone have any suggestions?
BottomBracket
23rd of October 2005 (Sun), 14:44
How about zooming in very closely and making a grid count?'
Robert_Lay
23rd of October 2005 (Sun), 19:52
Might work! Hadn't thought of that. Arbitrarily use exact center of the image and arbitrarily use a 5 pixel by 5 pixel area and do an average value for those 25 pixels.
At least it would be something that could be done without too much difficulty and values from such a measurement could then be compared with other data harvested in exactly the same way.
I'll try that - might even be able to develop an action to automate it.
BottomBracket
24th of October 2005 (Mon), 15:08
Or you can take random 5 x 5 pixel grids, and count the noise within them. The more grids you sample, within reason, the more accurate the result should be.
Robert_Lay
24th of October 2005 (Mon), 18:02
Update -
I am currently re-writing a Visual Basic 6.0 program that produces a brightness histogram for any 8bit/channel JPG or GIF image. I plan to modify the code such that it does something like a signal to noise ratio. I won't really know what I'm going to do until I fully understand the routine that I'm starting with and give some more thought to the whole problem.
Stay tuned!
maderito
24th of October 2005 (Mon), 18:26
Bob,
The principals are straightforward; the execution and implementation are anything but.
See: http://www.tezaur.net/photo/other/raw/
Robert_Lay
24th of October 2005 (Mon), 22:56
I now have an algorithm for computing a Digital Noise Figure.
I'm calling it the Digital Noise Figure (DNF), and it is computed using the following formula:
SumA / Total Pixels having a value > 0
where SumA is the sum of the individual counts found in each of the 255 bins of the histogram, bins 1 through 255, multiplied by the bin number. (Intentionally omitting the zero bin).
Clearly, this algorithm computes a DNF value that is related to both the brightness weighting factor of each histogram cell and the count in each such cell.
Based on that method of characterizing the digital noise, my G5 camera gave Digital Noise Figures as a function of exposure duration and ISO setting, as follows:
ISO___Duration__DNF
--------------------------
400___4.0"______5.89
400___2.0"______5.94
400___1.0"______3.83
400___0.5"______3.67
400___0.25"_____3.53
400___0.125"____3.52
200___2.0"______2.11
100___2.0"______1.27
50____2.0"______1.25
Since this is my own, personal method, it has no value for comparison with anyone else's cameras until there is a common computer program available to do the computations. The program is now working and will be made freely available to the general public, if it finds general acceptance.
superkully
25th of October 2005 (Tue), 04:19
That's rather interesting - especially the DNF diff. between the bottom three readings - I'd have expected the step up from ISO50 to ISO100 to have been much greater when comparing it with the step up between ISO100 and ISO200...
Robert_Lay
25th of October 2005 (Tue), 10:30
Dear superkully,
At first glance, I would have agreed with your observation. Then, I thought about the fact that we are talking about only 1.25. That is an average brightness of just a fraction more than one level out of 256 possible levels of brightness. In other words, in the discrete world of brightness levels there aren't many places to hide in the range between 0 and 2.
Robert_Lay
25th of October 2005 (Tue), 12:46
Click on the link to download a zipped up Visual Basic program called NoiseLevel. (Approx. 1.3 MB)
http://zaffora.f2o.org/W9DMK/Programs/NoiseLevel.zip
Please let me know what works or doesn't work regarding the downloads or installation of the software.
I've found that it works best to first go to
http://zaffora.f2o.org/W9DMK/Programs
and then from the list of software downloads, right click on NoiseLevel.zip and select "Save Target as.."
I have just uploaded Version 2.0 of the software, which now displays the resulting Digital Noise Level in deciBels (dB) relative to an average scene (18% gray card). A Noise Level of -40 dB, for example, means that the average noise level is approximately 1/100th (1%) of the average signal level in an average scene.
dbump
25th of October 2005 (Tue), 14:28
Bob,
Neat work!
Have you thought about eliminating hot/stuck pixels from your calculations? Not sure if they'll be statistically significant, but it's a thought. Like noise, they are more pronounced with longer exposures, and higher heat, but, obviously, they'll always be in the same position.
tiziano
25th of October 2005 (Tue), 14:35
Interesting work, Bob.
Did you find any logic in the counting of the noise, or any correlation between noise and shutter speed?
Robert_Lay
25th of October 2005 (Tue), 15:35
Bob,
Neat work!
Have you thought about eliminating hot/stuck pixels from your calculations? Not sure if they'll be statistically significant, but it's a thought. Like noise, they are more pronounced with longer exposures, and higher heat, but, obviously, they'll always be in the same position.
I have assumed that hot/stuck pixels are rare (except on this pathetic ViewSonic LCD of mine), so I assumed that a hot pixel would just be "lost in the noise", so to speak.
Robert_Lay
25th of October 2005 (Tue), 15:44
Interesting work, Bob.
Did you find any logic in the counting of the noise, or any correlation between noise and shutter speed?
Most certainly!
If you look at the numerical results from my own G5 that are posted above, you can see that the noise goes up as the amount of time the shutter is open goes up, but it's erratic.
The corellation between average noise and ISO speed is very good. In other words, the data is coming out more or less as I expected it would, so far.
The mystery right now is that there is also a corellation between average noise and size of the virtual image. However, I am still working on parametric studies of that, so I don't have any results to publish on that as yet.
I'm hoping that people will start taking pictures of the inside of their lens cap and using my program to measure the noise, so that we start getting some results on other cameras. I would especially like to see some comparisons, for example, between G series and the DSLR's, because the DSLR's with larger sensors are supposed to have much less noise.
Robert_Lay
25th of October 2005 (Tue), 19:30
Noise Level Measurements as a function of Virtual Image Size.
All at ISO = 400 and an exposure duration of 1 second.
ImageSize____NoiseLevel
-----------------------
2592x1944____2.85
1600x1200____2.7
1024x768_____2.16
640x480______2.27
Note that these data were taken in JPG mode - not RAW (there is no way to set up a different picture size and also be in RAW mode on the G5), whereas all data previously reported was taken in RAW format and subsequently converted to JPG.
I interpret this data as indicating that although there does seem to be a slight corellation between virtual image size and noise level, it is a weak
corellation.
I also note a significant difference in the noise level when shooting in JPG mode and when shooting in RAW mode. The noise level is significantly lower shooting in JPG format mode, and I attribute this to additional noise reduction provided by the Canon processing provided in JPG format mode as compared to a nominal level of noise reduction applied in the default settings of Adobe Camera RAW.
maderito
26th of October 2005 (Wed), 04:21
Bob,
If I understand your method, you are reading "dark noise" from the image sensor - noise resulting from sources other than signal (light). As you mention, noise in a phtographic image is dominated by shot noise which is related to signal intensity. Dark noise represents the foor above which signal + shot noise must rise in order to give useable image data.
I believe your formula computes the mean of the recorded signal (dark noise in your setup) - and perhaps should be described as such.
Shot noise is related to signal (light) intensity, and is quantified as the dispersion (e.g. std. dev.) about the mean signal intensity.
Dark noise is related to other factors, including photodiode circuitry, temperature and length of exposure.
superkully
26th of October 2005 (Wed), 06:19
I have assumed that hot/stuck pixels are rare (except on this pathetic ViewSonic LCD of mine), so I assumed that a hot pixel would just be "lost in the noise", so to speak.
Indeed, the 'hot pixels' would remain a constant throughout the samples.
Robert_Lay
26th of October 2005 (Wed), 09:16
Bob,
If I understand your method, you are reading "dark noise" from the image sensor - noise resulting from sources other than signal (light). As you mention, noise in a phtographic image is dominated by shot noise which is related to signal intensity. Dark noise represents the foor above which signal + shot noise must rise in order to give useable image data.
I believe your formula computes the mean of the recorded signal (dark noise in your setup) - and perhaps should be described as such.
Shot noise is related to signal (light) intensity, and is quantified as the dispersion (e.g. std. dev.) about the mean signal intensity.
Dark noise is related to other factors, including photodiode circuitry, temperature and length of exposure.
Dear Woody,
So far as I understand it, that is exactly what I am trying to characterize - the dark noise. The images that I start with as candidates are taken in a darkened room with the lens cap on.
Actually, I am re-considering my algorithm at the moment. If I make the change that I am considering, the result would result in a much greater spread in values as ISO and shutter duration change. You will note that my equation divides by the total number of pixels in the image that have a non-zero value. Instead, I think I should be dividing by the total number of pixels in the image. Using that formula results in much lower values for Digital Noise Figure when the ISO and shutter duration are low in value.
Robert_Lay
26th of October 2005 (Wed), 10:25
I have just uploaded Version 2.0 of the software, which now displays the resulting Digital Noise Level in deciBels (dB) relative to an average scene (18% gray card).
A Noise Level of -40 dB, for example, means that the average noise level is approximately 1/100th (1%) of the average signal level in an average scene.
To download your copy of the Noise Level program (approx. 1.4 MB), go to
http://zaffora.f2o.org/W9DMK/Programs
and then from the list of software downloads, right click on NoiseLevel.zip and select "Save Target as.."
After unzipping run the setup program to install the program.
vBulletin® v3.6.12, Copyright ©2000-2009, Jelsoft Enterprises Ltd.