Implementation of VBM3D and Some Variants
Thibaud Ehret, Pablo Arias
Thibaud Ehret, and Pablo Arias, Implementation of VBM3D and Some Variants, Image Processing On Line, 11 (2021), pp. 374–395.

Communicated by Julie Delon
Demo edited by Thibaud Ehret


VBM3D is an extension to video of the well-known image denoising algorithm BM3D, which takes advantage of the sparse representation of stacks of similar patches in a transform domain. The extension is rather straightforward: the similar 2D patches are taken from a spatio-temporal neighborhood which includes neighboring frames. In spite of its simplicity, the algorithm offers a good trade-off between denoising performance and computational complexity. In this work we revisit this method, providing an open-source C++ implementation reproducing the results. A detailed description is given and the choice of parameters is thoroughly discussed. Furthermore, we study and compare several extensions of the original algorithm: (1) a multiscale implementation, (2) the use of 3D patches, (3) the use of optical flow to guide the patch search. These extensions yield results which are competitive with the most recent state of the art.