OSDN Git Service

sbc: Audio quality improvement for 16-bit fixed point SBC encoder
authorSiarhei Siamashka <siarhei.siamashka@nokia.com>
Wed, 21 Jan 2009 22:12:40 +0000 (00:12 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 30 Jul 2012 02:48:28 +0000 (19:48 -0700)
commitbec3d3989ba299c747f71d8fb26ef86de7eadefa
tree390695d4184344f4c7feb2af0a6c5794f5dc99cf
parentc82ec10ad2cc7f35c3c31839f9d2c62dba625b46
sbc: Audio quality improvement for 16-bit fixed point SBC encoder

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.
sbc/sbc_primitives.c
sbc/sbc_tables.h