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>: ...@@ -11,6 +11,8 @@ version <next>:
- support mbedTLS based TLS - support mbedTLS based TLS
- DNN inference interface - DNN inference interface
- Reimplemented SRCNN filter using DNN inference interface - Reimplemented SRCNN filter using DNN inference interface
- adeclick filter
- adeclip filter
version 4.0: version 4.0:
......
...@@ -551,6 +551,102 @@ Set LFO range. ...@@ -551,6 +551,102 @@ Set LFO range.
Set LFO rate. Set LFO rate.
@end table @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 @section adelay
Delay one or more audio channels. Delay one or more audio channels.
......
...@@ -36,6 +36,8 @@ OBJS-$(CONFIG_ACONTRAST_FILTER) += af_acontrast.o ...@@ -36,6 +36,8 @@ OBJS-$(CONFIG_ACONTRAST_FILTER) += af_acontrast.o
OBJS-$(CONFIG_ACOPY_FILTER) += af_acopy.o OBJS-$(CONFIG_ACOPY_FILTER) += af_acopy.o
OBJS-$(CONFIG_ACROSSFADE_FILTER) += af_afade.o OBJS-$(CONFIG_ACROSSFADE_FILTER) += af_afade.o
OBJS-$(CONFIG_ACRUSHER_FILTER) += af_acrusher.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_ADELAY_FILTER) += af_adelay.o
OBJS-$(CONFIG_ADERIVATIVE_FILTER) += af_aderivative.o OBJS-$(CONFIG_ADERIVATIVE_FILTER) += af_aderivative.o
OBJS-$(CONFIG_AECHO_FILTER) += af_aecho.o OBJS-$(CONFIG_AECHO_FILTER) += af_aecho.o
......
This diff is collapsed.
...@@ -29,6 +29,8 @@ extern AVFilter ff_af_acontrast; ...@@ -29,6 +29,8 @@ extern AVFilter ff_af_acontrast;
extern AVFilter ff_af_acopy; extern AVFilter ff_af_acopy;
extern AVFilter ff_af_acrossfade; extern AVFilter ff_af_acrossfade;
extern AVFilter ff_af_acrusher; extern AVFilter ff_af_acrusher;
extern AVFilter ff_af_adeclick;
extern AVFilter ff_af_adeclip;
extern AVFilter ff_af_adelay; extern AVFilter ff_af_adelay;
extern AVFilter ff_af_aderivative; extern AVFilter ff_af_aderivative;
extern AVFilter ff_af_aecho; extern AVFilter ff_af_aecho;
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
#include "libavutil/version.h" #include "libavutil/version.h"
#define LIBAVFILTER_VERSION_MAJOR 7 #define LIBAVFILTER_VERSION_MAJOR 7
#define LIBAVFILTER_VERSION_MINOR 24 #define LIBAVFILTER_VERSION_MINOR 25
#define LIBAVFILTER_VERSION_MICRO 100 #define LIBAVFILTER_VERSION_MICRO 100
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ #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