summaryrefslogtreecommitdiff
path: root/apps/codecs/lib (follow)
Commit message (Collapse)AuthorAge
...
* Remove CLIP_TO_15 from codeclib. Remove tabs.Andree Buschmann2010-02-21
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24834 a1c6a512-1295-4272-9138-f99709370657
* Make mdct compilable again for non-ARM targets.Andree Buschmann2010-02-21
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24822 a1c6a512-1295-4272-9138-f99709370657
* Eep, didn't mean to commit those other filesDave Hooper2010-02-21
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24820 a1c6a512-1295-4272-9138-f99709370657
* Get a few more % speedup on ARM (measured on ipod video) - improve imdct ↵Dave Hooper2010-02-21
| | | | | | full final symmetries using ldm/stm and simple register swapping. Also, add more comments (and improve/update some of the existing ones) regarding the layout of the imdct_half and the imdct_full git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24819 a1c6a512-1295-4272-9138-f99709370657
* Adding ICODE for imdct (and its constituent ifft bits) gives 0.5MHz boost on ↵Dave Hooper2010-02-20
| | | | | | arm (ipod video) and about 5MHz boost on coldfire (H120) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24786 a1c6a512-1295-4272-9138-f99709370657
* I don't yet fully understand why this is required, but without it the output ↵Dave Hooper2010-02-18
| | | | | | is signed-inverted (compared to e.g. the output of oggdec). ac3 confirmed to be ok so the problem must be in the imdct not the ifft. but the algo seems correct (in that seems same as original ffmpeg version).. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24739 a1c6a512-1295-4272-9138-f99709370657
* split_radix_permutation also unused (since now a hardcoded table) - but left ↵Dave Hooper2010-02-17
| | | | | | intact so we can/could regenerate the table git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24716 a1c6a512-1295-4272-9138-f99709370657
* FIx typo in coldfire asm which caused yellowDave Hooper2010-02-17
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24715 a1c6a512-1295-4272-9138-f99709370657
* Fix yellow (ff_fft_permute_c an unused function in codeclib)Dave Hooper2010-02-17
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24713 a1c6a512-1295-4272-9138-f99709370657
* Merge from branches/mdctexp - faster ifft+imdct in codec libDave Hooper2010-02-17
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24712 a1c6a512-1295-4272-9138-f99709370657
* 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