Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Performance optimizations for sbcenc utility | Siarhei Siamashka | 2009-01-18 | 1 | -72/+50 |
| | | | | | | Read and write buffers sizes increased, memmove overhead eliminated. Nonportable cast from 'unsigned char *' to 'struct au_header *' is now also resolved as part of the changes. | ||||
* | Coding style fixes | Siarhei Siamashka | 2009-01-18 | 1 | -21/+32 |
| | |||||
* | Fix indentation to use only tabs | Johan Hedberg | 2009-01-16 | 5 | -219/+219 |
| | |||||
* | Add missing sbc headers to dist | Johan Hedberg | 2009-01-16 | 1 | -0/+1 |
| | |||||
* | MMX and ARM NEON optimized versions of analysis filter for SBC encoder | Siarhei Siamashka | 2009-01-16 | 6 | -1/+765 |
| | |||||
* | SBC arrays and constant tables aligned at 16 byte boundary for SIMD | Siarhei Siamashka | 2009-01-16 | 4 | -15/+36 |
| | | | | | | | Most SIMD instruction sets benefit from data being naturally aligned. And even if it is not strictly required, performance is usually better with the aligned data. ARM NEON and SSE2 have different instruction variants for aligned/unaligned memory accesses. | ||||
* | SIMD-friendly variant of SBC encoder analysis filter | Siarhei Siamashka | 2009-01-16 | 6 | -160/+703 |
| | | | | | | | | | Added SIMD-friendly C implementation of SBC analysis filter (the structure of code had to be changed a bit and constants in the tables reordered). This code can be used as a reference for developing platform specific SIMD optimizations. These functions are put into a new file 'sbc_primitives.c', which is going to contain all the basic stuff for SBC codec. | ||||
* | Fix for big endian problems in SBC codec | Siarhei Siamashka | 2009-01-07 | 1 | -12/+0 |
| | |||||
* | Fixed correct handling of frame sizes in the encoder | Christian Hoene | 2009-01-06 | 3 | -5/+7 |
| | |||||
* | Use of constant shift in SBC quantization code to make it faster | Siarhei Siamashka | 2009-01-06 | 1 | -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 information | Marcel Holtmann | 2009-01-01 | 9 | -13/+13 |
| | |||||
* | Added possibility to analyze 4 blocks at once in SBC encoder | Siarhei Siamashka | 2009-01-01 | 1 | -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 code | Siarhei Siamashka | 2008-12-29 | 3 | -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 encoder | Siarhei Siamashka | 2008-12-29 | 1 | -4/+4 |
| | |||||
* | Add more options to control encoding methods | Marcel Holtmann | 2008-12-23 | 1 | -16/+51 |
| | |||||
* | Don't decode a frame if it is too small | Marcel Holtmann | 2008-12-23 | 1 | -0/+3 |
| | |||||
* | Remove unnecessary code and fix a coding style. | Luiz Augusto von Dentz | 2008-12-18 | 1 | -14/+11 |
| | |||||
* | Fix for overflow bug in SBC quantization code | Siarhei Siamashka | 2008-12-18 | 1 | -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 encoder | Siarhei Siamashka | 2008-12-18 | 1 | -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 decoder | Marcel Holtmann | 2008-11-01 | 2 | -13/+48 |
| | |||||
* | Fix SBC gain mismatch | Marcel Holtmann | 2008-10-31 | 2 | -4/+5 |
| | |||||
* | Fix SBC decoding handling | Marcel Holtmann | 2008-10-30 | 1 | -4/+4 |
| | |||||
* | Let the decoder write Sun/NeXT audio S16_BE files | Marcel Holtmann | 2008-10-26 | 4 | -33/+76 |
| | |||||
* | Add bitpool option to encoder | Marcel Holtmann | 2008-10-26 | 1 | -5/+13 |
| | |||||
* | Fix missing encoding of last frame | Marcel Holtmann | 2008-10-26 | 2 | -5/+4 |
| | |||||
* | Avoid direct inclusion of malloc.h | Marcel Holtmann | 2008-06-11 | 1 | -1/+0 |
| | |||||
* | rollback an unintended commit on Makefile.am | Brad Midgley | 2008-03-08 | 1 | -1/+2 |
| | |||||
* | Cidorvan found another place where the spec had us saving a bunch of values | Brad Midgley | 2008-03-08 | 2 | -26/+14 |
| | | | | that were used immediately. Just compute and use instead of saving. In the decoder. | ||||
* | decoder optimization, now using nested multiply calls | Brad Midgley | 2008-03-06 | 1 | -48/+51 |
| | |||||
* | Enable gcc -O3 optimizations for SBC | Marcel Holtmann | 2008-03-05 | 1 | -0/+2 |
| | |||||
* | Cidorvan's 4-subband overflow fixes | Brad Midgley | 2008-02-29 | 2 | -7/+7 |
| | |||||
* | Replace 64bits multiplies by 32bits to further optimize the code | Johan Hedberg | 2008-02-22 | 2 | -35/+29 |
| | |||||
* | Introduce sbc new API. | Luiz Augusto von Dentz | 2008-02-19 | 4 | -171/+247 |
| | |||||
* | fix for decoder noise at high bitpools | Brad Midgley | 2008-02-15 | 2 | -18/+10 |
| | |||||
* | Update copyright information | Marcel Holtmann | 2008-02-02 | 8 | -14/+13 |
| | |||||
* | arm assembly version of MULA | Brad Midgley | 2008-01-30 | 1 | -0/+10 |
| | |||||
* | change MUL/MULA semantics | Brad Midgley | 2008-01-30 | 2 | -170/+173 |
| | |||||
* | remove unused macros | Brad Midgley | 2008-01-30 | 1 | -3/+0 |
| | |||||
* | fix off-by-one in sbcdec | Brad Midgley | 2008-01-30 | 1 | -2/+2 |
| | |||||
* | one more .X 32-bitism | Brad Midgley | 2008-01-29 | 1 | -1/+1 |
| | |||||
* | revert 16-bit state.X change (bad on arm) | Brad Midgley | 2008-01-29 | 1 | -4/+4 |
| | |||||
* | revert arm conditional code | Brad Midgley | 2008-01-28 | 2 | -20/+1 |
| | |||||
* | change function signature so the arm optimization will work | Brad Midgley | 2008-01-28 | 1 | -1/+12 |
| | |||||
* | arm-assembly from cidoca for MULA | Brad Midgley | 2008-01-28 | 1 | -1/+9 |
| | |||||
* | remove 16x16 mult optimization--gcc actually generates more costly code | Brad Midgley | 2008-01-28 | 3 | -103/+101 |
| | |||||
* | Whitespace cleanup | Johan Hedberg | 2008-01-28 | 1 | -1/+1 |
| | |||||
* | avoid an (unlikely) overflow | Brad Midgley | 2008-01-27 | 1 | -2/+2 |
| | |||||
* | get 32-bit products whenever we're sure the multiplicands are both 16 bits | Brad Midgley | 2008-01-27 | 2 | -95/+97 |
| | |||||
* | shorten the encoder tables to 16 bits, take out mula32/mul32 for now for ↵ | Brad Midgley | 2008-01-26 | 3 | -77/+75 |
| | | | | simplicity | ||||
* | pcm input array should be 16 not 32 bits | Brad Midgley | 2008-01-26 | 1 | -75/+75 |
| | | | | use 32-bit product when multiplying two values limited to 16 bits each |