avfilter/af_afftdn: remove code that have marginal impact to denoising

release/5.1
Paul B Mahol 3 years ago
parent 707ad03096
commit ea777333de
  1. 68
      libavfilter/af_afftdn.c

@ -876,70 +876,6 @@ static int config_input(AVFilterLink *inlink)
return 0;
}
static void preprocess(AVComplexFloat *in, int len)
{
double d1, d2, d3, d4, d5, d6, d7, d8, d9, d10;
int n, i, k;
d5 = 2.0 * M_PI / len;
d8 = sin(0.5 * d5);
d8 = -2.0 * d8 * d8;
d7 = sin(d5);
d9 = 1.0 + d8;
d6 = d7;
n = len / 2;
for (i = 1; i < len / 4; i++) {
k = n - i;
d2 = 0.5 * (in[i].re + in[k].re);
d1 = 0.5 * (in[i].im - in[k].im);
d4 = 0.5 * (in[i].im + in[k].im);
d3 = 0.5 * (in[k].re - in[i].re);
in[i].re = d2 + d9 * d4 + d6 * d3;
in[i].im = d1 + d9 * d3 - d6 * d4;
in[k].re = d2 - d9 * d4 - d6 * d3;
in[k].im = -d1 + d9 * d3 - d6 * d4;
d10 = d9;
d9 += d9 * d8 - d6 * d7;
d6 += d6 * d8 + d10 * d7;
}
d2 = in[0].re;
in[0].re = d2 + in[0].im;
in[0].im = d2 - in[0].im;
}
static void postprocess(AVComplexFloat *in, int len)
{
double d1, d2, d3, d4, d5, d6, d7, d8, d9, d10;
int n, i, k;
d5 = 2.0 * M_PI / len;
d8 = sin(0.5 * d5);
d8 = -2.0 * d8 * d8;
d7 = sin(d5);
d9 = 1.0 + d8;
d6 = d7;
n = len / 2;
for (i = 1; i < len / 4; i++) {
k = n - i;
d2 = 0.5 * (in[i].re + in[k].re);
d1 = 0.5 * (in[i].im - in[k].im);
d4 = 0.5 * (in[i].re - in[k].re);
d3 = 0.5 * (in[i].im + in[k].im);
in[i].re = d2 - d9 * d3 - d6 * d4;
in[i].im = d1 + d9 * d4 - d6 * d3;
in[k].re = d2 + d9 * d3 + d6 * d4;
in[k].im = -d1 + d9 * d4 - d6 * d3;
d10 = d9;
d9 += d9 * d8 - d6 * d7;
d6 += d6 * d8 + d10 * d7;
}
d2 = in[0].re;
in[0].re = 0.5 * (d2 + in[0].im);
in[0].im = 0.5 * (d2 - in[0].im);
}
static void init_sample_noise(DeNoiseChannel *dnch)
{
for (int i = 0; i < 15; i++) {
@ -970,8 +906,6 @@ static void sample_noise_block(AudioFFTDeNoiseContext *s,
dnch->tx_fn(dnch->fft, dnch->fft_out, dnch->fft_in, sizeof(float));
preprocess(dnch->fft_out, s->fft_length);
edge = s->noise_band_edge[0];
j = edge;
k = 0;
@ -1132,12 +1066,10 @@ static int filter_channel(AVFilterContext *ctx, void *arg, int jobnr, int nb_job
dnch->tx_fn(dnch->fft, dnch->fft_out, dnch->fft_in, sizeof(float));
preprocess(dnch->fft_out, s->fft_length);
process_frame(s, dnch, dnch->fft_out,
dnch->prior,
dnch->prior_band_excit,
s->track_noise);
postprocess(dnch->fft_out, s->fft_length);
dnch->itx_fn(dnch->ifft, dnch->fft_in, dnch->fft_out, sizeof(float));

Loading…
Cancel
Save