ffmpeg去噪算法

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

上一篇:window下 java通过FFmpeg实现视频格式转换


下一篇:AS集成FFmpeg