alanrockwood
Member
- Joined
- Oct 11, 2006
- Messages
- 2,185
- Format
- Multi Format
Finally, I come to a discussion of these scans by Adrian. They are scans of a black slide, so in a perfect world the output would be all zeros.It's generally not a great idea to do dynamic range or noise analysis on image data that has been conformed to a color space as you have to contend with the gamma encoding and the raw to colorspace transform and what effect that has on the resulting image samples.
So...
http://m.avcdn.com/sfl/epson_v850_raw_black_frames.zip
This contains two files: raw0001.tif and raw0002.tif. Both are a ~36x24mm black frame at 6400 dpi from the center of a completely blocked off capture area (except the scanner calibration area). Vuescan was used to capture and output the raw data with all the controls that vuescan can control (analog gain, etc) zeroed out and locked so they are exactly the same between scans with the only difference being raw0001.tif was captured in 16 bit mode and raw0002.tif was captured in 8 bit mode immediately after raw0001.tif.
Anybody can download these raw files and do whatever analysis they want on them.
I've done a very basic and preliminary look using some tooling that I use for my own internal software. The 8 bit samples were scaled up to 16 bit samples to make the comparison a little easier (using sample/255, then result * 65535, all in float to preserve precision).
The per color channel numbers:
raw0001.tif (captured in 16 bits, saved in 16 bits)
resolution: 9064x6046 px
bits per sample: 16 bits
analyze window_size: +-1024, x1: 3508, x2: 5556, y1: 1999, y2: 4047
max_r:1817, max_g:1911, max_b:1714
min_r:0, min_g:0, min_b:0
avg_r:334, avg_g:350, avg_b:313
raw0002.tif (captured in 8 bits, saved to 8 bits, scaled to 16 bits for analysis)
resolution: 9064x6046 px
bits per sample: 16 bits
analyze window_size: +-1024, x1: 3508, x2: 5556, y1: 1999, y2: 4047
max_r:59904, max_g:53248, max_b:32639
min_r:0, min_g:0, min_b:0
avg_r:1699, avg_g:1666, avg_b:1644
Just for edification, the same values, but scaled to 8 bits
raw0001.tif
resolution: 9064x6046 px
bits per sample: 16 bits (scaled to 8 bits)
analyze window_size: +-1024, x1: 3508, x2: 5556, y1: 1999, y2: 4047
max_r:7, max_g:7, max_b:6
min_r:0, min_g:0, min_b:0
avg_r:1, avg_g:1, avg_b:1
raw0002.tif
resolution: 9064x6046 px
bits per sample: 16 bits (scaled to 8 bits)
analyze window_size: +-1024, x1: 3508, x2: 5556, y1: 1999, y2: 4047
max_r:233, max_g:207, max_b:127
min_r:0, min_g:0, min_b:0
avg_r:6, avg_g:6, avg_b:6
Make of it what you will, though, again, I think it's pretty obvious that 16 bit capture has a significantly lower noise floor and therefore more dynamic range than 8 bit capture. Whether that makes it through the raw to colorspace operations and gamma encoding, is harder to tell as the analysis @alanrockwood has done so far, though sound from an analysis perspective, is being done on data that's already been conformed to a color space. Also whether that lower noise floor matters, depends on what you're capturing, so 8 bit capture very well may be adequate for lower contrast materials.
Either way, the raw files are available for anybody to do their own analysis and draw their own conclusions.
As Adrian noted, the 8 bit scan is noisier than the 16 bit scan. I am uploading the images and histograms to show this. For these histograms I zoomed in on the horizontal scale to 10% for each of the two scans. The horizontal scales are comparable for the two scans because they are both shown in a percent of full scale. (In this case full scale displayed here is 10% of full scale of the original scans.) The first image is the 16 bit histogram, and the second image is the 8 bit histogram.
Just eyeballing the histograms I estimate the noise in the 8 bit result to be about 2.5 times that of the 16 bit result. That is a big difference, but nowhere near the 257 fold difference one would naively expect based on the difference in bit depth alone. (As an aside, yes, 257 is the correct scaling difference between an 8 bit word and a 16 bit word, not 256 or 255.)
I have previously shown from fundamental considerations that if there is much noise showing up in an 8 bit scan then a 16 bit result has to have almost as much noise relative to full scale. At most the 16 bit histogram will show only a little less noise, not the two or three fold difference that we are seeing here.
Also, looking at this from the other direction, based on the width of the distribution in 16 bit mode (from which I estimate that the sigma of the 16 bit result on an 8 bit scale would be about one half bit), there should be a little noise showing up after conversion to 8 bits. There should be peaks at a few but only a few ADC step increments. Therefore, these results are hard for me to explain. There is an explanation for the difference. I just don't know what it is, but it can't be due to the difference in bit depth alone.
Also, it is worth pointing out that even just looking at the 16 bit histogram we can see that there is a lot of noise in a dark image acquired from the scanner, orders of magnitude more than the ADC step size at 16 bits. This implies that 16 bits has far far more bits than required to acquire the full dynamic range available, given the noise level inherent in the instrument. There is nothing wrong with this, but it does show that the scanner is relatively noisy.
I will shortly be posting some of my own dark scans. I already posted some, but I have repeated them with various parameters. As a teaser, I'm not seeing a lot of difference in noise my scans between 8 bit and 16 bit mode. I don't have a good explanation of why my results are different from Adrian's.
Last edited: