From 8a2c480af7fd60c1f8c1f94c00676ae0d5e1e4a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nils=20Wallm=C3=A9nius?= Date: Thu, 18 Nov 2010 15:51:59 +0000 Subject: libtremor: Use larger cachesize for codebook decoding on targets with 1MB codec buffer. speedups as follows: ~3%/2MHz on high bitrate files (500kbps) on Gigabeat S ~1%/0.5MHz on high bitrate files (500kbps) on Fuze v1 ~3%/1MHz (128kbps) - 12%/7MHz (500kbps) on H300 ~2%/0.5MHz (128kbps) - 10%/3.5MHz (500kbps) on C200 v1 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28615 a1c6a512-1295-4272-9138-f99709370657 --- apps/codecs/libtremor/sharedbook.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/codecs/libtremor/sharedbook.c b/apps/codecs/libtremor/sharedbook.c index c47476b..9519976 100644 --- a/apps/codecs/libtremor/sharedbook.c +++ b/apps/codecs/libtremor/sharedbook.c @@ -391,7 +391,13 @@ int vorbis_book_init_decode(codebook *c,const static_codebook *s){ c->dec_codelengths[sortindex[n++]]=s->lengthlist[i]; _ogg_free(sortindex); +/* Use a larger cache size when we have a large codec buffer, helps decoding + speed especially on targets with slow memory and high bitrate files */ +#if CODEC_SIZE < 0x100000 c->dec_firsttablen=_ilog(c->used_entries)-4; /* this is magic */ +#else + c->dec_firsttablen=_ilog(c->used_entries)+1; /* this is magic */ +#endif if(c->dec_firsttablen<5)c->dec_firsttablen=5; if(c->dec_firsttablen>8)c->dec_firsttablen=8; -- cgit v1.1