ffmpeg | branch: master | Paul B Mahol <[email protected]> | Mon Nov 30 14:20:45 2020 +0100| [ca0900bc6ef1db42881769528f2a3bb69e0bc492] | committer: Paul B Mahol
avfilter/af_acrossover: unroll biquad_process loop Makes code significantly faster for higher orders. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ca0900bc6ef1db42881769528f2a3bb69e0bc492 --- libavfilter/af_acrossover.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/libavfilter/af_acrossover.c b/libavfilter/af_acrossover.c index 7788251d3a..6150af7933 100644 --- a/libavfilter/af_acrossover.c +++ b/libavfilter/af_acrossover.c @@ -288,7 +288,25 @@ static void biquad_process_## name(const BiquadCoeffs *const c,\ type z1 = b->z1; \ type z2 = b->z2; \ \ - for (int n = 0; n < nb_samples; n++) { \ + for (int n = 0; n + 1 < nb_samples; n++) { \ + type in = src[n]; \ + type out; \ + \ + out = in * b0 + z1; \ + z1 = b1 * in + z2 + a1 * out; \ + z2 = b2 * in + a2 * out; \ + dst[n] = out; \ + \ + n++; \ + in = src[n]; \ + out = in * b0 + z1; \ + z1 = b1 * in + z2 + a1 * out; \ + z2 = b2 * in + a2 * out; \ + dst[n] = out; \ + } \ + \ + if (nb_samples & 1) { \ + const int n = nb_samples - 1; \ const type in = src[n]; \ type out; \ \ _______________________________________________ ffmpeg-cvslog mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
