From 800e3d9a978b246c3a49bd51e65b4de94fa668e4 Mon Sep 17 00:00:00 2001 From: Andree Buschmann Date: Mon, 15 Feb 2010 22:38:01 +0000 Subject: Major optimization of atrac3 codec for Coldfire targets. Moving several number cruncher arrays to IRAM. Decoder is sped up by +50% on h300, decoder now finally is realtime on Coldfire targets as well. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24677 a1c6a512-1295-4272-9138-f99709370657 --- apps/codecs/libatrac/atrac3.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'apps/codecs/libatrac/atrac3.h') diff --git a/apps/codecs/libatrac/atrac3.h b/apps/codecs/libatrac/atrac3.h index a817db2b55..5bed9c60bf 100644 --- a/apps/codecs/libatrac/atrac3.h +++ b/apps/codecs/libatrac/atrac3.h @@ -3,10 +3,12 @@ #if (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024) || (CONFIG_CPU == MCF5250) /* PP5022/24 and MCF5250 have larger IRAM */ -#define IBSS_ATTR_LARGE_IRAM IBSS_ATTR +#define IBSS_ATTR_LARGE_IRAM IBSS_ATTR +#define ICODE_ATTR_LARGE_IRAM ICODE_ATTR #else /* other CPUs IRAM is not large enough */ #define IBSS_ATTR_LARGE_IRAM +#define ICODE_ATTR_LARGE_IRAM #endif /* These structures are needed to store the parsed gain control data. */ @@ -30,12 +32,12 @@ typedef struct { int bandsCoded; int numComponents; tonal_component components[64]; - int32_t prevFrame[1024]; + int32_t *prevFrame; int gcBlkSwitch; gain_block gainBlock[2]; - int32_t spectrum[1024] __attribute__((aligned(16))); - int32_t IMDCT_buf[1024] __attribute__((aligned(16))); + int32_t *spectrum; + int32_t *IMDCT_buf; int32_t delayBuf1[46]; ///