# Denoising
* **KNLMeansCL**
```python=
video = core.knlm.KNLMeansCL(video, d, a, s, h, channels="YUV")
```
:::info
+ **d** = Set the number of past and future frame that the filter uses for denoising the current frame. d=0 uses 1 frame, while d=1 uses 3 frames and so on. Usually, larger it the better the result of the denoising.
+ **a** = Set the radius of the search window. a=0 uses 1 pixel, while a=1 uses 9 pixels and so on. Usually, larger it the better the result of the denoising.
+ **s** = Set the radius of the similarity neighbourhood window. The impact on performance is low, therefore it depends on the nature of the noise.
+ **h** = Controls the strength of the filtering. Larger values will remove more noise.
:::
==[Official Wiki](https://github.com/Khanattila/KNLMeansCL/wiki/Filter-description)==
* **BM3D**
```python=
import mvsfunc as mvs # mvsfunc script required
video = mvs.BM3D(video, sigma, radius1, profile1, matrix)
```
:::info
+ **sigma** = The strength of filtering.
+ **radius1** = Temporal radius (0 - Spatial Denoising / 1~16 - Spatial-Temporal Denoising)
+ **profile1** = Preset profile (fast, lc, np, high, very high)
+ **matrix** = color matrix of input clip.
:::
* **dfftestMC**
```python=
import muvsfunc as muf # muvsfunc script required
video = muf.dfttestMC(video, sigma, mdg=True)
```
:::info
+ **sigma** = The strength of filtering.
+ **mdg** = Run MDeGrain before dfttest (True/False)
:::