From 83d3c8f22bab997dde81074fd547aef6e56451d5 Mon Sep 17 00:00:00 2001 From: Arun Raghavan Date: Mon, 13 Sep 2010 18:41:30 +0530 Subject: echo-cancel: orc-ify some bits for optimisation This uses Orc to optimise an inner loop in the core NLMS function of the Adrian echo canceller. --- src/modules/echo-cancel/adrian-aec.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/modules/echo-cancel/adrian-aec.c') diff --git a/src/modules/echo-cancel/adrian-aec.c b/src/modules/echo-cancel/adrian-aec.c index 39c2d638..269bd616 100644 --- a/src/modules/echo-cancel/adrian-aec.c +++ b/src/modules/echo-cancel/adrian-aec.c @@ -17,6 +17,10 @@ #include "adrian-aec.h" +#ifndef DISABLE_ORC +#include "adrian-aec-orc.h" +#endif + #ifdef __SSE__ #include #endif @@ -190,6 +194,7 @@ static REAL AEC_nlms_pw(AEC *a, REAL d, REAL x_, float stepsize) // calculate variable step size REAL mikro_ef = stepsize * ef / a->dotp_xf_xf; +#ifdef DISABLE_ORC // update tap weights (filter learning) int i; for (i = 0; i < NLMS_LEN; i += 2) { @@ -197,6 +202,9 @@ static REAL AEC_nlms_pw(AEC *a, REAL d, REAL x_, float stepsize) a->w[i] += mikro_ef * a->xf[i + a->j]; a->w[i + 1] += mikro_ef * a->xf[i + a->j + 1]; } +#else + update_tap_weights(a->w, &a->xf[a->j], mikro_ef, NLMS_LEN); +#endif } if (--(a->j) < 0) { -- cgit