Visual information transmitted in the form of digital images is becoming a major method of communication in the modern age, but the image obtained after transmission is often corrupted with noise. The received image needs processing before it can be used in applications. Image denoising involves the manipulation of the image data to produce a visually high quality image. This paper uses the fourth order nonlinear wiener filter with wavelet quadtree decomposition and median absolute deviation. It will be shown that this new algorithm is comparable to other algorithms like BM3D, LPG-PCA, and KSVD.
1. Introduction
In digital image processing, image denoising is a very important issue. Certain degradation will happen to the transmitted images [1]. This degradation can be noise or blurring. Blurring is a kind of bandwidth reduction due to some errors related to methods of capturing the photos. However, noise is related to the transmission medium errors or errors of measurements [2].
Image denoising is the estimation of the original image from the noisy image. Many methods have been used. Signal to noise ratio and mean square error are used as performance measures. The denoising concept can be represented by a system where the input is the noisy image and the output is the reconstructed image. We assume that the noise is an additive Gaussian noise given by
(1)f(g)=1σ22πe-(g-m)2/2σ2,
where g is the pixel of the image to which is added the noise, m is the mean of the Gaussian noise, and σ2 is the variance of the noise. Usually the variance of the noise is unknown. It is estimated via a method called median absolute deviation (MAD) given by
(2)MADn=bmedi|xi-medjxj|.
The MAD has the best possible breakdown point (50%, twice as much as the interquartile range), and its influence function is bounded, with the sharpest possible bound among all scale estimators [3]. The constant b is needed to make the estimator consistent for the parameter of interest. In the case of the usual parameter σ at Gaussian distributions, we need to set b=1.4826 [3].
1.1. Denoising Using Wavelet Transform
Wavelet coefficients calculated by a wavelet transform represent change in the time series at a particular resolution. By considering the time series at various resolutions, it is then possible to filter out noise. Wavelet thresholding is explained as decomposition of the data or the image into wavelet coefficients, comparing the detail coefficients with a given threshold value, and shrinking these coefficients close to zero to take away the effect of noise in the data [4]. The image is reconstructed from the modified coefficients. This process is also known as the inverse discrete wavelet transform. During thresholding, a wavelet coefficient is compared with a given threshold and is set to zero if its magnitude is less than the threshold; otherwise, it is retained or modified depending on the threshold rule. Thresholding distinguishes between the coefficients due to noise and the ones consisting of important signal information. The choice of a threshold is an important point of interest. It plays a major role in the removal of noise in images because denoising most frequently produces smoothed images, reducing the sharpness of the image. Care should be taken so as to preserve the edges of the denoised image. There exist various methods for wavelet thresholding, which rely on the choice of a threshold value. Some typically used methods for image noise removal include Visushrink and Sureshrink [4].
In Visushrink or Sureshrink, the image is first subjected to a discrete wavelet transform, which decomposes the image into various subbands [4] as shown in Figure 1.
DWT on 2-dimensional data.
The subbands HHk, HLk, LHk, k=1,2,…,j are called the details, where k is the scale and j denotes the largest or coarsest scale in decomposition. Note that LLk is the low resolution component. Thresholding is now applied to the detail components of these subbands to remove the unwanted coefficients, which contribute to noise. And as a final step in the denoising algorithm, the inverse discrete wavelet transform is applied to build back the modified image from its coefficients.
It should be noted that Visushrink uses a hard thresholding rule with a universal threshold Th=σ2logn, where σ2 is the variance of the noise and n is the signal size [4].
The Sureshrink is a combination of the universal threshold and the SURE threshold. This method specifies a threshold value tj for each resolution level j in the wavelet transform which is referred to as level dependent thresholding [5].
In [6] a new threshold operator has been used. This method consists of thresholding the wavelet coefficients using fourth order polynomial and gave better results than the previous thresholding techniques. It should be noted that our fourth order Wiener filter is performed directly on the wavelet coefficients without thresholding.
1.2. Denoising Using Neighboring Wavelet Coefficients
Wavelet denoising by thresholding tends to kill too many wavelet coefficients that might contain useful image information. As a solution for this problem, wavelet thresholding is done by incorporating neighboring coefficients [7]. The idea of considering the influence of other wavelet coefficients on the current wavelet coefficient to be thresholded is of great importance. A large wavelet coefficient will probably have large wavelet coefficients at its neighbor locations. The reason is that wavelet transforms produce correlated wavelet coefficients [7].
In the following wavelet denoising scheme, the neighboring coefficients are incorporated into the thresholding process. Suppose that dj,k is the set of wavelet coefficients of the noise 1D signal:
(3)Sj,k2=dj,k-12+dj,k2+Sj,k+12.
If (3) is less than or equal to λ2, then the wavelet coefficient dj,k is set to zero. Otherwise, dj,k=dj,k(1-λ2/Sj,k2), where λ=2σ2logn, and n is the length of the signal [7].
1.3. KSVD or K-Means Clustering Process
Nowadays, it is important to search for sparse representations of signals using a dictionary matrix D∈Rn×k that contains k prototype signal atom for columns, {dj}j-1k, and a signal y∈Rn can be represented as a sparse linear combination of these atoms. The representation of y may either be exact y=Dx, or approximated. The vector x∈Rk contains the representation coefficients of the signal y. Extraction of the sparse representation is a hard problem that has been extensively investigated in the past few years. It was assumed that the dictionary is known and fixed. Here the issue is to design the proper dictionary in order to better fit the sparsity model imposed. A full description of this algorithm is described in Figure 3 [8].
Each iteration (containing the sparse coding and the dictionary update) improves the denoising results because in this algorithm the work is to optimize ||y-Dx||22, the higher the number of iterations, the best performance is achieved [9].
1.4. Image Denoising by Sparse 3D Transform-Domain Collaborative Filtering
This is done by grouping similar 2D fragments of the image into 3D data arrays called “groups.” In order to deal with 3D groups, collaborative filtering is used, and it includes 3 successive steps:
3D transformation of a group,
shrinkage of transform spectrum,
inverse 3D transformation.
After doing these steps, an array of jointly filtered 2D fragments is obtained. Due to the similarity between the grouped blocks, the transform can achieve a highly sparse representation of true signal, so that the noise can be well separated by shrinkage [10]. In this way, the collaborative filtering reveals even the finest details shared by grouped fragments and at the same time it preserves the essential unique features of each of individual fragments.
1.5. BM3D-SAPCA
Square image blocks containing fine image details, or sharp, or edges are examples where a nonadaptive transform is not able to deliver a sparse representation [11].
In this case, denoising using BM3D filter is not effective. That is why in order to increase the sparsity of the true signal and improve the BM3D filter, similar adaptive-shape neighborhoods are grouping together and PCA is a part of the 3D transform used for collaborative filtering [11]. This method is called BM3D-SAPCA.
1.6. Two-Stage Image Denoising by Principal Component Analysis with Local Pixel Grouping
BM3D algorithm achieves important results in denoising, but the problem is that its implementation is complex [12]. Another algorithm has appeared with high efficiency and less complexity, the LPG-PCA algorithm or PCA based denoising method with local pixel grouping. In the PCA domain, noise can be removed from an image due to the reservation of only the most significant principal components [12].
The first stage is used to remove the most of noise in the image and the second stage to improve the output. The 2 stages have the same principle, only the noise parameter will be changing [13].
2. Wiener Filter in the Wavelet Domain
In this method, wavelet coefficients are considered conditionally independent Gaussian random variables. The noise is also considered as an independent stationary zero mean Gaussian variable [14]. Let us assume the relation between the noisy image and the original one as follows:
(4)yi,j=si,j+ni,j,
where yi,j represent the coefficients of the noisy image in the wavelet domain, si,j represents the coefficient of the original image, and ni,j represents the coefficient of the noise [14].
ni,j’s are normal with zero mean and variance σn2. Due to the decorrelation property of the orthogonal wavelet transform, the signal components si,j are uncorrelated.
An optimal linear estimator for a signal in additive noise is formed as si,j=ayi,j+b; the noise and the signal are assumed to be independent and a and b are chosen in a way to minimize the mean squared estimation error [15]:
(5)J(a,b)=E[(s^i,j-si,j)2]=E[(ayi,j+b-si,j)2].
In order to get the minimum of, we have to get the derivatives with respect to a and b and set them equal to zero:
(6)∂J(a,b)∂a=2E[(ayi,j+b-si,j)yi,j]=0,∂J(a,b)∂b=2E[(ayi,j+b-si,j)]=0.
This will give the following.
Consider aE(yi,j2)+bE(yi,j)-E(si,jyi,j)=0.
Assume that E(si,j)=0 and this implies that E(yi,j)=E(si,j)+E(ni,j)=0.
Consider si,j=ayi,j, where s is the best linear estimator of the signal component s; because the noise and the signal are independent, we can say that
(7)E(yi,j2)=E[(si,j+ni,j)2]=E(si,j2)+σn2+2E(ni,jsi,j)=E(si,j2)=E(yi,j2)-σn2a=E(yi,j2)-σn2E(yi,j2).
Without loss of generality, we can assume that the E{yi,j2}’s can be determined by averaging the squared values of yi,j in a window centered at (i,j). This information can be expressed as
(8)Qi,j=∑k=-RR∑l=-RRy2.
M=(2R+1)2 is the number of coefficients in the kernel:
(9)E(yi,j2)~=Qi,jM.
Restricting the values of E(yi,j2) to only positive values, the numerator of the above equation takes the form:
(10)s^i,j=max(0,a)yi,j.
3. Fourth Order Nonlinear Wiener Filtering with QTD3.1. Quadtree Decomposition
Applying QTD to an image will splits a parent block into four children blocks if the intensity gradient within the block is greater than a predefined threshold. The decomposition will stop when the final blocks are composed of pixels or coefficients that are close to each other, or the difference between the maximum value and the minimum value is less than a certain small threshold [3]. An example is shown in Figure 2.
Quadtree decomposition of Lena.
The test images used.
In Figure 2, the right image represents the QTD of Lena image. It is clear how the values in each blocks are close and how the block sizes differ from smooth region to region where there are edges.
3.2. Summary of the Wavelet QTD + Wiener Algorithm
QTD is used with the wiener filtering algorithm in order to get a better performance. Instead of filtering the same block size, different block size related to the quadtree decomposition is used. The algorithm can be summarized as follows:
Apply the discrete wavelet transform to the noisy image. It should be noted that we have used:
The dwt2(I,’ d b4’) matlab functions which uses the Daubechies Db4 wavelet.
It decomposes the image I into four subbands LL, LH, HL, and HH.
Apply the QTD to each of the high frequency subbands (LH, HL, and HH). It should be noted that we have used:
The qtdecomp(b,Threhold) matlab function which returns a sparse matrix S containing the top left corner of each block coordinate and the size of each block. This function splits a block b if the maximum value of the block elements minus the minimum value of the block elements is greater than threshold. Threshold is specified as values between 0 and 1.We have used a threshold of 0.2.The default value of the minimum block size is used. It should be noted that the effect of the variance of added noises will be decreased using the fourth order Wiener filter.
Apply the Wiener filter on each variable size block:
We start with the center of the first block as the pixel to be estimated, after estimating the value, we shift the block by one.
It should be noted that we have used the fourth order filter because of its good PSNR performance with different noise variances. The first order filter for example, will give good PSNR for small values of noise variances. Its performance degrades when the noise variances increase.
Apply the inverse wavelet transform on the filtered image.
3.3. Fourth Order Nonlinear Wiener Filter
In order to get the coefficients of this filter, the steps are summarized as follows:
The filter output is given by S^i,j=ayi,j4+byi,j3+cyi,j2+dyi,j+e; the error function is given by
(11)J(a,b,c,d,e)=E{[ayi,j4+byi,j3+cyi,j2[+dyi,j+e-si,j]2+dyi,j+e-si,j]2}.
In order to get MMSE, we have to get the partial derivatives of (11) as follows:
(12)∂J(a,b,c,d,e)∂a=0;∂J(a,b,c,d,e)∂b=0;∂J(a,b,c,d,e)∂c=0;∂J(a,b,c,d,e)∂d=0;∂J(a,b,c,d,e)∂e=0.
Now the system becomes
(13)aE(y8)+bE(y7)+cE(y6)+dE(y5)+eE(y4)-E(y5)+E(ny4)=0,aE(y7)+bE(y6)+cE(y5)+dE(y4)+eE(y3)-E(y4)+E(ny3)=0,aE(y6)+bE(y5)+cE(y4)+dE(y3)+eE(y2)-E(y3)+E(ny2)=0,aE(y5)+bE(y4)+cE(y3)+dE(y2)+eE(y)-E(y2)+E(ny)=0,aE(y4)+bE(y3)+cE(y2)+dE(y)+e-E(y)=0.
The solution of the system above is as follows:
(14)a=-k23k22b=k15k16-k17k16a,c=-k10-k8b-k7ak9d=-k1c-k2b-k3a,e=k4a+k5b+k6c+E(y),
where
(15)k1=E(y3)-E(y)E(y2)E(y2)-E2(y),k2=E(y4)-E(y)E(y3)E(y2)-E2(y),k3=E(y5)-E(y)E(y4)E(y2)-E2(y),k4=k3E(y)-E(y4),k5=k2E(y)-E(y3)k6=k1E(y)-E(y2),k7=E(y6)-k3E(y3)+k4E(y2),k8=E(y5)-k2E(y3)+k5E(y2),k9=E(y4)+k6E(y2)-k1E(y3),k10=E(y)E(y2)-E(y3)+E(ny2),k11=E(y)E(y3)-E(y4)+E(ny3),k12=E(y7)-k3E(y4)+k4E(y3),k13=E(y6)-k2E(y4)+k5E(y3),k14=E(y5)-k1E(y4)+k6E(y3),k15=k14k10k9-k11k16=k13-k8k14k9,k17=k12-k14k7k9,k18=E(y8)-k3E(y5)+k4E(y4),k19=E(y7)-k2E(y5)+k5E(y4),k20=E(y6)-k1E(y5)+k6E(y4),k21=E(ny4)-E(y5),k22=k18-k17k19k16-k7k20k9+k8k17k20k9k16,k23=k19k15k16-k20k10k9+k21-k8k15k20k9k16.
However, we only have the noisy image, not the noise. Knowing that the noise is Gaussian noise with zero mean leads to
(16)E(np)={0,ifpisodd,σnp(p-1)!!,Ifpiseven,
where (p-1)!! is the multiplication of all the odd numbers between (p-1) and 0.
This will give
(17)E(ny2)=2σn2E(y),E(ny3)=3σn2E(y2),E(ny4)=3σn2+4σn2(y3)+12σn4E(y),k10=E(y)E(y2)-E(y3)+2σn2E(y),k11=E(y)E(y3)-E(y4)+3σn2E(y2),k21=3σn2+4σn2E(y3)+12σn4E(y)-E(y5).
4. Implementation and Results
We have done a comparison between the fourth order nonlinear wiener filtering with QTD and the BM3D, LPG-PCA, and KSVD algorithms. Four different images (house, Cameraman, Pepper, and Lena) were used with 4 different variances. The PSNR’s (18) between the original M×N image I(i,j) and the reconstructed image Ir(i,j) of these methods are shown in Table 1:
(18)PSNR=10log10(2552(1/MN)∑i=1M∑j=1N(I(i,j)-Ir(i,j))2).
Figures 4 and 5 show the denoising results of the different methods for the “house” and “Lena” images using a variance of 400. (From top to bottom, left to right: Original image, Noisy image, KSVD, BM3D, LPG-PCA, 4th order Weiner results).
Comparison between the 4 h order Wiener and other methods.
Methods
4th order Wiener with QTD
KSVD
BM3D
LPG-PCA
House
σ=10
36.2214
35.3585
36.1068
36.1742
σ=20
33.1816
32.4790
33.1156
32.95
σ=30
31.7216
30.5347
31.5037
31.06
σ=40
30.8782
28.9990
30.0611
29.60
Cameraman
σ=10
34.2733
33.6567
34.0315
33.6807
σ=20
31.5959
29.8680
30.4017
29.8169
σ=30
28.7305
27.9519
28.5305
27.8619
σ=40
27.7321
26.6280
27.1690
26.4450
Pepper
σ=10
33.2117
33.2631
33.6664
33.4680
σ=20
29.2328
29.4737
29.9465
29.6773
σ=30
27.9729
27.5576
28.0310
27.6634
σ=40
26.3014
26.2714
26.6208
26.2851
Lena
σ=10
34.9483
34.3841
34.8737
34.9105
σ=20
31.9964
30.6819
31.1590
30.9613
σ=30
28.8193
28.4998
29.0058
28.6486
σ=40
27.5619
26.9767
27.4874
27.1664
The denoising results of house by different schemes with σ=20.
The denoising results of Lena by different schemes with σ=20.
5. Conclusion
In this paper, we presented a new denoising method: the fourth order nonlinear wiener filter with wavelet quadtree decomposition and median absolute deviation. It is based on
applying the discrete wavelet transform to the noisy image,
applying the QTD to each of the high frequency subbands,
applying the 4th order Wiener filter on each variable size block.,
applying the inverse wavelet transform.
It was shown that this algorithm is comparable to other algorithms like BM3D, LPG-PCA, and KSVD algorithms.
Conflict of Interests
The authors declare that there is no conflict of interests regarding the publication of this paper.
CastlemanR. K.LagendijkL. R.BiemondJ.RousseeeuwJ. P.CrouxC.Alternatives to the median absolute deviationDonohoD. L.De-noising by soft-thresholdingAntoniadisA.BigotJ.SapatinasT.Wavelet estimators in nonparametric regression: a comparative simulation studySmithC. B.AgaianS.AkopianD.A wavelet-denoising approach using polynomial threshold operatorsBuiT. D.ChenG. Y.KrzyzakA.Image denoising using neighbouring wavelet coefficientsAharonM.EladM.BrucksteinA.K-SVD: an algorithm for designing overcomplete dictionaries for sparse representationEladM.AharonM.Image denoising via sparse and redundant representations over learned dictionariesDabovK.FoiA.KatkovnikV.EgiazarianK.Image denoising by sparse 3-D transform-domain collaborative filteringEgiazarianK.DabovK.FoiA.KatkovnikV.BM3D image denoising with shape-adaptive principal component analysisProceedings of the Workshop on Signal Processing with Adaptive Sparse Structured Representations2009ZhangL.DongW.ZhangD.ShiG.Two-stage image denoising by principal component analysis with local pixel groupingEllinasJ. N.MandadelisT.TzortzisA.The statistical modeling of wavelet coefficients as a tool for image de-noisingProceedings of the 2nd International Conference on Information Technology and Quality2005KazubekM.Wavelet domain image denoising by thresholding and Wiener filteringDinizP.