# VSNR

We introduced the idea of using a visible SNR measure (vSNR) to quantify the noise in an imaging system. The idea of the metric is to do better than conventional SNR, such as PSNR, which fails to take into account the viewer. In the vSNR we transform the data from a uniform image into a Spatial CIELAB representation and we then measure the SNR in the S-CIELAB representation.

#  vSNR calculation

• Compute the imaging system representation to a uniform field. For example, use a uniform field as input and process the data using ISET to produce a vcimage.
• Transform the uniform field into S-CIELAB (scComputeSCIELAB)
• Use the standard deviation of the representation as a measure of noise
• Report vSNR as the inverse of the standard deviation

The specific formula for vSNR is

$vSNR = 1 / sqrt( (\sigma_L)^2 + (\sigma_A)^2 + (\sigma_B)^2 )$

where $\sigma_i$ is the standard deviation of the S-CIELAB L, A or B representations of the uniform field. Notice that the units of standard deviation (difference of the noise from the mean) is $\Delta E$.

The vSNR

• is inversely related to the noise (higher noise, lower the vSNR)
• includes the deviation in all three color dimensions
• has units of $1 / \Delta E$, so a vSNR=1 means a noise standard deviation of 1 $\Delta E$

A code snippet for computing vSNR, taken from s_binSensorDESPIE, is

   sLAB = scComputeSCIELAB(imgXYZ,whitePtXYZ,params);
sLAB = getMiddleMatrix(sLAB,[20 20]);
% m = abs(sLAB(:,:,1)); m = m/max(m(:)); imagesc(m); axis image
m1 = sLAB(:,:,1); m2 = sLAB(:,:,2); m3 = sLAB(:,:,3);
L = std(m1(:))^2; A = std(m2(:))^2; B = std(m3(:))^2;
vSNR(ii) = 1/sqrt(A+B+L);


#  Reference

Using visible SNR (vSNR) to compare the image quality of pixel binning and digital resizing
To appear in SPIE 2010
Joyce Farrell, Mike Okincha, Manu Parmar, and Brian Wandell
Dept. of Electrical Engineering, Stanford University, Stanford, CA. 94305 U.S.A.
Omnivision Technologies, Santa Clara, CA 95054 U.S.A.
Dept. of Psychology, Stanford University, Stanford, CA. 94305 U.S.A.