1
0
Fork 0
forked from len0rd/rockbox

opus: replace copy loops with calls to memcpy

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 <nils@rockbox.org>
This commit is contained in:
Andree Buschmann 2012-10-07 12:34:54 +02:00 committed by Nils Wallménius
parent c7840e745e
commit 0ae8d16643

View file

@ -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; kiss_fft_scalar * OPUS_RESTRICT yp1 = out+N4-overlap/2;
const opus_val16 * OPUS_RESTRICT wp1 = window; const opus_val16 * OPUS_RESTRICT wp1 = window;
const opus_val16 * OPUS_RESTRICT wp2 = window+overlap-1; const opus_val16 * OPUS_RESTRICT wp2 = window+overlap-1;
for(i = 0; i< N4-overlap/2; i++)
{ i = N4-overlap/2;
*xp1 = *fp1; xp1 -= N4-overlap/2;
xp1--; fp1 -= N4-overlap/2;
fp1--; OPUS_COPY(xp1+1, fp1+1, N4-overlap/2);
}
for(; i < N4; i++) for(; i < N4; i++)
{ {
kiss_fft_scalar x1; 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); kiss_fft_scalar * OPUS_RESTRICT yp2 = out+N-1-(N4-overlap/2);
const opus_val16 * OPUS_RESTRICT wp1 = window; const opus_val16 * OPUS_RESTRICT wp1 = window;
const opus_val16 * OPUS_RESTRICT wp2 = window+overlap-1; const opus_val16 * OPUS_RESTRICT wp2 = window+overlap-1;
for(i = 0; i< N4-overlap/2; i++)
{ i = N4-overlap/2;
*xp2 = *fp2; OPUS_COPY(xp2, fp2, N4-overlap/2);
xp2++; xp2 += N4-overlap/2;
fp2++; fp2 += N4-overlap/2;
}
for(; i < N4; i++) for(; i < N4; i++)
{ {
kiss_fft_scalar x2; kiss_fft_scalar x2;