summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorAndree Buschmann <AndreeBuschmann@t-online.de>2010-03-11 20:58:38 +0000
committerAndree Buschmann <AndreeBuschmann@t-online.de>2010-03-11 20:58:38 +0000
commit263e4d5cbfc32eda780f8f9f35930e1ac2b5dada (patch)
tree86aeff9620542e5d811a5ddc8934cd5f85c993ca /apps
parent398ec5281786c571d75513a5cf404a2cddea92dc (diff)
downloadrockbox-263e4d5cbfc32eda780f8f9f35930e1ac2b5dada.tar.gz
rockbox-263e4d5cbfc32eda780f8f9f35930e1ac2b5dada.zip
Minor optimization for musepack codec through moving functions to IRAM on PP processors. Speed ups codec by 0.25 MHzon PP5022.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25127 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rwxr-xr-xapps/codecs/libmusepack/mpc_bits_reader.c10
-rw-r--r--apps/codecs/libmusepack/mpc_decoder.c6
2 files changed, 9 insertions, 7 deletions
diff --git a/apps/codecs/libmusepack/mpc_bits_reader.c b/apps/codecs/libmusepack/mpc_bits_reader.c
index bc86cd1a72..fc1da31ed6 100755
--- a/apps/codecs/libmusepack/mpc_bits_reader.c
+++ b/apps/codecs/libmusepack/mpc_bits_reader.c
@@ -37,7 +37,7 @@
#include "huffman.h"
#include "mpc_bits_reader.h"
-const mpc_uint32_t Cnk[MAX_ENUM / 2][MAX_ENUM] ICONST_ATTR_MPC_LARGE_IRAM =
+const mpc_uint32_t Cnk[MAX_ENUM / 2][MAX_ENUM] =
{
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31},
{0, 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465},
@@ -57,7 +57,7 @@ const mpc_uint32_t Cnk[MAX_ENUM / 2][MAX_ENUM] ICONST_ATTR_MPC_LARGE_IRAM =
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 153, 969, 4845, 20349, 74613, 245157, 735471, 2042975, 5311735, 13037895, 30421755, 67863915, 145422675, 300540195}
};
-const mpc_uint8_t Cnk_len[MAX_ENUM / 2][MAX_ENUM] ICONST_ATTR_MPC_LARGE_IRAM =
+const mpc_uint8_t Cnk_len[MAX_ENUM / 2][MAX_ENUM] =
{
{0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5},
{0, 0, 2, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9},
@@ -78,7 +78,7 @@ const mpc_uint8_t Cnk_len[MAX_ENUM / 2][MAX_ENUM] ICONST_ATTR_MPC_LARGE_IRAM =
};
-const mpc_uint32_t Cnk_lost[MAX_ENUM / 2][MAX_ENUM] ICONST_ATTR_MPC_LARGE_IRAM =
+const mpc_uint32_t Cnk_lost[MAX_ENUM / 2][MAX_ENUM] =
{
{0, 0, 1, 0, 3, 2, 1, 0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0},
{0, 0, 1, 2, 6, 1, 11, 4, 28, 19, 9, 62, 50, 37, 23, 8, 120, 103, 85, 66, 46, 25, 3, 236, 212, 187, 161, 134, 106, 77, 47, 16},
@@ -98,10 +98,10 @@ const mpc_uint32_t Cnk_lost[MAX_ENUM / 2][MAX_ENUM] ICONST_ATTR_MPC_LARGE_IRAM =
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 103, 55, 3347, 12419, 56459, 16987, 313105, 54177, 3076873, 3739321, 3132677, 66353813, 123012781, 236330717}
};
-static const mpc_uint8_t log2[32] ICONST_ATTR_MPC_LARGE_IRAM =
+static const mpc_uint8_t log2[32] =
{ 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6};
-static const mpc_uint8_t log2_lost[32] ICONST_ATTR_MPC_LARGE_IRAM =
+static const mpc_uint8_t log2_lost[32] =
{ 0, 1, 0, 3, 2, 1, 0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 31};
mpc_int32_t mpc_bits_golomb_dec(mpc_bits_reader * r, const mpc_uint_t k)
diff --git a/apps/codecs/libmusepack/mpc_decoder.c b/apps/codecs/libmusepack/mpc_decoder.c
index 5a78c943a6..3f8fbc7aad 100644
--- a/apps/codecs/libmusepack/mpc_decoder.c
+++ b/apps/codecs/libmusepack/mpc_decoder.c
@@ -115,10 +115,12 @@ enum
//------------------------------------------------------------------------------
// forward declarations
//------------------------------------------------------------------------------
-void mpc_decoder_read_bitstream_sv7(mpc_decoder * d, mpc_bits_reader * r);
+void mpc_decoder_requantisierung (mpc_decoder *d)
+ ICODE_ATTR_MPC_LARGE_IRAM;
+void mpc_decoder_read_bitstream_sv7(mpc_decoder * d, mpc_bits_reader * r)
+ ICODE_ATTR_MPC_LARGE_IRAM;
void mpc_decoder_read_bitstream_sv8(mpc_decoder * d, mpc_bits_reader * r,
mpc_bool_t is_key_frame);
-static void mpc_decoder_requantisierung(mpc_decoder *d);
/**
* set the scf indexes for seeking use