From owner-cvs-src-old@FreeBSD.ORG Sun Jul 5 18:15:19 2009 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A81A010656C0 for ; Sun, 5 Jul 2009 18:15:19 +0000 (UTC) (envelope-from ariff@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 93C988FC0C for ; Sun, 5 Jul 2009 18:15:19 +0000 (UTC) (envelope-from ariff@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n65IFJKo004843 for ; Sun, 5 Jul 2009 18:15:19 GMT (envelope-from ariff@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n65IFJ4Z004842 for cvs-src-old@freebsd.org; Sun, 5 Jul 2009 18:15:19 GMT (envelope-from ariff@repoman.freebsd.org) Message-Id: <200907051815.n65IFJ4Z004842@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to ariff@repoman.freebsd.org using -f From: Ariff Abdullah Date: Sun, 5 Jul 2009 18:15:06 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/dev/sound/pcm feeder_rate.c src/sys/tools/sound feeder_rate_mkfilter.awk X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jul 2009 18:15:20 -0000 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