[opus] [PATCH] Refactor silk_LPC_analysis_filter() & Optimize celt_fir_permit_overflow() for ARM NEON
Timothy B. Terriberry
tterribe at xiph.org
Wed Mar 1 18:58:29 UTC 2017
Linfeng Zhang wrote:
> xcorr_kernel() itself is great and provides many gains. The only issue
> is that calling it in a for loop makes it less efficient.
Do you think it would be possible to improve the API of xcorr_kernel()
so that calling it in a loop is more efficient?
I haven't looked at an instruction-level profile, but I find it hard to
believe that the function prologue/epilogue is really responsible for 1%
to 1.5% of the whole decoder cost. Perhaps it is just bouncing the
values in and out of memory from the NEON pipeline or something like
that which is expensive? Otherwise it seems to be doing exactly the same
things as your celt_fir() (unless I've missed something, which is
certainly possible).
The other advantage to wiring up xcorr_kernel() is that it applies in
more places than your intrinsics-only celt_fir() implementation.
More information about the opus
mailing list