summaryrefslogtreecommitdiffstats
path: root/sbc/sbc_tables.h
Commit message (Collapse)AuthorAgeFilesLines
* Audio quality improvement for 16-bit fixed point SBC encoderSiarhei Siamashka2009-01-231-202/+258
| | | | | | | | | | | | | | | | | Multiplying the first part of the analysis filter constant tables by some coefficients and dividing the second part by the same coefficients is a transformation which should produce the same results if rounding errors are not taken into account. These additional C0/C1/... coefficients can be varied in a certain range (the requirement is that we still do not get overflows). The 'magic' values for these coefficients are selected in such a way that the rounding errors are minimized (rounding errors are unavoidable when putting all the floating constants into 16-bit tables and losing some of the fractional part). Also non-SIMD variant of the analysis filter is dropped because keeping it would require applying a similar change to its tables, which is a bit tricky and just increases maintenance overhead.
* Fix indentation to use only tabsJohan Hedberg2009-01-161-178/+178
|
* SBC arrays and constant tables aligned at 16 byte boundary for SIMDSiarhei Siamashka2009-01-161-4/+18
| | | | | | | 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 filterSiarhei Siamashka2009-01-161-4/+246
| | | | | | | | | 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.
* Update copyright informationMarcel Holtmann2009-01-011-1/+1
|
* New SBC analysis filter function to replace current broken codeSiarhei Siamashka2008-12-291-34/+213
| | | | | | | | | | | | | | 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.
* Fix SBC gain mismatchMarcel Holtmann2008-10-311-2/+3
|
* Update copyright informationMarcel Holtmann2008-02-021-1/+1
|
* remove 16x16 mult optimization--gcc actually generates more costly codeBrad Midgley2008-01-281-4/+4
|
* shorten the encoder tables to 16 bits, take out mula32/mul32 for now for ↵Brad Midgley2008-01-261-4/+4
| | | | simplicity
* Update copyright informationMarcel Holtmann2007-08-251-1/+1
|
* update the sbc encoder from the working fixed-point code in the sbc projectBrad Midgley2007-03-171-1/+3
| | | | | I also tagged the sbc project with "copied-to-bluez-utils" at the same time. We will do sbc work under bluez and sync it with the old sbc project if necessary.
* Add SBC helper includesMarcel Holtmann2007-02-211-0/+165