Commit graph

15 commits

Author SHA1 Message Date
Jens Arnold
029e74866a Move (small) data into DRAM on PP5020, it's ~4.5% faster that way. Closes about half of the performance gap towards PP5022. The (relatively large) buffers for decoded data stay in IRAM, as does the reciprocal table. Clarify some comments.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25108 a1c6a512-1295-4272-9138-f99709370657
2010-03-10 21:39:12 +00:00
Jens Arnold
5c80a838e4 libdemac: Separate filtering calls per channel in preparation for the dual-core split on PP. This also means less inlining, and hence speeds up decoding on single core slightly, due to better caching behaviour.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25005 a1c6a512-1295-4272-9138-f99709370657
2010-03-03 21:20:13 +00:00
Andrew Mahone
436f4d3a20 Improve libdemac SATURATE slightly on ARMv4/5, move filter buffers and code out of IRAM for sizes that aren't near realtime and extend udiv32_arm reciprocal table.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24376 a1c6a512-1295-4272-9138-f99709370657
2010-01-30 02:20:54 +00:00
Jens Arnold
dca9f42cdf Fix decoding of stereo frames with silence in only one channel. * Make the standalone decoder contain debugging information.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19552 a1c6a512-1295-4272-9138-f99709370657
2008-12-21 23:49:02 +00:00
Jens Arnold
0bf6e36628 Fix handling of 8 bit mono and stereo APE files, and also optimise 16 and 24 bit output in the standalone decoder a bit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19517 a1c6a512-1295-4272-9138-f99709370657
2008-12-21 01:29:36 +00:00
Jens Arnold
797ef6585a Fix APE 16-bit mono output: mono signals need to be scaled for rockbox.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19264 a1c6a512-1295-4272-9138-f99709370657
2008-11-30 01:01:04 +00:00
Jens Arnold
5b0d74a7d3 Get rid of unused return values, except the one from decode_chunk() which will be used in the dual core split.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19236 a1c6a512-1295-4272-9138-f99709370657
2008-11-26 18:01:18 +00:00
Jens Arnold
77934cbc96 Compile-time choice between 16 bit and 32 bit integers for the filters. 32 bit filters are faster on ARMv4 (with assembler code), so use them there. Nice speedup on PP and Gigabeat F/X.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19140 a1c6a512-1295-4272-9138-f99709370657
2008-11-19 00:34:48 +00:00
Jens Arnold
1b14167861 Centralise compile-time configuration.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19121 a1c6a512-1295-4272-9138-f99709370657
2008-11-16 17:49:37 +00:00
Jens Arnold
9a0224fd28 Fix comments.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19102 a1c6a512-1295-4272-9138-f99709370657
2008-11-12 18:20:25 +00:00
Jens Arnold
d1b19be423 Various speedups: (1) Put actual decoding functions into IRAM on PP5002. (2) Put the insane filter buffer into IRAM on coldfire and PP502x (just for completeness, as long as there's no better use). (3) Use the ARMv6 'ssat' instruction for saturation on Gigabeat S.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18701 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 21:40:32 +00:00
Jens Arnold
2640bdb262 APE codec: Assembler optimised vector math routines for coldfire. -c2000 is now usable at 130% realtime (was 107%), -c3000 is near realtime (93%, was 64%). -c1000 doesn't change.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15194 a1c6a512-1295-4272-9138-f99709370657
2007-10-18 22:37:33 +00:00
Dave Chapman
601ede7f9c C optimisations to the predictor decoding - create a single function for decoding stereo streams, and reorganise to minimise the number of variables used. My -c1000 test track now decodes at 93% realtime on PortalPlayer (was 78%), 187% on Coldfire (was 170%) and 447% on Gigabeat (was 408%).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13608 a1c6a512-1295-4272-9138-f99709370657
2007-06-10 08:55:16 +00:00
Dave Chapman
7b1d90a851 Seeking and resume support for Monkey's Audio
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13597 a1c6a512-1295-4272-9138-f99709370657
2007-06-08 22:35:26 +00:00
Dave Chapman
520274219a Initial commit of Monkey's Audio (.ape/.mac) support. Note that Monkey's is an extremely CPU-intensive codec, and that the decoding speed is directly related to the compression level (-c1000, -c2000, -c3000, -c4000 or -c5000) used when encoding the file. Current performance is: -c1000 to -c3000 are realtime on a Gigabeat, -c1000 is realtime on Coldfire targets (H100, H300 and Cowon), and nothing is realtime on PortalPlayer targets (iPods, H10, Sansa). Hopefully this can be improved. More information at FS #7256.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13562 a1c6a512-1295-4272-9138-f99709370657
2007-06-05 16:58:29 +00:00