OSDN Git Service

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)
committerJohan Hedberg <johan.hedberg@nokia.com>
Fri, 23 Jan 2009 19:13:02 +0000 (21:13 +0200)
commitf70d1ada0aba5567fbf67cedfb4a4ba1a9f9852e
treea800c09447f7d2ff64d2b8b9ae815479046c94aa
parent3e88293bae37a5e78a8c46cc0eabf452a9591d26
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