bm3d
ffmpeg -y -threads 16 -i input.mp4 -filter_complex "bm3d=sigma=5:block=4:bstep=2:group=1:estim=basic" output.mp4
ffmpeg -y -threads 16 -s 1920x1080 -i 5frame_1920x1080.yuv -filter_complex "bm3d=sigma=10:block=4:bstep=2:group=1:estim=basic" out.yuv
'sigma'
Set denoising strength. Default value is 1. Allowed range is from 0 to 999.9
http://underpop.online.fr/f/ffmpeg/help/bm3d.htm.gz
注意:ffmpeg需要4.3.1版本
nlm
ffmpeg -s $wx$h -pix_fmt yuv420p -i $input -vf nlmeans=h=2:range=3:temporal=1 $output
-vf nlmeans=h=2:range=3:temporal=1 为参数调节
官网
The filter is named nlmeans and has the following parameters:
h - averaging weight decay parameter (larger values give smoother videos).
range - spatial search range (default=3), should be odd number.
temporal - number of frames to include into search (default=2).
patchsize - pixel context region width (default=7, little need to change), should be odd number.
The default values (h=8, range=3, temporal=2) are a good starting point for the restoration of very noisy video (old VHS tapes).You may also try 10;5;3 for really noisy inputs or 6;3;1 for good quality inputs.
It is also interesting to note that one can simply apply the filter on interlaced material. The algorithm itself is robust enough to handle this nicely without artifacts.
https://www.dirk-farin.net/projects/nlmeans/index.html