rockbox/apps/codecs/demac/libdemac
Jens Arnold 1600e4918e Tiny performance improvement for the (not yet usable) compression levels >= -c2000 on ARM7TDMI, utilizing the multiplier's early termination.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19099 a1c6a512-1295-4272-9138-f99709370657
2008-11-12 09:18:36 +00:00
..
crc.c
decoder.c 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. 2008-10-03 21:40:32 +00:00
decoder.h
demac.h
demac_iram.h 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. 2008-10-03 21:40:32 +00:00
entropy.c Some entropy decoder tweaks. Also removed unnecessary 'tmp' variables. 2008-11-04 23:46:04 +00:00
entropy.h
filter.c Fix warnings on non-arm targets. 2008-10-03 21:52:47 +00:00
filter.h
filter_16_11.c
filter_32_10.c
filter_64_11.c
filter_256_13.c
filter_1280_15.c
Makefile Seeking and resume support for Monkey's Audio 2007-06-08 22:35:26 +00:00
parser.c Define and use a local APE_MAX function to make the standalone demac decoder compile again. 2007-06-09 00:58:15 +00:00
parser.h ARM assembler predictor decoding function. This increases my -c1000 test track from around 94% realtime on an ipod to around 104% realtime, but yields only a tiny speedup (453% to 455%) on the Gigabeat. Including this optimisation, total decoding time for my 245.70s -c1000 test track on an ipod is 236.06s, with the predictor decoding taking 51.40s of that time - meaning the predictor decoding is only about 22% of the total decoding time. 2007-06-13 22:02:34 +00:00
predictor-arm.S 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. 2008-10-03 21:40:32 +00:00
predictor-cf.S Shuffle some instructions around for that extra percent of performance. Fix a bunch of comments. 2007-10-19 22:57:19 +00:00
predictor.c 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. 2008-10-03 21:40:32 +00:00
predictor.h 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%). 2007-06-10 08:55:16 +00:00
rangecoding.h Further optimised (vs. libgcc) unsigned 32 bit division for ARMv4 (based on the ARMv5(+) version from libgcc), in IRAM on PP for better performance on PP5002, and put into the codeclib for possible reuse. APE -c1000 is now usable on both PP502x and PP5002 (~138% realtime, they're on par now). Gigabeat F/X should also see an APE speedup. 2008-11-05 00:10:05 +00:00
SOURCES APE codec: Assembler optimised predictor for coldfire. Heavily based on the arm version atm, instruction reordering will probably allow for a bit more speedup soon. Speedup: -c1000: 177% -> 210%, -c2000: 135% -> 147%, -c3000: 97% -> 103%. 2007-10-19 21:35:07 +00:00
vector_math16.h
vector_math16_arm7.h Tiny performance improvement for the (not yet usable) compression levels >= -c2000 on ARM7TDMI, utilizing the multiplier's early termination. 2008-11-12 09:18:36 +00:00
vector_math16_armv5te.h Add preliminary ARMv5te optimisations (verified working, but can probably be sped up further), and fix a comment in the ARMv6 code. 2008-10-03 09:33:36 +00:00
vector_math16_armv6.h Another minor improvement: better pipelining and one less register used in vector addition/ subtraction. 2008-10-07 20:52:42 +00:00
vector_math16_cf.h Further optimised the filter vector math assembly for coldfire, and added assembly filter vector math for ARM. Both make use of the fact that the first argument of the vector functions is longword aligned. * The ARM version is tailored for ARM7TDMI, and would slow down arm9 or higher. Introduced a new CPU_ macro for ARM7TDMI. Speedup for coldfire: -c3000 104%->109%, -c4000 43%->46%, -c5000 1.7%->2.0%. Speedup for PP502x: -c2000 66%->75%, -c3000 37%->48%, -c4000 11%->18%, -c5000 2.5%->3.7% 2007-10-25 18:58:16 +00:00