diff options
author | Thom Johansen <thomj@rockbox.org> | 2007-10-24 22:39:08 +0000 |
---|---|---|
committer | Thom Johansen <thomj@rockbox.org> | 2007-10-24 22:39:08 +0000 |
commit | cd9fc7a2b95204f0169e20409583278a13fe1ded (patch) | |
tree | 23f66a76141a583b747785d16a891691c5358916 /apps/codecs/libspeex/filters.c | |
parent | fb709522283bfb7558bf2b824a4143a919d59e97 (diff) | |
download | rockbox-cd9fc7a2b95204f0169e20409583278a13fe1ded.tar.gz rockbox-cd9fc7a2b95204f0169e20409583278a13fe1ded.zip |
Coldfire assembler version of qmf_synth(). Wideband and ultra-wideband Speex files should see a great speedup. Also add faster and symmetric clipping in iir_mem16().
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15292 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libspeex/filters.c')
-rw-r--r-- | apps/codecs/libspeex/filters.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/apps/codecs/libspeex/filters.c b/apps/codecs/libspeex/filters.c index 02f93a27b1..e64f087a5d 100644 --- a/apps/codecs/libspeex/filters.c +++ b/apps/codecs/libspeex/filters.c | |||
@@ -47,6 +47,7 @@ | |||
47 | #include "filters_arm4.h" | 47 | #include "filters_arm4.h" |
48 | #elif defined (COLDFIRE_ASM) | 48 | #elif defined (COLDFIRE_ASM) |
49 | #define OVERRIDE_IIR_MEM16 | 49 | #define OVERRIDE_IIR_MEM16 |
50 | #define OVERRIDE_QMF_SYNTH | ||
50 | #elif defined (BFIN_ASM) | 51 | #elif defined (BFIN_ASM) |
51 | #include "filters_bfin.h" | 52 | #include "filters_bfin.h" |
52 | #endif | 53 | #endif |
@@ -475,6 +476,7 @@ void qmf_decomp(const spx_word16_t *xx, const spx_word16_t *aa, spx_word16_t *y1 | |||
475 | } | 476 | } |
476 | } | 477 | } |
477 | 478 | ||
479 | #ifndef OVERRIDE_QMF_SYNTH | ||
478 | /* Re-synthesised a signal from the QMF low-band and high-band signals */ | 480 | /* Re-synthesised a signal from the QMF low-band and high-band signals */ |
479 | void qmf_synth(const spx_word16_t *x1, const spx_word16_t *x2, const spx_word16_t *a, spx_word16_t *y, int N, int M, spx_word32_t *mem1, spx_word32_t *mem2, char *stack) | 481 | void qmf_synth(const spx_word16_t *x1, const spx_word16_t *x2, const spx_word16_t *a, spx_word16_t *y, int N, int M, spx_word32_t *mem1, spx_word32_t *mem2, char *stack) |
480 | /* assumptions: | 482 | /* assumptions: |
@@ -566,6 +568,7 @@ void qmf_synth(const spx_word16_t *x1, const spx_word16_t *x2, const spx_word16_ | |||
566 | for (i = 0; i < M2; i++) | 568 | for (i = 0; i < M2; i++) |
567 | mem2[2*i+1] = xx2[i]; | 569 | mem2[2*i+1] = xx2[i]; |
568 | } | 570 | } |
571 | #endif | ||
569 | 572 | ||
570 | #ifdef FIXED_POINT | 573 | #ifdef FIXED_POINT |
571 | #if 0 | 574 | #if 0 |