Left: original crop from raw image taken at ISO800, Middle: Denoised using bm3d-gpu (sigma=10, twostep), Right: Denoised using darktable 2.4.0 profiled denoise (non-local means and wavelets blend)

Block-matching and 3D filtering (BM3D) is a 3-D block-matching algorithm used primarily for noise reduction in images.[1] It is one of the expansions of the non-local means methodology.[2] There are two cascades in BM3D: a hard-thresholding and a Wiener filter stage, both involving the following parts: grouping, collaborative filtering, and aggregation. This algorithm depends on an augmented representation in the transformation site.[3]



Image fragments are grouped together based on similarity, but unlike standard k-means clustering and such cluster analysis methods, the image fragments are not necessarily disjoint. This block-matching algorithm is less computationally demanding and is useful later on in the aggregation step. Fragments do however have the same size. A fragment is grouped if its dissimilarity with a reference fragment falls below a specified threshold. This grouping technique is called block-matching, it is typically used to group similar groups across different frames of a digital video, BM3D on the other hand may group macroblocks within a single frame. All image fragments in a group are then stacked to form 3D cylinder-like shapes.

Collaborative filtering

Filtering is done on every fragments group. A [clarification needed] dimensional linear transform is applied, followed by a transform-domain shrinkage such as Wiener filtering, then the linear transform is inverted to reproduce all (filtered) fragments.


The image is transformed back into its two-dimensional form. All overlapping image fragments are weight-averaged to ensure that they are filtered for noise yet retain their distinct signal.


Color images

RGB images can be processed much like grayscale ones. A luminance-chrominance transformation should be applied to the RGB image. The grouping is then completed on the luminance channel which contains most of the useful information and a higher SNR. This approach works because the noise in the chrominance channels is strongly correlated to that of the luminance channel, and it saves approximately one-third of the computing time because grouping takes up approximately half of the required computing time.


The BM3D algorithm has been extended (IDD-BM3D) to perform decoupled deblurring and denoising using the Nash equilibrium balance of the two objective functions.[4]

Convolutional neural network

An approach that integrates a convolutional neural network has been proposed and shows better results (albeit with a slower runtime).[5] MATLAB code has been released for research purpose.[6]



  1. ^ Dabov, Kostadin; Foi, Alessandro; Katkovnik, Vladimir; Egiazarian, Karen (16 July 2007). "Image denoising by sparse 3D transform-domain collaborative filtering". IEEE Transactions on Image Processing. 16 (8): 2080–2095. Bibcode:2007ITIP...16.2080D. CiteSeerX doi:10.1109/TIP.2007.901238. PMID 17688213. S2CID 1475121.
  2. ^ Manjón, José V.; Carbonell-Caballero, José; Lull, Juan J.; García-Martí, Gracián; Martí-Bonmatí, Luís; Robles, Montserrat (2008-08-01). "MRI denoising using Non-Local Means". Medical Image Analysis. 12 (4): 514–523. doi:10.1016/j.media.2008.02.004. ISSN 1361-8415. PMID 18381247.
  3. ^ Maggioni, M.; Katkovnik, V.; Egiazarian, K.; Foi, A. (January 2013). "Nonlocal Transform-Domain Filter for Volumetric Data Denoising and Reconstruction". IEEE Transactions on Image Processing. 22 (1): 119–133. doi:10.1109/TIP.2012.2210725. ISSN 1057-7149. PMID 22868570. S2CID 1295558.
  4. ^ Danielyan, Aram; Katkovnik, Vladimir; Egiazarian, Karen (30 June 2011). "BM3D Frames and Variational Image Deblurring". IEEE Transactions on Image Processing. 21 (4): 1715–28. arXiv:1106.6180. Bibcode:2012ITIP...21.1715D. doi:10.1109/TIP.2011.2176954. PMID 22128008. S2CID 11204616.
  5. ^ Ahn, Byeongyong; Ik Cho, Nam (3 April 2017). "Block-Matching Convolutional Neural Network for Image Denoising". arXiv:1704.00524 [Vision and Pattern Recognition Computer Vision and Pattern Recognition].
  6. ^ "BMCNN-ISPL". Seoul National University. Retrieved 3 January 2018.
  7. ^ "LASIP - Legal Notice". Tampere University of Technology (TUT). Retrieved 2 January 2018.
  8. ^ Lebrun, Marc (8 August 2012). "An Analysis and Implementation of the BM3D Image Denoising Method". Image Processing on Line. 2: 175–213. doi:10.5201/ipol.2012.l-bm3d.