From 0ae8d16643fac1ba935a4e5303cc423655fb3ff7 Mon Sep 17 00:00:00 2001 From: Andree Buschmann Date: Sun, 7 Oct 2012 12:34:54 +0200 Subject: opus: replace copy loops with calls to memcpy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit speeds up decoding of a 64kbps test file by 0.5Hz on h300 (cf) 0.9MHz on c200 (pp) and 0.2MHz on fuzev1 (amsv1) Change-Id: Ib537c2393fa6dca0b61e4e9f80eef5e688c2c2bd Signed-off-by: Nils Wallménius --- lib/rbcodec/codecs/libopus/celt/mdct.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/lib/rbcodec/codecs/libopus/celt/mdct.c b/lib/rbcodec/codecs/libopus/celt/mdct.c index 8fc1b54db7..0f9af9eac4 100644 --- a/lib/rbcodec/codecs/libopus/celt/mdct.c +++ b/lib/rbcodec/codecs/libopus/celt/mdct.c @@ -305,12 +305,11 @@ void clt_mdct_backward(const mdct_lookup *l, kiss_fft_scalar *in, kiss_fft_scala kiss_fft_scalar * OPUS_RESTRICT yp1 = out+N4-overlap/2; const opus_val16 * OPUS_RESTRICT wp1 = window; const opus_val16 * OPUS_RESTRICT wp2 = window+overlap-1; - for(i = 0; i< N4-overlap/2; i++) - { - *xp1 = *fp1; - xp1--; - fp1--; - } + + i = N4-overlap/2; + xp1 -= N4-overlap/2; + fp1 -= N4-overlap/2; + OPUS_COPY(xp1+1, fp1+1, N4-overlap/2); for(; i < N4; i++) { kiss_fft_scalar x1; @@ -327,12 +326,11 @@ void clt_mdct_backward(const mdct_lookup *l, kiss_fft_scalar *in, kiss_fft_scala kiss_fft_scalar * OPUS_RESTRICT yp2 = out+N-1-(N4-overlap/2); const opus_val16 * OPUS_RESTRICT wp1 = window; const opus_val16 * OPUS_RESTRICT wp2 = window+overlap-1; - for(i = 0; i< N4-overlap/2; i++) - { - *xp2 = *fp2; - xp2++; - fp2++; - } + + i = N4-overlap/2; + OPUS_COPY(xp2, fp2, N4-overlap/2); + xp2 += N4-overlap/2; + fp2 += N4-overlap/2; for(; i < N4; i++) { kiss_fft_scalar x2; -- cgit v1.2.3