[opus] [PATCH] Optimize silk_warped_autocorrelation_FIX() for ARM NEON
Jean-Marc Valin
jmvalin at jmvalin.ca
Sun Feb 5 00:17:15 UTC 2017
Hi Felicia,
I've had time to work through the math in the original function and I'm
pretty sure it's possible to vectorize this without the huge
prologue/epilogue.
For the simple case where order = vector size = N (but it should easily
generalize to larger order), what I came up with is:
initialize X, Y, M, C to vector of zeros
for i=0 to N+order
T = [x(i), Y(0:N-2)]
Y = M + coeff * (Y - T)
M = T
X = [x(i), X(0:N-1)]
C = C + X*Y
I think something similar to this (assuming I didn't mess up any
details) should give you the correlations in vector C. Did I miss anything?
Cheers,
Jean-Marc
On 31/01/17 12:30 PM, Felicia Lim wrote:
> Hi,
>
> Attached is a patch with arm neon optimizations for
> silk_warped_autocorrelation_FIX(). Please review.
>
> Thanks,
> Felicia
>
>
> _______________________________________________
> opus mailing list
> opus at xiph.org
> http://lists.xiph.org/mailman/listinfo/opus
>
More information about the opus
mailing list