# State of the art algorithms for estimating noise variance

Suppose I have a signal $$X[n]= f[n] + W[n]$$, where $$W$$ is uncorrelated Gaussian white noise satisfying $$E\{W[n]W[k]\} = \sigma^2 \delta[n-k]$$.

What are the state-of-the-art algorithms for determining the noise variance $$\sigma^2$$ from $$X$$? (i.e., without oracle information?)

• is $f[n]$ known? – Robert L. Dec 4 '18 at 20:36
• @CarlosDanger: No, $f$ is oracle information. – user14717 Dec 4 '18 at 20:37
• This looks like blind source separation – Robert L. Dec 4 '18 at 20:39
• @CarlosDanger: I think this is slightly different, since $W$ is uncorrelated Gaussian white noise and not another "signal". However, it is not a bad suggestion to see if the techniques from BSS can separate $f$ from a "noisy zero signal", which would make this a special case. – user14717 Dec 4 '18 at 20:52

If you hope that $$f[n]$$ can be sparser in some linear representation $$L$$, then robust statistics can be used to estimate variance bounds on coefficients of $$L(X[n])$$. One common method is orthogonal wavelet denoising, where a common standard deviation estimate is: $$\mathrm{median} \frac{|c_i|}{0.67449}$$ where $$c_i$$ denotes the highest scale subband. The magic $$0.67449$$ scale factor relates the standard deviation to the robust Median absolute deviation through the error function erf ("MAD equals the half-normal distribution median").

How robust is that? I tested it on a classical "crane" image, with several noise realizations, and here is the $$\sigma$$ versus $$\hat{\sigma}$$ estimates with dispersion.

Not to bad: somehow linear, albeit with an offset at zero, and an increasing dispersion. This can suffice for some uses. Meanwhile, for a better interval of estimates, I usually use several representations (wavelets, filter banks) to capture unknown sparsity optimality, with a certain amount of redundancy, and combine them into a range of estimates. Since redundancy kills independence, a calibration is required to get thre proper factor, that easily done with transforming white noise with the set of transformations you have. This is what we use with redundant Optimization of Synthesis Oversampled Complex Filter Banks or for denoising with Noise Covariance Properties in Dual-Tree Wavelet Decompositions.

Although the estimate is excellent with simulated Gaussian noise, this is of course less efficient in practice, as noise estimated from one realization is rarely Gaussian (or something easy to handle).

Additional references for images: - Noise Estimation from a Single Image, with Matlab code

In order to work well, many computer vision algorithms require that their parameters be adjusted according to the image noise level, making it an important quantity to estimate. We show how to estimate an upper bound on the noise level from a single image based on a piecewise smooth image prior model and measured CCD camera response functions. We also learn the space of noise level functions how noise level changes with respect to brightness and use Bayesian MAP inference to infer the noise level function from a single image. We illustrate the utility of this noise estimation for two algorithms: edge detection and feature preserving smoothing through bilateral filtering. For a variety of different noise levels, we obtain good results for both these algorithms with no user-specified inputs.

Noise level is an important parameter to many image processing applications. For example, the performance of an image denoising algorithm can be much degraded due to the poor noise level estimation. Most existing denoising algorithms simply assume the noise level is known that largely prevents them from practical use. Moreover, even with the given true noise level, these denoising algorithms still cannot achieve the best performance, especially for scenes with rich texture. In this paper, we propose a patch-based noise level estimation algorithm and suggest that the noise level parameter should be tuned according to the scene complexity. Our approach includes the process of selecting low-rank patches without high frequency components from a single noisy image. The selection is based on the gradients of the patches and their statistics. Then, the noise level is estimated from the selected patches using principal component analysis. Because the true noise level does not always provide the best performance for nonblind denoising algorithms, we further tune the noise level parameter for nonblind denoising. Experiments demonstrate that both the accuracy and stability are superior to the state of the art noise level estimation algorithm for various scenes and noise levels.

• Hi Laurent: Probability a stupid question but are you saying to investigate using the lags of the response itself ? if so, then that's autoregressive modelling in econometrics and there are ways to decide when to stop addings lags. Shwert ( maybe 1970's) has some paper discussing the method but I forget the title. – mark leeds Dec 4 '18 at 22:45
• Hopefully quick question: Where does the 0.6745 come from? – user14717 Dec 5 '18 at 0:16
• Thanks Laurent for additions. I looked for the Schwert paper but the algorithm seems somewhat ad-hoc so I'm not sure if it's useful even if I found it. The link here will atleast give econometric references that may be of interest. All the best. .drphilipshaw.com/Protected/… – mark leeds Dec 5 '18 at 7:42
• Laurent: Just a disclaimer because I've done those sorts of things in that paper. They all assume stability-stationarity in the time-series world, whether it's after differencing or without differencing. So, their applicability to the dsp world is going to have the same issues as time-seriess: namely, the question of stationarity. As soon as there's some kind of regime-change, strucural break-, change in underlying mean, they all kind of fall apart because the likelihood is basically wrong. – mark leeds Dec 6 '18 at 22:21
• Just to finish: Estimating time-series econometric models, in finance particularly, is quite a tricky and often un-successful endeavor. So, just giving you the heads up that they're not the be-all end-all. – mark leeds Dec 6 '18 at 22:22