Commit e28b1fa6 authored by Paul B Mahol's avatar Paul B Mahol

avfilter: add adeclick and adeclip audio filters

Signed-off-by: 's avatarPaul B Mahol <onemda@gmail.com>
parent 9827bb88
......@@ -11,6 +11,8 @@ version <next>:
- support mbedTLS based TLS
- DNN inference interface
- Reimplemented SRCNN filter using DNN inference interface
- adeclick filter
- adeclip filter
version 4.0:
......
......@@ -551,6 +551,102 @@ Set LFO range.
Set LFO rate.
@end table
@section adeclick
Remove impulsive noise from input audio.
Samples detected as impulsive noise are replaced by interpolated samples using
autoregressive modelling.
@table @option
@item w
Set window size, in milliseconds. Allowed range is from @code{10} to
@code{100}. Default value is @code{55} milliseconds.
This sets size of window which will be processed at once.
@item o
Set window overlap, in percentage of window size. Allowed range is from
@code{50} to @code{95}. Default value is @code{75} percent.
Setting this to a very high value increases impulsive noise removal but makes
whole process much slower.
@item a
Set autoregression order, in percentage of window size. Allowed range is from
@code{0} to @code{25}. Default value is @code{2} percent. This option also
controls quality of interpolated samples using neighbour good samples.
@item t
Set threshold value. Allowed range is from @code{1} to @code{100}.
Default value is @code{2}.
This controls the strength of impulsive noise which is going to be removed.
The lower value, the more samples will be detected as impulsive noise.
@item b
Set burst fusion, in percentage of window size. Allowed range is @code{0} to
@code{10}. Default value is @code{2}.
If any two samples deteced as noise are spaced less than this value then any
sample inbetween those two samples will be also detected as noise.
@item m
Set overlap method.
It accepts the following values:
@table @option
@item a
Select overlap-add method. Even not interpolated samples are slightly
changed with this method.
@item s
Select overlap-save method. Not interpolated samples remain unchanged.
@end table
Default value is @code{a}.
@end table
@section adeclip
Remove clipped samples from input audio.
Samples detected as clipped are replaced by interpolated samples using
autoregressive modelling.
@table @option
@item w
Set window size, in milliseconds. Allowed range is from @code{10} to @code{100}.
Default value is @code{55} milliseconds.
This sets size of window which will be processed at once.
@item o
Set window overlap, in percentage of window size. Allowed range is from @code{50}
to @code{95}. Default value is @code{75} percent.
@item a
Set autoregression order, in percentage of window size. Allowed range is from
@code{0} to @code{25}. Default value is @code{8} percent. This option also controls
quality of interpolated samples using neighbour good samples.
@item t
Set threshold value. Allowed range is from @code{1} to @code{100}.
Default value is @code{10}. Higher values make clip detection less aggressive.
@item n
Set size of histogram used to detect clips. Allowed range is from @code{100} to @code{9999}.
Default value is @code{1000}. Higher values make clip detection less aggressive.
@item m
Set overlap method.
It accepts the following values:
@table @option
@item a
Select overlap-add method. Even not interpolated samples are slightly changed
with this method.
@item s
Select overlap-save method. Not interpolated samples remain unchanged.
@end table
Default value is @code{a}.
@end table
@section adelay
Delay one or more audio channels.
......
......@@ -36,6 +36,8 @@ OBJS-$(CONFIG_ACONTRAST_FILTER) += af_acontrast.o
OBJS-$(CONFIG_ACOPY_FILTER) += af_acopy.o
OBJS-$(CONFIG_ACROSSFADE_FILTER) += af_afade.o
OBJS-$(CONFIG_ACRUSHER_FILTER) += af_acrusher.o
OBJS-$(CONFIG_ADECLICK_FILTER) += af_adeclick.o
OBJS-$(CONFIG_ADECLIP_FILTER) += af_adeclick.o
OBJS-$(CONFIG_ADELAY_FILTER) += af_adelay.o
OBJS-$(CONFIG_ADERIVATIVE_FILTER) += af_aderivative.o
OBJS-$(CONFIG_AECHO_FILTER) += af_aecho.o
......
This diff is collapsed.
......@@ -29,6 +29,8 @@ extern AVFilter ff_af_acontrast;
extern AVFilter ff_af_acopy;
extern AVFilter ff_af_acrossfade;
extern AVFilter ff_af_acrusher;
extern AVFilter ff_af_adeclick;
extern AVFilter ff_af_adeclip;
extern AVFilter ff_af_adelay;
extern AVFilter ff_af_aderivative;
extern AVFilter ff_af_aecho;
......
......@@ -30,7 +30,7 @@
#include "libavutil/version.h"
#define LIBAVFILTER_VERSION_MAJOR 7
#define LIBAVFILTER_VERSION_MINOR 24
#define LIBAVFILTER_VERSION_MINOR 25
#define LIBAVFILTER_VERSION_MICRO 100
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment