avfilter: add afwtdn filter

This commit is contained in:
Paul B Mahol 2020-05-31 10:22:23 +02:00
parent c253b180cb
commit 6846d48fa6
6 changed files with 1413 additions and 1 deletions

View File

@ -8,6 +8,7 @@ version <next>:
- Argonaut Games CVG demuxer
- Argonaut Games CVG muxer
- Concatf protocol
- afwtdn audio filter
version 4.4:

View File

@ -1493,6 +1493,66 @@ Default value is 1.0.
This filter supports the all above options as @ref{commands}.
@section afwtdn
Reduce broadband noise from input samples using Wavelets.
A description of the accepted options follows.
@table @option
@item sigma
Set the noise sigma, allowed range is from 0 to 1.
Default value is 0.
This option controls strength of denoising applied to input samples.
Most useful way to set this option is via decibels, eg. -45dB.
@item levels
Set the number of wavelet levels of decomposition.
Allowed range is from 1 to 12.
Default value is 10.
Setting this too low make denoising performance very poor.
@item wavet
Set wavelet type for decomposition of input frame.
They are sorted by number of coefficients, from lowest to highest.
More coefficients means worse filtering speed, but overall better quality.
Available wavelets are:
@table @samp
@item sym2
@item sym4
@item rbior68
@item deb10
@item sym10
@item coif5
@item bl3
@end table
@item percent
Set percent of full denoising. Allowed range is from 0 to 100 percent.
Default value is 85 percent or partial denoising.
@item profile
If enabled, first input frame will be used as noise profile.
If first frame samples contain non-noise performance will be very poor.
@item adaptive
If enabled, input frames are analyzed for presence of noise.
If noise is detected with high possibility then input frame profile will be
used for processing following frames, until new noise frame is detected.
@item samples
Set size of single frame in number of samples. Allowed range is from 512 to
65536. Default frame size is 8192 samples.
@item softness
Set softness applied inside thresholding function. Allowed range is from 0 to
10. Default softness is 1.
@end table
@subsection Commands
This filter supports the all above options as @ref{commands}.
@section agate
A gate is mainly used to reduce lower parts of a signal. This kind of signal

View File

@ -53,6 +53,7 @@ OBJS-$(CONFIG_AFFTFILT_FILTER) += af_afftfilt.o
OBJS-$(CONFIG_AFIR_FILTER) += af_afir.o
OBJS-$(CONFIG_AFORMAT_FILTER) += af_aformat.o
OBJS-$(CONFIG_AFREQSHIFT_FILTER) += af_afreqshift.o
OBJS-$(CONFIG_AFWTDN_FILTER) += af_afwtdn.o
OBJS-$(CONFIG_AGATE_FILTER) += af_agate.o
OBJS-$(CONFIG_AIIR_FILTER) += af_aiir.o
OBJS-$(CONFIG_AINTEGRAL_FILTER) += af_aderivative.o

1349
libavfilter/af_afwtdn.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -46,6 +46,7 @@ extern const AVFilter ff_af_afftfilt;
extern const AVFilter ff_af_afir;
extern const AVFilter ff_af_aformat;
extern const AVFilter ff_af_afreqshift;
extern const AVFilter ff_af_afwtdn;
extern const AVFilter ff_af_agate;
extern const AVFilter ff_af_aiir;
extern const AVFilter ff_af_aintegral;

View File

@ -30,7 +30,7 @@
#include "libavutil/version.h"
#define LIBAVFILTER_VERSION_MAJOR 8
#define LIBAVFILTER_VERSION_MINOR 0
#define LIBAVFILTER_VERSION_MINOR 1
#define LIBAVFILTER_VERSION_MICRO 103