1
0
Fork 0
forked from len0rd/rockbox

opus: put arrays frequently used by pulse decoding on the stack

speeds up decoding of a 64kbps test file by 14MHz on h300 (cf)
and 1MHz on c200 (pp)

Change-Id: I852cb66808676ea51109423f5b70cfc8782dd109
This commit is contained in:
Nils Wallménius 2012-10-04 19:20:55 +02:00
parent 283277e5ab
commit 6d2ad505dc
2 changed files with 13 additions and 7 deletions

View file

@ -325,12 +325,16 @@ unsigned alg_unquant(celt_norm *X, int N, int K, int spread, int B,
int i;
opus_val32 Ryy;
unsigned collapse_mask;
VARDECL(int, iy);
SAVE_STACK;
/* VARDECL(int, iy);
SAVE_STACK; */
/* the difference between the last two values of eband5ms shifted by maxLM
which is 22 << 3 with the static mode */
int iy[176];
celt_assert2(K>0, "alg_unquant() needs at least one pulse");
celt_assert2(N>1, "alg_unquant() needs at least two dimensions");
ALLOC(iy, N, int);
/* ALLOC(iy, N, int); */
decode_pulses(iy, N, K, dec);
Ryy = 0;
i=0;
@ -340,7 +344,7 @@ unsigned alg_unquant(celt_norm *X, int N, int K, int spread, int B,
normalise_residual(iy, X, N, Ryy, gain);
exp_rotation(X, N, -1, B, K, spread);
collapse_mask = extract_collapse_mask(iy, N, B);
RESTORE_STACK;
/* RESTORE_STACK; */
return collapse_mask;
}