1. A method of processing a captured image comprising: receiving a captured image; dividing the captured image into a plurality of tiles; reading at least one prestored eigen-kernel from memory; reading at least one scalar value from memory; and for each pixel in the tile: reading image data in an M×M window, where M is a number of pixels; determining a mean of the windowed data; estimating a variance of noise at a current pixel using the mean and a noise model; estimating a variance of the image data in the window; estimating a variance of an original image taking into account degrading blur, noise, and the variance of the image data; and determining a signal-to-noise ratio at the current pixel, wherein estimating a variance of an original image is performed according to: 
 σ x 2 =(σ y 2 −σ n 2 )/φ( h ), wherein φ(h) is a scalar value representing a strength of the point spread function, σ n 2 is the estimated variance of noise, σ y 2 is the estimated variance of the image data, and σ x 2 is the estimated variance of the original image.