Read Noise from DXOmark "Full SNR" data

Started Oct 25, 2013 | Discussions
DSPographer Senior Member • Posts: 2,483
Read Noise from DXOmark "Full SNR" data
5

The sensorgen.info site gives read noise data that it derives from a fit to the DXOmark "Full SNR" plot data, but its values are not exactly correct, and sometimes they are significantly different than the correct values. Since I have fit the DXO data and found that their plots exactly match a fit for a model which parameterizes the plot using read noise, saturation capacity, and pixel response non-uniformity I will show here how to correctly perform that fit.

First, to get the data, click the measurements tab on a full review for a camera in their camera sensor database. Next click the "Full SNR" tab and select the linear pushbutton. Now select "view the page source" in your browser. Search for "snrdetail" and you will find a match like the following:

snrdetail.php?appareil=904

Now in Firefox or Chrome, open a tab and enter the web address for the data as follows:

view-source:http://www.dxomark.com/dakdata/graph/snrdetail.php?appareil=904

Except replace the number after "appareil=" with the number you found with your search.

Save the resulting page as "html only" in a php file: I use a name like "Brand-Model.php"

Now you can run my DXOdataFit Matlab function which I will post below. When it asks you to select an snrdetail source file you navigate to the php file you saved. After you are done selecting source files just hit cancel to quit the function.

Or you can run my PlotDXEdataFit Matlab script which calls the DXOdataFit function and makes some plots.

If you don't have Matlab you should be able to adapt my routines to run in an open source equivalent like Octave or SciLab.

Note that the DXO data for ISO values where the full well capacity is below about 1000 e- goes haywire. So, I didn't plot those values in PlotDXEdataFit. This is okay because all sensors so far don't actually have improved sensitivity for such high ISO values anyway. So, you can just expect the read noise is unchanged from the last valid value.

 DSPographer's gear list:DSPographer's gear list
Canon EOS 5D Mark II Canon EOS M5 Canon EF 24mm f/2.8 Canon EF 50mm F1.8 II Canon EF 200mm f/2.8L II USM +4 more
OP DSPographer Senior Member • Posts: 2,483
DXOdataFit.m
2

function camData= DXOdataFit()

%fit curve to DXOmark sensor SNR data to estimate

%pixel read noise, saturation count, and standard deviation of gain error

%Noise model is: noise^2 = n^2 + m*x + G * m^2 * x^2

%x : fraction of saturation count

%G : pixel gain variance

%m : saturation count

%n : read noise

% Outputs:

% camData.name : Camera data file name

% camData.ISO : Manufacturers ISO values

% camData.readNoise : pixel read noise in electrons (n)

% camData.eSat : saturation count in electrons (m)

