tering a single pixel based on its neighboring pixels,
it works with patches in a particular window. In this
algorithm, a block/patch is defined around a partic-
ular pixel, referred as the reference patch. A search
window is also defined around the pixel where sim-
ilar patches of the reference patch is searched. The
patches are given a weight based on its similarity with
the reference patch. The center pixel of the refer-
ence patch is then denoised by weighted averaging
of all the patch center pixels. A number of improve-
ments has been proposed over NLM algorithm which
have achieved a slight better accuracy over the orig-
inal NLM. Some of the algorithms are: SSIM-Based
Non Local Means (Rehman and Wang, 2011), Adap-
tive Non-Local Means (Thaipanich et al., 2010) and
Non-Local Medians (Chaudhury and Singer, 2012).
In frequency domain denoising, the basic fil-
tering technique is Low Pass Filter (Gonzalez and
Woods, 2008) which allows to pass the signal with
frequencies lower than a cutoff frequency and atten-
uates signals with frequencies higher than the cut-
off frequency. Another popular filter is Weiner Fil-
ter (Wiener, 1949). It tries to estimate the noise
from a degraded image and denoise it based on this
estimation. The current state-of-art denoising tech-
nique is Block Matching and 3D Filtering (BM3D).
Detailed description of BM3D is described in Sec-
tion 2.1. A number of improvements has been pro-
posed over the BM3D algorithm. Dabov et al. in-
troduced PCA in BM3D and proposed another algo-
rithm, BM3D-SAPCA (Dabov et al., 2009). They
have also extended BM3D for color image denois-
ing (Dabov et al., 2007b) and video denoising (Dabov
et al., 2007a). Dai et al. added adaptive distance hard
thresholding in BM3D (Dai et al., 2013) and Mittal et
al. adapted machine learning based techniques to pre-
dict the noise level parameter used in BM3D (Mittal
et al., 2012). Recently structural similarity is used in
Wiener filtering part of BM3D instead of using tradi-
tional MSE (Hasan and El-Sakka, 2015).
Although BM3D achieves excellent performance
in reducing Additive White Gaussian Noise, it posses
some limitations as well. Our main study focused
on finding these limitation and provide possible so-
lutions for them. BM3D algorithm relies on a user
provided noise level for each noisy image which is
not possible for real time systems. This noise level
is very important for estimating the denoised image.
We have incorporated a noise level estimation mech-
anism without hampering the performance in this al-
gorithm to convert this as an automated system. Also,
in BM3D a hard thresholding is used for any block of
the noisy image. We have illustrated that this thresh-
olding depends on image block’s texture and noise
level. Tuning this threshold can improve the perfor-
mance of BM3D. Thus we have proposed a learning-
based adaptive hard thresholding mechanism where
each block uses different thresholds based on their
context. From a set of training images, a classifier is
trained by providing the image block as a feature and
their best threshold as a label. From a test image, the
best threshold of its different block is predicted from
this classifier. This best threshold is used in the al-
gorithm to denoise that particular block. Experiments
show that this learning-based adaptive hard threshold-
ing improves the performance of BM3D much over
the original BM3D algorithm.
2 RELATED WORK
In recent years Block Matching and 3D Filtering
(BM3D) becomes the most popular image denoising
technique. Dabov et al. first proposed the idea in 2006
(Dabov et al., 2006) and explained it thoroughly in
2007 (Dabov et al., 2007c). BM3D achieves excel-
lent performance in reducing Additive White Gaus-
sian Noise (AWGN). It has achieved the state-of-
the-art denoising performance in terms of both peak
signal-to-noise ratio and subjective visual quality. In
our work we have tried to highlight the limitations of
this algorithm and propose modifications to improve
the performance of this method.
2.1 Block Matching and 3D Filtering
(BM3D)
BM3D follows the concept of patch-based denois-
ing mechanism where instead of denoising one single
pixel, a patch/block of pixels are denoised at a time,
a concept adapted from the Non-Local Means (NLM)
algorithm (Buades et al., 2005). It was the state-of-
the-art algorithm for image denoising before BM3D,
where a single patch is denoised by finding its similar
patches from a given window. BM3D also extended
it by denoising an image using two almost identical
steps. In the first step, a basic estimate of the noisy
image is generated. This basic estimate is then passed
to the second step to generate the final denoised im-
age. The block diagram of this algorithm is shown in
Fig. 1.
2.1.1 BM3D First Step
The first step of BM3D is known as the hard thresh-
olding step because a hard thresholding is used to
eliminate noise from the image. First, the noisy image