summaryrefslogtreecommitdiff
path: root/apps/codecs/lib (follow)
Commit message (Collapse)AuthorAge
* Move udiv32_arm.S into libdemac, as this divider is specialized for the APE ↵Andrew Mahone2010-02-04
| | | | | | codec and an optimized divider is already provided for general use in codeclib. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24506 a1c6a512-1295-4272-9138-f99709370657
* Reduce reciprocal table size a bit on Nano 2nd Gen as well (fix red).Jens Arnold2010-02-02
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24474 a1c6a512-1295-4272-9138-f99709370657
* APE codec: Speed up decoding of -c2000 and higher on ARMv4 and coldfire by ↵Jens Arnold2010-02-02
| | | | | | fusing vector math for the filters. Speedup is roughly 3.5% for -c2000, 8% for -c3000 and 12% for -c4000. To be extended to other architectures. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24473 a1c6a512-1295-4272-9138-f99709370657
* FS#10943, optimized division and clz routines to replace libgcc routines for ↵Andrew Mahone2010-02-01
| | | | | | ARM. Replaces libgcc support functions for unsigned and signed 32-bit division on ARMv4 and up, and leading-zero count on ARMv4. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24432 a1c6a512-1295-4272-9138-f99709370657
* Improve libdemac SATURATE slightly on ARMv4/5, move filter buffers and code ↵Andrew Mahone2010-01-30
| | | | | | 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
* Small fix for ARMv5e/v6 APE divider, correct large-divisor path and remove ↵Andrew Mahone2010-01-28
| | | | | | specialized version of it for small dividend, as the test and branch can't be fit into delay slots on that path. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24360 a1c6a512-1295-4272-9138-f99709370657
* Fix red: smlal operand ordering in udiv32_arm.SAndrew Mahone2010-01-28
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24355 a1c6a512-1295-4272-9138-f99709370657
* Improvements to specialized dividers for APE codec:Andrew Mahone2010-01-28
| | | | | | | | | * Use Newton-Raphson divider on ARMv5e and ARMv6, about 7% speedup on Gigabeat S. * On ARMv4 targets using IRAM, remove insane filter buffer from IRAM, fill available IRAM with LUT of reciprocals for small divisors - speedup varies according to target and available IRAM, APE normal sample is approx. 109% RT on e200. * Rename apps/codecs/lib/udiv32_armv4.S to apps/codecs/lib/udiv32_arm.S, which includes dividers for all ARM targets specialized for APE. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24354 a1c6a512-1295-4272-9138-f99709370657
* Invert divisor earlier in udiv32_arm, allowing the div0 test to be done ↵Andrew Mahone2010-01-03
| | | | | | before entering the 32-bit divide portion of the code, and making the handling of div0 simpler. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24166 a1c6a512-1295-4272-9138-f99709370657
* More tabs removedAndree Buschmann2010-01-03
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24157 a1c6a512-1295-4272-9138-f99709370657
* Use long jump to reach __div0 from udiv32_arm if building with IRAM and ↵Andrew Mahone2010-01-03
| | | | | | without EABI. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24152 a1c6a512-1295-4272-9138-f99709370657
* More comments for udiv32_armv4.S, reduce zero divisor test to one cycle for ↵Andrew Mahone2010-01-03
| | | | | | the skipped branch by setting flags when inverting divisor, 32-bit numerators are handled by calling the 31-bit divider and fixing the results. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24151 a1c6a512-1295-4272-9138-f99709370657
* Add missing EOF newline.Andrew Mahone2010-01-02
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24143 a1c6a512-1295-4272-9138-f99709370657
* Remove special cases from udiv32_armv4.S, except for zero divisor and large ↵Andrew Mahone2010-01-02
| | | | | | numerator. Improvement of 1.23MHz on e200 with ape normal. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24142 a1c6a512-1295-4272-9138-f99709370657
* Add 31/31-bit unsigned division in apps/codecs/lib/udiv_arm.S, with 2 cycles ↵Andrew Mahone2009-12-31
| | | | | | / iteration, falling back to previous 32-bit, 3 cycle / iteration code when needed (well under 1% of divisions in sample file). APE normal sample is now 96.90% realtime, approx 1.3% improved vs svn. TODO: unify divisor normalization for both trial subtraction routines, possibly use divisor bits to select 31- vs 32-bit division. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24130 a1c6a512-1295-4272-9138-f99709370657
* Improved bitrev12, using a larger LUT to save one lookup, speeds up vorbis ↵Nils Wallménius2009-12-13
| | | | | | about 2% on beast, about 0.5% on h300 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23973 a1c6a512-1295-4272-9138-f99709370657
* Remove some sample functions from codeclib - these were for verifying the ↵Andrew Mahone2009-12-09
| | | | | | generated asm for bs_generic and never intended for use. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23911 a1c6a512-1295-4272-9138-f99709370657
* Extend av_log2 in codeclib into a generic for scanning for set bits, which ↵Andrew Mahone2009-12-09
| | | | | | can provide either log2 or leading-zero-count output, and can force mapping 0 input to 0 output if needed (otherwise 0 input produces undefined result). Replace av_log2 in lib/codeclib.h, floor_log2 and wl_min_lzc in libfaad/common.c and common.h, and count_leading_zeros in libalac/alac.c with macros using bs_generic. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23903 a1c6a512-1295-4272-9138-f99709370657
* Fix red: av_log2 undefined for ARM_ARCH <= 4, missing codeclib.h includes.Andrew Mahone2009-12-06
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23869 a1c6a512-1295-4272-9138-f99709370657
* slightly faster asm av_log2 for armv6 (currently only Gigabeat S)Nils Wallménius2009-12-06
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23868 a1c6a512-1295-4272-9138-f99709370657
* Fix yellow: mixed signed/unsigned in conditional.Andrew Mahone2009-12-05
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23867 a1c6a512-1295-4272-9138-f99709370657
* Slightly improve av_log2 in codeclib on ARMv6.Andrew Mahone2009-12-05
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23866 a1c6a512-1295-4272-9138-f99709370657
* Move av_log2 function and asociated table to the codec lib, remove 3 ↵Nils Wallménius2009-12-05
| | | | | | identical implementations, always have LUT in iram (gives a *tiny* speedup on coldfire), make the clz based function return the same value as the non clz based function for 0 input to be safe (slows down flac ~2% on the gigabeat S) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23858 a1c6a512-1295-4272-9138-f99709370657
* These macros have been replaced by (UN)LIKELY macros and were not used anywhere.Nils Wallménius2009-11-29
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23780 a1c6a512-1295-4272-9138-f99709370657
* C code is NOT faster on S3C2440 - tested by AlexP on r22529Dave Hooper2009-08-29
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22530 a1c6a512-1295-4272-9138-f99709370657
* Don't know why svn decided to delete tlsf/src... Maybe due to some aborted ↵Magnus Holmgren2009-08-29
| | | | | | tests I did to see where it would be best to place TLSF. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22529 a1c6a512-1295-4272-9138-f99709370657
* FS#10466: Introduce a real malloc for tremor.Magnus Holmgren2009-08-29
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22528 a1c6a512-1295-4272-9138-f99709370657
* Removed remaining MB usageDave Hooper2009-08-29
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22527 a1c6a512-1295-4272-9138-f99709370657
* Fix condition code clobbers (and one TAB) for inline arm code in lib and ↵Dave Hooper2009-08-29
| | | | | | libtremor git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22526 a1c6a512-1295-4272-9138-f99709370657
* Rerrange some registers in butterfly_generic to combine some 2-word stores ↵Dave Hooper2009-08-29
| | | | | | into 4-word stores and remove some redundant mov instructions. Shave off some additional instructions (stacking and additions) in butterfly_32 by getting butterfly_8 and butterfly_16 to do the address incrementing for us. Add a few comments. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22525 a1c6a512-1295-4272-9138-f99709370657
* Add stdint.h to the codeclib when compiled outside of rockbox so that ↵Michael Giacomelli2009-08-24
| | | | | | int32_t is typedef'ed. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22502 a1c6a512-1295-4272-9138-f99709370657
* Remove svn:executable on source file and set keywords.Dominik Riebeling2009-08-16
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22342 a1c6a512-1295-4272-9138-f99709370657
* Move bitstream.[ch] to codecs/lib/ffmpeg_bitstream.[ch] to avoid duplicate ↵Mohamed Tarek2009-08-15
| | | | | | copies across codecs. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22337 a1c6a512-1295-4272-9138-f99709370657
* remove duplicates of bswap.h from libwma, libcook and libatrac. Create ↵Mohamed Tarek2009-08-15
| | | | | | codecs/lib/ffmpeg_bswap.h and use it instead. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22328 a1c6a512-1295-4272-9138-f99709370657
* Also modify mdct_lookup.c for compiling outside rockbox.Mohamed Tarek2009-08-13
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22296 a1c6a512-1295-4272-9138-f99709370657
* Modify the mdct library to enable using it outside rockbox - No functional ↵Mohamed Tarek2009-08-13
| | | | | | changes. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22295 a1c6a512-1295-4272-9138-f99709370657
* Remove various ABS() definitions with a single one using typeof (if using ↵Thomas Martitz2009-08-03
| | | | | | gcc) to avoid multiple evaluations of the input expressions. Speex still uses its own as I didn't want to change this imported code too much. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22129 a1c6a512-1295-4272-9138-f99709370657
* Slight whitespace cleanup, add a const qualifier. No functional changesNils Wallménius2009-07-30
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22087 a1c6a512-1295-4272-9138-f99709370657
* Rearrange the MDCT library lookup tables so that codecs can access them. ↵Michael Giacomelli2009-07-17
| | | | | | Access them in cook. Remove old cook trig tables. Replace old 32x16 bit fixed point multiply code with faster ASM ARM/Coldfire versions using full 32 bit precision. Improves performance signficantly on PP5024 (~200% realtime for a 64k file) while saving a lot of memory and improving accuracy. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21939 a1c6a512-1295-4272-9138-f99709370657
* Reorder some operands to increase frequency of multiply early termination on ↵Andrew Mahone2009-07-13
| | | | | | TDMI targets, reorder some operations to try to reduce stalls. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21834 a1c6a512-1295-4272-9138-f99709370657
* * ARM asm DSP and codec/plugin functions: Use r12 scratch register properlyJens Arnold2009-07-12
| | | | | | | | | * Fix saving another unused reg in dsp code * Use less regs in the generic ARM mpegplayer adding idct pure DC case * Fix ARMv6 mpegplayer adding idct using an unsaved register in pure DC case git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21803 a1c6a512-1295-4272-9138-f99709370657
* * FS#10411 - Fixed point math code is bloated by Jeffrey GoodeMaurus Cuelenaere2009-07-07
| | | | | | | * Set svn:keywords properties git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21701 a1c6a512-1295-4272-9138-f99709370657
* Take 2 at 'Consolidate all fixed point math routines in one library' ↵Maurus Cuelenaere2009-07-05
| | | | | | (FS#10400) by Jeffrey Goode git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21664 a1c6a512-1295-4272-9138-f99709370657
* Revert "Consolidate all fixed point math routines in one library (FS#10400) ↵Maurus Cuelenaere2009-07-04
| | | | | | by Jeffrey Goode" git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21635 a1c6a512-1295-4272-9138-f99709370657
* Consolidate all fixed point math routines in one library (FS#10400) by ↵Maurus Cuelenaere2009-07-04
| | | | | | Jeffrey Goode git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21633 a1c6a512-1295-4272-9138-f99709370657
* Commited too much really this time.Michael Giacomelli2009-05-10
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20905 a1c6a512-1295-4272-9138-f99709370657
* Actually remove the unneeded files in the last commit.Michael Giacomelli2009-05-10
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20903 a1c6a512-1295-4272-9138-f99709370657
* Commit FS#9882 - make better use of iram at different quality encodings, ↵Dave Hooper2009-04-25
| | | | | | remove redundant memsets, implement doublebuffer if it will fit in iram to save a mempcy each frame, and some alignment fixes for coldfire git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20783 a1c6a512-1295-4272-9138-f99709370657
* Fix redMaurus Cuelenaere2009-04-22
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20777 a1c6a512-1295-4272-9138-f99709370657
* Fix yellowMaurus Cuelenaere2009-04-22
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20776 a1c6a512-1295-4272-9138-f99709370657