% camData.PRNU : standard deviation of noise gain error (sqrt(G)

% camData.res % residual (difference) of fit and data

plotResidues= 0; % plot difference between fit and data?;

fprintf(1,'\n* Sensor Paramaters Derived From DXOmark.com Data *');

fprintf(1,'\n\nISO: Manufacturers ISO rating');

fprintf(1,'\nm: Pixel saturation count in electrons');

fprintf(1,'\nn: Pixel read noise in electrons');

fprintf(1,'\ng%%: Standard deviation of gain error in percent');

fprintf(1,'\nres: Worst case difference between fitted SNR curve in dB and SNR data points in dB');

fprintf(1,'\n');

[xISO,SN,ISO,cam]= dataread;

iCam= 1;

while ~isempty(ISO)

fprintf(1,['\n' cam]);

fprintf(1,'\nISO:');

fprintf(1,' %5.0f',ISO);

if plotResidues

figure(1);

clf;

CO= get(gca,'ColorOrder');

end;

Niso= length(ISO);

n= zeros(1,Niso);

G= zeros(1,Niso);

m= zeros(1,Niso);

res= zeros(1,Niso);

for i1= 1:Niso

% for balanced weighting of the points being fitted

% fit uses x*noise^2/(m*x)2 = n^2/m^2 * 1/x + 1/m + G * x

xp= 1e-2*xISO{i1}; % x values to plot

x= xp(2:end-1); % x values to fit

SNRp= SN{i1};

SNR= SNRp(2:end-1);

N2SR= x .* 10.^(-SNR./10); % x * noise^2 / (m*x)^2

Ap= [xp.^-1 xp.^0 xp.^1];

% Fit the data

A= [x.^-1 x.^0 x.^1];

c= (A' *A)\(A' *N2SR); % least squares solution of c = A\N2SR

G(i1)= c(3);

n(i1)= sqrt(c(1))./c(2);

m(i1)= 1/c(2);

SNRfit= -10*log10(Ap*c./xp);

res(i1)= max(abs(SNRfit(2:end-1)-SNR));

if plotResidues

semilogx(xp(2:end),SNRfit(2:end)-SNRp(2:end),'Color',CO(mod(i1-1,size(CO,1))+1,:));

hold on

end

end

if plotResidues

hold off

xlabel('Signal');

ylabel('Difference of dB');

title([cam ' Fit Residuals']);

legend(num2str(ISO'),2);

drawnow;

end

camData(iCam).name= cam;

camData(iCam).ISO= ISO;

camData(iCam).eSat= m;

camData(iCam).readNoise= n;

camData(iCam).PRNU= sign(G).*sqrt(abs(G));

camData(iCam).res= res;

fprintf(1,'\n m = ');

fprintf(1,'%5.0f ',m);

fprintf(1,'\n n = ');

fprintf(1,'%5.2f ',n);

fprintf(1,'\ng%% = ');

fprintf(1,'%5.2f ',sign(G).*sqrt(abs(G))*100);

fprintf(1,'\nres= ');

fprintf(1,'%5.3f ',res);

fprintf(1,'\n');

[xISO,SN,ISO,cam]= dataread;

iCam= iCam+1;

end

end

function [xISO,SN,ISO,cam]= dataread()

[fname,pname]= uigetfile('*.php','select snrdetail source file');

xISO= [];

SN= [];

ISO= [];

cam= [];

if ~(fname==0)

[~,cam]= fileparts(fname);

fid=fopen(fullfile(pname,fname),'r');

done= 0;

i2= 1;

while ~done;

a{1}=[];

while(~done && isempty(a{1}))

C = textscan(fid, '%s',1,'delimiter','>');

a=(strfind(C{1}, 'dataSet'));

if isempty(a)

done= 1;

end

end;

if ~done

beginPt= ftell(fid);

a=(strfind(C{1}, 'ISO'));

str= C{1}{1};

ISO= [ISO, sscanf(str(a{1}+4:end),'%f')];

a{1}=[];

i1=0;

end;

while(~done && isempty(a{1}))

C = textscan(fid, '%s',1,'delimiter','>');

a=(strfind(C{1}, 'set'));

if isempty(a)

done= 1;

else

if ~isempty(a{1})

i1= i1+1;

end

a=(strfind(C{1}, '/dataSet'));

end

end;

if ~done

fseek(fid,beginPt,'bof');

C = textscan(fid, '%s',5*i1,'delimiter','''');

C= C{1};

C= reshape(C,[5 i1]);

y= str2num(char(C{2,:}));

x= str2num(char(C{4,:}));

% Old code to remove bad points from old style files disabled %%%%%%%%%

% xt= [.01:.01:.09 .1:.1:.5 .7 1:1:9 10:1:14 15:5:35 42:1:255];

% x(2:end)= xt(end-length(x)+2:end); % fix the bad x values

% xISO{i2}= x*100/255;

% SN{i2}= y;

xISO{i2}= x(2:end)*100/255;

SN{i2}= y(2:end);

i2= i2+1;

a{1}=[];

while(~done && isempty(a{1}))

C = textscan(fid, '%s',1,'delimiter','>');

if isempty(a)

done= 1;

else

a=(strfind(C{1}, '/dataSet'));

end

end

end

end

fclose(fid);

end

end

 DSPographer's gear list:DSPographer's gear list
Canon EOS 5D Mark II Canon EOS M5 Canon EF 24mm f/2.8 Canon EF 50mm F1.8 II Canon EF 200mm f/2.8L II USM +4 more
OP DSPographer Senior Member • Posts: 2,483
PlotDXEdataFit.m
1

% PlotDXEdataFit

% Plot sensor full well and read noise from DXOdatafit

camData= DXOdataFit;

camNames= cell(size(camData));

figure(1);

clf;

CO1= get(gca,'ColorOrder');

figure(2);

clf;

CO2= get(gca,'ColorOrder');

figure(3);

clf;

CO3= get(gca,'ColorOrder');

xMinMax= [inf 0];

for iCam= 1:length(camData)

camNames{iCam}= camData(iCam).name;

goodISOs= find(camData(iCam).eSat>1000);

camData(iCam).ISO= camData(iCam).ISO(goodISOs);

camData(iCam).readNoise= camData(iCam).readNoise(goodISOs);

camData(iCam).eSat= camData(iCam).eSat(goodISOs);

camData(iCam).PRNU= camData(iCam).PRNU(goodISOs);

camData(iCam).res= camData(iCam).res(goodISOs);

xMinMax= [min(xMinMax(1),camData(iCam).ISO(1)) max(xMinMax(2),...

camData(iCam).ISO(end))];

figure(1)

loglog(camData(iCam).ISO,camData(iCam).eSat,...

'Color',CO1(mod(iCam-1,size(CO1,1))+1,:));

hold('on');

figure(2)

semilogx(camData(iCam).ISO,camData(iCam).readNoise,...

'Color',CO2(mod(iCam-1,size(CO2,1))+1,:));

hold('on');

figure(3)

semilogx(camData(iCam).ISO,camData(iCam).PRNU .* 100,...

'Color',CO3(mod(iCam-1,size(CO3,1))+1,:));

hold('on');

end

figure(1)

xlim(xMinMax);

ylabel('e-');

title('Pixel Capacity');

legend(camNames,1);

hold('off');

grid('on');

figure(2)

xlim(xMinMax);

xlabel('Camera ISO');

ylabel('e-');

title('Pixel Read Noise');

legend(camNames,1);

hold('off');

grid('on');

figure(3)

xlim(xMinMax);

xlabel('Camera ISO');

ylabel('percent');

title('Pixel Response Non-Uniformity');

legend(camNames,1);

hold('off');

grid('on');

 DSPographer's gear list:DSPographer's gear list
Canon EOS 5D Mark II Canon EOS M5 Canon EF 24mm f/2.8 Canon EF 50mm F1.8 II Canon EF 200mm f/2.8L II USM +4 more
OP DSPographer Senior Member • Posts: 2,483
Example read noise plots from PlotDXEdataFit

Here is an example plot:

 DSPographer's gear list:DSPographer's gear list
Canon EOS 5D Mark II Canon EOS M5 Canon EF 24mm f/2.8 Canon EF 50mm F1.8 II Canon EF 200mm f/2.8L II USM +4 more
OP DSPographer Senior Member • Posts: 2,483
Re: PlotDXEdataFit.m get rid of extra lines

To run this routine you will need to remove the extra blank lines after the lines which end in "..."

All the blank lines were "helpfully" added by the DPreview site.

 DSPographer's gear list:DSPographer's gear list
Canon EOS 5D Mark II Canon EOS M5 Canon EF 24mm f/2.8 Canon EF 50mm F1.8 II Canon EF 200mm f/2.8L II USM +4 more
Steen Bay Veteran Member • Posts: 7,418
Re: Example read noise plots from PlotDXEdataFit

DSPographer wrote:

Here is an example plot:

Interesting, thanks for posting. Seems that it's difficult to get below 2 e- read noise, regardless of the pixel size and ISO. That should give a FF sensor with larger pixels (like e.g. D4) an advantage in normalized DR (print/8mp) at higher ISOs. At ISO 100 it seems that the 4.7 micron pixels on D7000/D800 (with app. 4.2 e- read noise, according to Bill Claff) still will give the highest normalized DR on FF, but the smaller 2.4 micron pixels on RX100 II with 2.6 e- read noise are not far behind (in normalized per area read noise).

Eric Fossum
Eric Fossum Senior Member • Posts: 1,553
Re: Example read noise plots from PlotDXEdataFit
2

Steen Bay wrote:

give the highest normalized DR on FF, but the smaller 2.4 Micron pixels on RX100 II with 2.6 e- read noise are not far behind (in normalized per area read noise).

I am still perplexed why some of you guys insist on normalizing read noise to area. Normalizing makes sense when there is a linear dependence between the two (like, capacitance per unit area) but read noise has no direct dependence on pixel area for a well functioning pinned photodiode pixel (i.e. all the pixels in a CMOS image sensor). The read noise depends on the layout and construction of the readout transistors in the pixel and the rest of the analog signal chain.

Well, I think we have had this conversation before.  Anyway, normalizing read noise to area is just non-sensical without any scientific or engineering justification.

p.s. I finally replaced my venerable Canon 10D with the Sony RX100II and so far I am pretty happy.  Quite an excellent sensor in that RX100II.  Next time Sony-san, don't put the On/Off button next to the shutter.  There is no point in it being located there.

 Eric Fossum's gear list:Eric Fossum's gear list
Sony RX100 II Nikon Coolpix P1000 +1 more
Steen Bay Veteran Member • Posts: 7,418
Re: Example read noise plots from PlotDXEdataFit
1

Eric Fossum wrote:

Steen Bay wrote:

give the highest normalized DR on FF, but the smaller 2.4 Micron pixels on RX100 II with 2.6 e- read noise are not far behind (in normalized per area read noise).

I am still perplexed why some of you guys insist on normalizing read noise to area. Normalizing makes sense when there is a linear dependence between the two (like, capacitance per unit area) but read noise has no direct dependence on pixel area for a well functioning pinned photodiode pixel (i.e. all the pixels in a CMOS image sensor). The read noise depends on the layout and construction of the readout transistors in the pixel and the rest of the analog signal chain.

Well, I think we have had this conversation before. Anyway, normalizing read noise to area is just non-sensical without any scientific or engineering justification.

p.s. I finally replaced my venerable Canon 10D with the Sony RX100II and so far I am pretty happy. Quite an excellent sensor in that RX100II. Next time Sony-san, don't put the On/Off button next to the shutter. There is no point in it being located there.

Well, I think it makes good sense to look at the normalized read noise (and the normalized shot/photon noise too, for that matter). It tells us how much noise and DR the images from two FF sensors with for example 16mp and 64mp will have if the images are downsampled to e.g. 8mp, or if comparing relatively small prints like e.g. 12x8". Normalizing to the same output size (like DxO does with the 'print'/8mp figures), makes it an apples to apples comparison. But on the other hand, it also makes good sense to look at the native images at 100% on the monitor (and/or compare DxO's 'screen' figures) if we want to know how much noise/DR and detail the full resolution images have (equivalent to comparing really big prints, like e.g. 48x32", where we can see all the noise and detail the native images actually have).

Eric Fossum
Eric Fossum Senior Member • Posts: 1,553
Re: Example read noise plots from PlotDXEdataFit
2

uhhh...ok, so if a pixel with area A has signal S and noise n, and it is downsampled into a pixel with effective area mA, the signal S' increases by m and the noise n' increases by sqrt(m), assuming you do the simplest downsampling algorithm.  If you restore brightness by dividing S' by m, so S''=S, the noise n'' reduces to n/sqrt(m).  I still don't see anything that looks like n/A.

But, please write me the downsampling equation that has n/A in it so I may become assimilated.

 Eric Fossum's gear list:Eric Fossum's gear list
Sony RX100 II Nikon Coolpix P1000 +1 more
rubank Senior Member • Posts: 1,282
Re: PlotDXEdataFit.m get rid of extra lines

DSPographer wrote:

To run this routine you will need to remove the extra blank lines after the lines which end in "..."

All the blank lines were "helpfully" added by the DPreview site.

Just hold the shift key when you do a line feed.

Steen Bay Veteran Member • Posts: 7,418
Re: Example read noise plots from PlotDXEdataFit

Eric Fossum wrote:

uhhh...ok, so if a pixel with area A has signal S and noise n, and it is downsampled into a pixel with effective area mA, the signal S' increases by m and the noise n' increases by sqrt(m), assuming you do the simplest downsampling algorithm. If you restore brightness by dividing S' by m, so S''=S, the noise n'' reduces to n/sqrt(m). I still don't see anything that looks like n/A.

Don't quite understand what you mean. Resampling won't change the brightness, so no need to restore it.

But, please write me the downsampling equation that has n/A in it so I may become assimilated.

rubank Senior Member • Posts: 1,282
Re: Example read noise plots from PlotDXEdataFit

Eric Fossum wrote:

uhhh...ok, so if a pixel with area A has signal S and noise n, and it is downsampled into a pixel with effective area mA, the signal S' increases by m and the noise n' increases by sqrt(m), assuming you do the simplest downsampling algorithm. If you restore brightness by dividing S' by m, so S''=S, the noise n'' reduces to n/sqrt(m). I still don't see anything that looks like n/A.

But, please write me the downsampling equation that has n/A in it so I may become assimilated.

Excuse me for making a possibly stupid question (I don´t understand better):

How do you downsample a pixel?
When I downsample an image I get fewer pixels, not smaller ones. AFAIK.

OP DSPographer Senior Member • Posts: 2,483
Re: Example read noise plots from PlotDXEdataFit
2

Eric Fossum wrote:

uhhh...ok, so if a pixel with area A has signal S and noise n, and it is downsampled into a pixel with effective area mA, the signal S' increases by m and the noise n' increases by sqrt(m), assuming you do the simplest downsampling algorithm. If you restore brightness by dividing S' by m, so S''=S, the noise n'' reduces to n/sqrt(m). I still don't see anything that looks like n/A.

But, please write me the downsampling equation that has n/A in it so I may become assimilated.

Normalizing full well capacity and read noise to a unit area is equivalent to normalizing to a fixed number of pixels, *if* you have a fixed sensor size. I agree that it could be more useful to just normalize to a common pixel count the way DXOmark's "print" plots do. Then you could more easily compare the expected signal to noise ratio performance between sensors of different sizes when they are each appropriately exposed (assuming other factors like PRNU and pattern noise have been eliminated/calibrated out). Full well capacity and read noise don't tell us what the exposure difference is for that performance though- for that we need to consider the ratio of the sensor's quantum efficiency and total area.

I wouldn't usually normalize for a fixed maximum signal value, instead I would just list the full well capacity and read noise separately, with the understanding that the dynamic range is the ratio between the two values. That is because the full well capacity tells us what the signal to shot noise ratio is for a given fraction of saturation.

Not only does simple pixel binning yield the noise ratios you give, but a brick wall filter at the output Nyquist frequency does as well (they have the same noise equivalent bandwidth). So, we can expect that ratio to be generally applicable for comparing sensors with different pixel counts.

 DSPographer's gear list:DSPographer's gear list
Canon EOS 5D Mark II Canon EOS M5 Canon EF 24mm f/2.8 Canon EF 50mm F1.8 II Canon EF 200mm f/2.8L II USM +4 more
Eric Fossum
Eric Fossum Senior Member • Posts: 1,553
Re: Example read noise plots from PlotDXEdataFit
1

Steen Bay wrote:

Eric Fossum wrote:

uhhh...ok, so if a pixel with area A has signal S and noise n, and it is downsampled into a pixel with effective area mA, the signal S' increases by m and the noise n' increases by sqrt(m), assuming you do the simplest downsampling algorithm. If you restore brightness by dividing S' by m, so S''=S, the noise n'' reduces to n/sqrt(m). I still don't see anything that looks like n/A.

Don't quite understand what you mean. Resampling won't change the brightness, so no need to restore it.

But, please write me the downsampling equation that has n/A in it so I may become assimilated.

In this case I should have said "binned" instead of "downsampled", sorry, but in the simplest downsampling algorithm, averaging starts with addition (binning) followed by division.  When you bin, the signal increases (gets brighter).

 Eric Fossum's gear list:Eric Fossum's gear list
Sony RX100 II Nikon Coolpix P1000 +1 more
Eric Fossum
Eric Fossum Senior Member • Posts: 1,553
Re: Example read noise plots from PlotDXEdataFit
1

rubank wrote:

Eric Fossum wrote:

uhhh...ok, so if a pixel with area A has signal S and noise n, and it is downsampled into a pixel with effective area mA, the signal S' increases by m and the noise n' increases by sqrt(m), assuming you do the simplest downsampling algorithm. If you restore brightness by dividing S' by m, so S''=S, the noise n'' reduces to n/sqrt(m). I still don't see anything that looks like n/A.

But, please write me the downsampling equation that has n/A in it so I may become assimilated.

Excuse me for making a possibly stupid question (I don´t understand better):

How do you downsample a pixel?
When I downsample an image I get fewer pixels, not smaller ones. AFAIK.

Yes this is true.  Again, I was sloppy, sorry.  I should have said "if m pixels ... ...are binned into a pixel with effective area mA...".  The effective area (sensor referred) of the new pixel is now mA and there is only one pixel where there used to be m pixels"

I usually think of these operations as if we were altering the sensor array.  If you are doing computer science - image manipulation, you might not think this way, but then you would have a hard time calculating shot noise and read noise in hypothetical situations like the one above.  Then again, you can use FFT and other mathematical techniques (filters) to resample that you could not ever really do on the sensor array in any viable fashion.

 Eric Fossum's gear list:Eric Fossum's gear list
Sony RX100 II Nikon Coolpix P1000 +1 more
OP DSPographer Senior Member • Posts: 2,483
Re: PlotDXEdataFit.m get rid of extra lines

rubank wrote:

DSPographer wrote:

To run this routine you will need to remove the extra blank lines after the lines which end in "..."

All the blank lines were "helpfully" added by the DPreview site.

Just hold the shift key when you do a line feed.

Thanks for that, too bad I can't fix those lines the post because DPreview disables editing after a (too) short amount of time has elapsed since posting.

Is there a way to keep the indenting or other spaces that DPreview removes?
At least for these listings you can use Matlab's auto-indent function to restore the correct indents.

 DSPographer's gear list:DSPographer's gear list
Canon EOS 5D Mark II Canon EOS M5 Canon EF 24mm f/2.8 Canon EF 50mm F1.8 II Canon EF 200mm f/2.8L II USM +4 more
Steen Bay Veteran Member • Posts: 7,418
Re: Example read noise plots from PlotDXEdataFit

DSPographer wrote:

Eric Fossum wrote:

uhhh...ok, so if a pixel with area A has signal S and noise n, and it is downsampled into a pixel with effective area mA, the signal S' increases by m and the noise n' increases by sqrt(m), assuming you do the simplest downsampling algorithm. If you restore brightness by dividing S' by m, so S''=S, the noise n'' reduces to n/sqrt(m). I still don't see anything that looks like n/A.

But, please write me the downsampling equation that has n/A in it so I may become assimilated.

Normalizing full well capacity and read noise to a unit area is equivalent to normalizing to a fixed number of pixels, *if* you have a fixed sensor size. I agree that it could be more useful to just normalize to a common pixel count the way DXOmark's "print" plots do. Then you could more easily compare the expected signal to noise ratio performance between sensors of different sizes when they are each appropriately exposed (assuming other factors like PRNU and pattern noise have been eliminated/calibrated out). Full well capacity and read noise don't tell us what the exposure difference is for that performance though- for that we need to consider the ratio of the sensor's quantum efficiency and total area.

I wouldn't usually normalize for a fixed maximum signal value, instead I would just list the full well capacity and read noise separately, with the understanding that the dynamic range is the ratio between the two values. That is because the full well capacity tells us what the signal to shot noise ratio is for a given fraction of saturation.

Not only does simple pixel binning yield the noise ratios you give, but a brick wall filter at the output Nyquist frequency does as well (they have the same noise equivalent bandwidth). So, we can expect that ratio to be generally applicable for comparing sensors with different pixel counts.

The normalized read noise (and fwc) becomes relevant if we want to know how a FF sensor filled with for example RX100 II pixels would perform, compared to FF sensors with other pixel sizes. Pure speculation, but nevertheless interesting, I think. It would tell us which pixel sizes/designs that right now are most 'efficient' at different ISOs.  We could also just use the pixel values (read noise and fwc) from RX100 II and imagine that the sensor had app. 7.3x larger area and app. 145mp, and then downsample. That would also tell us how the normalized output from a FF sensor with RX100 II pixels would be.

rubank Senior Member • Posts: 1,282
Re: Example read noise plots from PlotDXEdataFit

Eric Fossum wrote:

rubank wrote:

Eric Fossum wrote:

uhhh...ok, so if a pixel with area A has signal S and noise n, and it is downsampled into a pixel with effective area mA, the signal S' increases by m and the noise n' increases by sqrt(m), assuming you do the simplest downsampling algorithm. If you restore brightness by dividing S' by m, so S''=S, the noise n'' reduces to n/sqrt(m). I still don't see anything that looks like n/A.

But, please write me the downsampling equation that has n/A in it so I may become assimilated.

Excuse me for making a possibly stupid question (I don´t understand better):

How do you downsample a pixel?
When I downsample an image I get fewer pixels, not smaller ones. AFAIK.

Yes this is true. Again, I was sloppy, sorry. I should have said "if m pixels ... ...are binned into a pixel with effective area mA...". The effective area (sensor referred) of the new pixel is now mA and there is only one pixel where there used to be m pixels"

I usually think of these operations as if we were altering the sensor array. If you are doing computer science - image manipulation, you might not think this way, but then you would have a hard time calculating shot noise and read noise in hypothetical situations like the one above. Then again, you can use FFT and other mathematical techniques (filters) to resample that you could not ever really do on the sensor array in any viable fashion.

Thank you!

Great Bustard Forum Pro • Posts: 45,431
Normalizing noise...
2

Eric Fossum wrote:

Steen Bay wrote:

give the highest normalized DR on FF, but the smaller 2.4 Micron pixels on RX100 II with 2.6 e- read noise are not far behind (in normalized per area read noise).

I am still perplexed why some of you guys insist on normalizing read noise to area. Normalizing makes sense when there is a linear dependence between the two (like, capacitance per unit area) but read noise has no direct dependence on pixel area for a well functioning pinned photodiode pixel (i.e. all the pixels in a CMOS image sensor). The read noise depends on the layout and construction of the readout transistors in the pixel and the rest of the analog signal chain.

"We" are not saying that the read noise of a pixel scales with the area of a pixel, although there are reasons to think it might work out that way in an idealized situation:

http://www.dpreview.com/forums/post/37486578

Well, I think we have had this conversation before. Anyway, normalizing read noise to area is just non-sensical without any scientific or engineering justification.

...to the same area of the photo is the proper measure when comparing different systems. For example, we wouldn't compare one pixel of a 16 MP photo to one pixel of a 36 MP photo; rather, for example, 16 pixels from a 16 MP photo to 36 pixels from a 36 MP photo, as they cover the same area of the photo.

p.s. I finally replaced my venerable Canon 10D with the Sony RX100II and so far I am pretty happy. Quite an excellent sensor in that RX100II.

Yep.

Next time Sony-san, don't put the On/Off button next to the shutter. There is no point in it being located there.

How about next to the card eject? 

Steen Bay Veteran Member • Posts: 7,418
Re: Normalizing noise...

Great Bustard wrote:

Eric Fossum wrote:

Steen Bay wrote:

give the highest normalized DR on FF, but the smaller 2.4 Micron pixels on RX100 II with 2.6 e- read noise are not far behind (in normalized per area read noise).

I am still perplexed why some of you guys insist on normalizing read noise to area. Normalizing makes sense when there is a linear dependence between the two (like, capacitance per unit area) but read noise has no direct dependence on pixel area for a well functioning pinned photodiode pixel (i.e. all the pixels in a CMOS image sensor). The read noise depends on the layout and construction of the readout transistors in the pixel and the rest of the analog signal chain.

"We" are not saying that the read noise of a pixel scales with the area of a pixel, although there are reasons to think it might work out that way in an idealized situation:

http://www.dpreview.com/forums/post/37486578

Fortunately it isn't necessary for the read noise to scale with the pixel area when increasing the pixel count (on a given sensor size), in order to maintain the same normalized DR (print/8mp). It's enough if the read noise 'just' scales with the linear pixel size, but even that can maybe be difficult in practice (for now at least).

For example, the 36mp D800 has app. 4.2 e- read noise at ISO 100 and it's decreasing to 2.7 e- at ISO 1600. If we wanted a FF sensor with 4x more pixels (144mp) and the same normalized DR as D800, then the read noise of the smaller pixels should be 2.1 e- at ISO 100 and 1.35 e- at ISO 1600 (assuming same QE, etc.). The RX100 II has almost exactly the right pixel size for a 144mp FF sensor (and seems to have the most 'efficient' relatively small pixels right now), but the read noise isn't quite low enough to maintain the same normalized DR as the D800. Though, it would still be a quite interesting 144mp sensor!

Well, I think we have had this conversation before. Anyway, normalizing read noise to area is just non-sensical without any scientific or engineering justification.

...to the same area of the photo is the proper measure when comparing different systems. For example, we wouldn't compare one pixel of a 16 MP photo to one pixel of a 36 MP photo; rather, for example, 16 pixels from a 16 MP photo to 36 pixels from a 36 MP photo, as they cover the same area of the photo.

p.s. I finally replaced my venerable Canon 10D with the Sony RX100II and so far I am pretty happy. Quite an excellent sensor in that RX100II.

Yep.

Next time Sony-san, don't put the On/Off button next to the shutter. There is no point in it being located there.

How about next to the card eject?

Keyboard shortcuts:
FForum MMy threads