Date: Sun, 5 Jul 2009 18:15:06 +0000 (UTC) From: Ariff Abdullah <ariff@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/sys/dev/sound/pcm feeder_rate.c src/sys/tools/sound feeder_rate_mkfilter.awk Message-ID: <200907051815.n65IFJ4Z004842@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
ariff 2009-07-05 18:15:06 UTC
FreeBSD src repository
Modified files:
sys/dev/sound/pcm feeder_rate.c
sys/tools/sound feeder_rate_mkfilter.awk
Log:
SVN rev 195378 on 2009-07-05 18:15:06Z by ariff
- Increase dynamic range of filter coefficients from 28bit to 30bit.
This cause dramatic effect in overall precision and conversion quality
by pushing down most aliasing artifacts around -180 dB.
Spectrogram analysis/comparison:
http://people.freebsd.org/~ariff/z_comparison/z_28vs30/
- Guard against possible 64bit overflow during accumulation process by
slightly normalize and saturate sample and coefficient multiplication,
possible during extreme 32bit downsampling (eg. 380KHz -> 8KHz) with
custom preset that require more than ~7000 taps filter (which is
overkill).
- Add knobs through FEEDER_RATE_PRESETS to set dynamic range of filter
coefficients/accumulator and prefered polynomial interpolator:
COEFFICIENT_BIT:X
(where 1 <= X <= 30, default: 30)
ACCUMULATOR_BIT:X
(where 32 <= X <=64, default: 58)
INTERPOLATOR:I
(where I = ZOH, LINEAR, QUADRATIC, HERMITE, BSPLINE,
OPT32X, OPT16X, OPT8X, OPT4X, OPT2X)
Approved by: re (kib)
Revision Changes Path
1.27 +10 -10 src/sys/dev/sound/pcm/feeder_rate.c
1.4 +110 -3 src/sys/tools/sound/feeder_rate_mkfilter.awk
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907051815.n65IFJ4Z004842>
