diff options
author | Andree Buschmann <AndreeBuschmann@t-online.de> | 2011-05-16 21:47:13 +0000 |
---|---|---|
committer | Andree Buschmann <AndreeBuschmann@t-online.de> | 2011-05-16 21:47:13 +0000 |
commit | 7b054efa0be8dbc209c351610fd8152b4de89f99 (patch) | |
tree | 763bb2fe04dfadbadc0dff1e0777403cec2a2e70 /apps/codecs/libatrac/atrac3.c | |
parent | 22c9b6ef8e1e1f4354ff0fc445990512175a1649 (diff) | |
download | rockbox-7b054efa0be8dbc209c351610fd8152b4de89f99.tar.gz rockbox-7b054efa0be8dbc209c351610fd8152b4de89f99.zip |
FS#12117: Use more IRAM for atrac3. Speeds up decoding from 1-2% (PP5022, PP5024, S5L870x) to 11% (MCF5250).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29892 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libatrac/atrac3.c')
-rw-r--r-- | apps/codecs/libatrac/atrac3.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/apps/codecs/libatrac/atrac3.c b/apps/codecs/libatrac/atrac3.c index be41df5aad..711537fa96 100644 --- a/apps/codecs/libatrac/atrac3.c +++ b/apps/codecs/libatrac/atrac3.c | |||
@@ -60,12 +60,15 @@ | |||
60 | #define QMFWIN_TYPE int32_t | 60 | #define QMFWIN_TYPE int32_t |
61 | #endif | 61 | #endif |
62 | 62 | ||
63 | static VLC spectral_coeff_tab[7]; | 63 | static VLC spectral_coeff_tab[7] IBSS_ATTR_LARGE_IRAM; |
64 | static QMFWIN_TYPE qmf_window[48] IBSS_ATTR MEM_ALIGN_ATTR; | 64 | static QMFWIN_TYPE qmf_window[48] IBSS_ATTR MEM_ALIGN_ATTR; |
65 | static int32_t atrac3_spectrum [2][1024] IBSS_ATTR MEM_ALIGN_ATTR; | 65 | static int32_t atrac3_spectrum [2][1024] IBSS_ATTR MEM_ALIGN_ATTR; |
66 | static int32_t atrac3_IMDCT_buf[2][ 512] IBSS_ATTR MEM_ALIGN_ATTR; | 66 | static int32_t atrac3_IMDCT_buf[2][ 512] IBSS_ATTR MEM_ALIGN_ATTR; |
67 | static int32_t atrac3_prevFrame[2][1024] IBSS_ATTR MEM_ALIGN_ATTR; | 67 | static int32_t atrac3_prevFrame[2][1024] IBSS_ATTR MEM_ALIGN_ATTR; |
68 | static channel_unit channel_units[2] IBSS_ATTR_LARGE_IRAM; | 68 | static channel_unit channel_units[2] IBSS_ATTR_LARGE_IRAM; |
69 | static VLC_TYPE atrac3_vlc_table[4096][2] IBSS_ATTR_LARGE_IRAM; | ||
70 | static int vlcs_initialized = 0; | ||
71 | |||
69 | 72 | ||
70 | 73 | ||
71 | /** | 74 | /** |
@@ -1153,13 +1156,11 @@ int atrac3_decode_frame(unsigned long block_align, ATRAC3Context *q, | |||
1153 | * Atrac3 initialization | 1156 | * Atrac3 initialization |
1154 | * | 1157 | * |
1155 | * @param rmctx pointer to the RMContext | 1158 | * @param rmctx pointer to the RMContext |
1156 | */ | 1159 | */ |
1157 | int atrac3_decode_init(ATRAC3Context *q, struct mp3entry *id3) | 1160 | int atrac3_decode_init(ATRAC3Context *q, struct mp3entry *id3) |
1158 | { | 1161 | { |
1159 | int i; | 1162 | int i; |
1160 | uint8_t *edata_ptr = (uint8_t*)&id3->id3v2buf; | 1163 | uint8_t *edata_ptr = (uint8_t*)&id3->id3v2buf; |
1161 | static VLC_TYPE atrac3_vlc_table[4096][2]; | ||
1162 | static int vlcs_initialized = 0; | ||
1163 | 1164 | ||
1164 | #if defined(CPU_COLDFIRE) | 1165 | #if defined(CPU_COLDFIRE) |
1165 | coldfire_set_macsr(EMAC_FRACTIONAL | EMAC_SATURATE); | 1166 | coldfire_set_macsr(EMAC_FRACTIONAL | EMAC_SATURATE); |