diff options
author | Andree Buschmann <AndreeBuschmann@t-online.de> | 2010-02-15 22:38:01 +0000 |
---|---|---|
committer | Andree Buschmann <AndreeBuschmann@t-online.de> | 2010-02-15 22:38:01 +0000 |
commit | 800e3d9a978b246c3a49bd51e65b4de94fa668e4 (patch) | |
tree | 6727bee5239af68e68123abf27a39a681b958f67 /apps/codecs/libatrac/atrac3.h | |
parent | 86fc47c33a63b1797219610aa55846adb2f0c19b (diff) | |
download | rockbox-800e3d9a978b246c3a49bd51e65b4de94fa668e4.tar.gz rockbox-800e3d9a978b246c3a49bd51e65b4de94fa668e4.zip |
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
Diffstat (limited to 'apps/codecs/libatrac/atrac3.h')
-rw-r--r-- | apps/codecs/libatrac/atrac3.h | 10 |
1 files changed, 6 insertions, 4 deletions
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 @@ | |||
3 | 3 | ||
4 | #if (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024) || (CONFIG_CPU == MCF5250) | 4 | #if (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024) || (CONFIG_CPU == MCF5250) |
5 | /* PP5022/24 and MCF5250 have larger IRAM */ | 5 | /* PP5022/24 and MCF5250 have larger IRAM */ |
6 | #define IBSS_ATTR_LARGE_IRAM IBSS_ATTR | 6 | #define IBSS_ATTR_LARGE_IRAM IBSS_ATTR |
7 | #define ICODE_ATTR_LARGE_IRAM ICODE_ATTR | ||
7 | #else | 8 | #else |
8 | /* other CPUs IRAM is not large enough */ | 9 | /* other CPUs IRAM is not large enough */ |
9 | #define IBSS_ATTR_LARGE_IRAM | 10 | #define IBSS_ATTR_LARGE_IRAM |
11 | #define ICODE_ATTR_LARGE_IRAM | ||
10 | #endif | 12 | #endif |
11 | 13 | ||
12 | /* These structures are needed to store the parsed gain control data. */ | 14 | /* These structures are needed to store the parsed gain control data. */ |
@@ -30,12 +32,12 @@ typedef struct { | |||
30 | int bandsCoded; | 32 | int bandsCoded; |
31 | int numComponents; | 33 | int numComponents; |
32 | tonal_component components[64]; | 34 | tonal_component components[64]; |
33 | int32_t prevFrame[1024]; | 35 | int32_t *prevFrame; |
34 | int gcBlkSwitch; | 36 | int gcBlkSwitch; |
35 | gain_block gainBlock[2]; | 37 | gain_block gainBlock[2]; |
36 | 38 | ||
37 | int32_t spectrum[1024] __attribute__((aligned(16))); | 39 | int32_t *spectrum; |
38 | int32_t IMDCT_buf[1024] __attribute__((aligned(16))); | 40 | int32_t *IMDCT_buf; |
39 | 41 | ||
40 | int32_t delayBuf1[46]; ///<qmf delay buffers | 42 | int32_t delayBuf1[46]; ///<qmf delay buffers |
41 | int32_t delayBuf2[46]; | 43 | int32_t delayBuf2[46]; |