From 548135de8c5758a1ed1974d90650e40b03cd5b87 Mon Sep 17 00:00:00 2001 From: ariff Date: Mon, 15 Jun 2009 04:05:38 +0000 Subject: [PATCH] Remap type of polynomial interpolators for better polyphase coefficients quality: - Linear interpolator for oversampling factor larger and equal than 4096 (log2 = 12). - Quadratic interpolator for oversampling factor larger and equal than 256 (log2 = 8). Default oversampling factor (128 ~ log2 = 7) will use OPT32X, which provides better accuracy. --- sys/dev/sound/pcm/feeder_rate.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/sys/dev/sound/pcm/feeder_rate.c b/sys/dev/sound/pcm/feeder_rate.c index 73a780a2d983..eeb8e92bdb5d 100644 --- a/sys/dev/sound/pcm/feeder_rate.c +++ b/sys/dev/sound/pcm/feeder_rate.c @@ -789,13 +789,11 @@ z_resampler_sinc_len(struct z_info *info) defined(Z_COEFF_INTER_BSPLINE) || defined(Z_COEFF_INTERP_OPT32X) || \ defined(Z_COEFF_INTERP_OPT16X) || defined(Z_COEFF_INTERP_OPT8X) || \ defined(Z_COEFF_INTERP_OPT4X) || defined(Z_COEFF_INTERP_OPT2X)) -#if Z_DRIFT_SHIFT >= 8 +#if Z_DRIFT_SHIFT >= 12 #define Z_COEFF_INTERP_LINEAR 1 -#elif Z_DRIFT_SHIFT == 7 +#elif Z_DRIFT_SHIFT >= 8 #define Z_COEFF_INTERP_QUADRATIC 1 -#elif Z_DRIFT_SHIFT == 6 -#define Z_COEFF_INTERP_HERMITE 1 -#elif Z_DRIFT_SHIFT == 5 +#elif Z_DRIFT_SHIFT >= 5 #define Z_COEFF_INTERP_OPT32X 1 #elif Z_DRIFT_SHIFT == 4 #define Z_COEFF_INTERP_OPT16X 1