|
|
|
@ -305,7 +305,7 @@ static void import_block(FFTdnoizContext *s, |
|
|
|
|
dst[j].re = dst[rw - 1].re; |
|
|
|
|
dst[j].im = 0.f; |
|
|
|
|
} |
|
|
|
|
s->tx_fn(s->fft[jobnr], dst_out, dst, sizeof(float)); |
|
|
|
|
s->tx_fn(s->fft[jobnr], dst_out, dst, sizeof(AVComplexFloat)); |
|
|
|
|
|
|
|
|
|
ddst = dst_out; |
|
|
|
|
dst += data_linesize; |
|
|
|
@ -327,7 +327,7 @@ static void import_block(FFTdnoizContext *s, |
|
|
|
|
for (int i = 0; i < block; i++) { |
|
|
|
|
for (int j = 0; j < block; j++) |
|
|
|
|
dst[j] = ssrc[j * data_linesize + i]; |
|
|
|
|
s->tx_fn(s->fft[jobnr], bdst, dst, sizeof(float)); |
|
|
|
|
s->tx_fn(s->fft[jobnr], bdst, dst, sizeof(AVComplexFloat)); |
|
|
|
|
|
|
|
|
|
dst += data_linesize; |
|
|
|
|
bdst += buffer_linesize; |
|
|
|
@ -361,7 +361,7 @@ static void export_block(FFTdnoizContext *s, |
|
|
|
|
buffer_linesize /= sizeof(float); |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < block; i++) { |
|
|
|
|
s->itx_fn(s->ifft[jobnr], vdst, bsrc, sizeof(float)); |
|
|
|
|
s->itx_fn(s->ifft[jobnr], vdst, bsrc, sizeof(AVComplexFloat)); |
|
|
|
|
for (int j = 0; j < block; j++) |
|
|
|
|
hdst[j * data_linesize + i] = vdst[j]; |
|
|
|
|
|
|
|
|
@ -373,7 +373,7 @@ static void export_block(FFTdnoizContext *s, |
|
|
|
|
for (int i = 0; i < rh && (y * size + i) < height; i++) { |
|
|
|
|
uint8_t *dst = dstp + dst_linesize * (y * size + i) + x * size * bpp; |
|
|
|
|
|
|
|
|
|
s->itx_fn(s->ifft[jobnr], hdst_out, hdst, sizeof(float)); |
|
|
|
|
s->itx_fn(s->ifft[jobnr], hdst_out, hdst, sizeof(AVComplexFloat)); |
|
|
|
|
s->export_row(hdst_out + hoverlap, dst, rw, depth, s->win[i + hoverlap] + hoverlap); |
|
|
|
|
|
|
|
|
|
hdst += data_linesize; |
|
|
|
@ -410,7 +410,7 @@ static void filter_block3d2(FFTdnoizContext *s, int plane, float *pbuffer, float |
|
|
|
|
buffer[2].re = nbuff[2 * j ]; |
|
|
|
|
buffer[2].im = nbuff[2 * j + 1]; |
|
|
|
|
|
|
|
|
|
s->tx_r_fn(s->fft_r[jobnr], outbuffer, buffer, sizeof(float)); |
|
|
|
|
s->tx_r_fn(s->fft_r[jobnr], outbuffer, buffer, sizeof(AVComplexFloat)); |
|
|
|
|
|
|
|
|
|
for (int z = 0; z < 3; z++) { |
|
|
|
|
const float re = outbuffer[z].re; |
|
|
|
@ -431,7 +431,7 @@ static void filter_block3d2(FFTdnoizContext *s, int plane, float *pbuffer, float |
|
|
|
|
outbuffer[z].im *= factor; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
s->itx_r_fn(s->ifft_r[jobnr], buffer, outbuffer, sizeof(float)); |
|
|
|
|
s->itx_r_fn(s->ifft_r[jobnr], buffer, outbuffer, sizeof(AVComplexFloat)); |
|
|
|
|
|
|
|
|
|
cbuff[2 * j + 0] = buffer[1].re; |
|
|
|
|
cbuff[2 * j + 1] = buffer[1].im; |
|
|
|
@ -468,7 +468,7 @@ static void filter_block3d1(FFTdnoizContext *s, int plane, float *pbuffer, |
|
|
|
|
buffer[1].re = cbuff[2 * j ]; |
|
|
|
|
buffer[1].im = cbuff[2 * j + 1]; |
|
|
|
|
|
|
|
|
|
s->tx_r_fn(s->fft_r[jobnr], outbuffer, buffer, sizeof(float)); |
|
|
|
|
s->tx_r_fn(s->fft_r[jobnr], outbuffer, buffer, sizeof(AVComplexFloat)); |
|
|
|
|
|
|
|
|
|
for (int z = 0; z < 2; z++) { |
|
|
|
|
const float re = outbuffer[z].re; |
|
|
|
@ -489,7 +489,7 @@ static void filter_block3d1(FFTdnoizContext *s, int plane, float *pbuffer, |
|
|
|
|
outbuffer[z].im *= factor; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
s->itx_r_fn(s->ifft_r[jobnr], buffer, outbuffer, sizeof(float)); |
|
|
|
|
s->itx_r_fn(s->ifft_r[jobnr], buffer, outbuffer, sizeof(AVComplexFloat)); |
|
|
|
|
|
|
|
|
|
cbuff[2 * j + 0] = buffer[1].re; |
|
|
|
|
cbuff[2 * j + 1] = buffer[1].im; |
|
|
|
|