summaryrefslogtreecommitdiffstats
path: root/sbc
Commit message (Collapse)AuthorAgeFilesLines
* Fix for big endian problems in SBC codecSiarhei Siamashka2009-01-071-12/+0
|
* Fixed correct handling of frame sizes in the encoderChristian Hoene2009-01-063-5/+7
|
* Use of constant shift in SBC quantization code to make it fasterSiarhei Siamashka2009-01-061-10/+13
| | | | | | | | | The result of 32x32->64 unsigned long multiplication is returned in two registers (high and low 32-bit parts) for many 32-bit architectures. For these architectures constant right shift by 32 bits is optimized out by the compiler to just taking the high 32-bit part. Also some data needed at the quantization stage is precalculated beforehand to improve performance.
* Update copyright informationMarcel Holtmann2009-01-019-13/+13
|
* Added possibility to analyze 4 blocks at once in SBC encoderSiarhei Siamashka2009-01-011-49/+82
| | | | | | | | | | | This change is needed for SIMD optimizations which will follow shortly. And even for non-SIMD capable platforms it still may be useful to have possibility to merge several analyzing functions together into one for better code scheduling or reusing loaded constants. Also analysis filter functions are now called using function pointers, which allows the default implementation to be overrided at runtime (with high precision variant or MMX/SSE2/NEON optimized code).
* New SBC analysis filter function to replace current broken codeSiarhei Siamashka2008-12-293-244/+323
| | | | | | | | | | | | | | This code is heavily based on the patch submitted by Jaska Uimonen. Additional changes include preserving extra bits in the output of filter function for better precision, support for both 16-bit and 32-bit fixed point implementation. Sign of some table values was changed in order to preserve a regular code structure and have multiply-accumulate oparations only. No additional optimizations were applied as this code is intended to be some kind of "reference" implementation. Platform specific optimizations may require different tricks and can be branched off from this implementation. Some extra information about this code can be found in linux-bluetooth mailing list archive for December 2008.
* Fixed subbands selection for joint-stereo in SBC encoderSiarhei Siamashka2008-12-291-4/+4
|
* Add more options to control encoding methodsMarcel Holtmann2008-12-231-16/+51
|
* Don't decode a frame if it is too smallMarcel Holtmann2008-12-231-0/+3
|
* Remove unnecessary code and fix a coding style.Luiz Augusto von Dentz2008-12-181-14/+11
|
* Fix for overflow bug in SBC quantization codeSiarhei Siamashka2008-12-181-1/+1
| | | | | | | The result of multiplication does not always fit into 32-bits. Using 64-bit calculations helps to avoid overflows and sound quality problems in encoded audio. Overflows are more likely to show up when using high values for bitpool setting.
* Bitstream writing optimization for SBC encoderSiarhei Siamashka2008-12-181-28/+37
| | | | | SBC encoder performance improvement up to 1.5x for ARM11 and almost twice faster for Intel Core2 in some cases.
* Add more options to SBC encoder and decoderMarcel Holtmann2008-11-012-13/+48
|
* Fix SBC gain mismatchMarcel Holtmann2008-10-312-4/+5
|
* Fix SBC decoding handlingMarcel Holtmann2008-10-301-4/+4
|
* Let the decoder write Sun/NeXT audio S16_BE filesMarcel Holtmann2008-10-264-33/+76
|
* Add bitpool option to encoderMarcel Holtmann2008-10-261-5/+13
|
* Fix missing encoding of last frameMarcel Holtmann2008-10-262-5/+4
|
* Avoid direct inclusion of malloc.hMarcel Holtmann2008-06-111-1/+0
|
* rollback an unintended commit on Makefile.amBrad Midgley2008-03-081-1/+2
|
* Cidorvan found another place where the spec had us saving a bunch of valuesBrad Midgley2008-03-082-26/+14
| | | | that were used immediately. Just compute and use instead of saving. In the decoder.
* decoder optimization, now using nested multiply callsBrad Midgley2008-03-061-48/+51
|
* Enable gcc -O3 optimizations for SBCMarcel Holtmann2008-03-051-0/+2
|
* Cidorvan's 4-subband overflow fixesBrad Midgley2008-02-292-7/+7
|
* Replace 64bits multiplies by 32bits to further optimize the codeJohan Hedberg2008-02-222-35/+29
|
* Introduce sbc new API.Luiz Augusto von Dentz2008-02-194-171/+247
|
* fix for decoder noise at high bitpoolsBrad Midgley2008-02-152-18/+10
|
* Update copyright informationMarcel Holtmann2008-02-028-14/+13
|
* arm assembly version of MULABrad Midgley2008-01-301-0/+10
|
* change MUL/MULA semanticsBrad Midgley2008-01-302-170/+173
|
* remove unused macrosBrad Midgley2008-01-301-3/+0
|
* fix off-by-one in sbcdecBrad Midgley2008-01-301-2/+2
|
* one more .X 32-bitismBrad Midgley2008-01-291-1/+1
|
* revert 16-bit state.X change (bad on arm)Brad Midgley2008-01-291-4/+4
|
* revert arm conditional codeBrad Midgley2008-01-282-20/+1
|
* change function signature so the arm optimization will workBrad Midgley2008-01-281-1/+12
|
* arm-assembly from cidoca for MULABrad Midgley2008-01-281-1/+9
|
* remove 16x16 mult optimization--gcc actually generates more costly codeBrad Midgley2008-01-283-103/+101
|
* Whitespace cleanupJohan Hedberg2008-01-281-1/+1
|
* avoid an (unlikely) overflowBrad Midgley2008-01-271-2/+2
|
* get 32-bit products whenever we're sure the multiplicands are both 16 bitsBrad Midgley2008-01-272-95/+97
|
* shorten the encoder tables to 16 bits, take out mula32/mul32 for now for ↵Brad Midgley2008-01-263-77/+75
| | | | simplicity
* pcm input array should be 16 not 32 bitsBrad Midgley2008-01-261-75/+75
| | | | use 32-bit product when multiplying two values limited to 16 bits each
* update copyrightsBrad Midgley2008-01-192-2/+2
|
* codec has been using 32-bit (MUL) and 64-bit (MULA) multipliesBrad Midgley2008-01-171-1/+3
| | | | | straighten things out so MUL/MULA are both 64 bit create MUL32/MULA32 for anyone who really needs a 32-bit product
* coding styleBrad Midgley2008-01-141-7/+4
|
* comment typoBrad Midgley2008-01-141-1/+1
|
* fix initializationBrad Midgley2008-01-141-1/+4
|
* take out memmove in sbc analyzeBrad Midgley2008-01-141-21/+29
|
* tweak to the memmove for 4 subbandsBrad Midgley2008-01-111-1/+1
|