comparison lpc.c @ 7593:9687dcb225e9 libavcodec

use range of lpc orders in ORDER_METHOD_EST
author jbr
date Sat, 16 Aug 2008 21:39:09 +0000
parents 377fddcc6288
children cd6217c9ce92
comparison
equal deleted inserted replaced
7592:377fddcc6288 7593:9687dcb225e9
115 error -= lpc_out[i]; 115 error -= lpc_out[i];
116 } 116 }
117 *shift = sh; 117 *shift = sh;
118 } 118 }
119 119
120 static int estimate_best_order(double *ref, int max_order) 120 static int estimate_best_order(double *ref, int min_order, int max_order)
121 { 121 {
122 int i, est; 122 int i, est;
123 123
124 est = 1; 124 est = min_order;
125 for(i=max_order-1; i>=0; i--) { 125 for(i=max_order-1; i>=min_order-1; i--) {
126 if(ref[i] > 0.10) { 126 if(ref[i] > 0.10) {
127 est = i+1; 127 est = i+1;
128 break; 128 break;
129 } 129 }
130 } 130 }
190 ref[i] = ref[i-1] - ref[i]; 190 ref[i] = ref[i-1] - ref[i];
191 } 191 }
192 opt_order = max_order; 192 opt_order = max_order;
193 193
194 if(omethod == ORDER_METHOD_EST) { 194 if(omethod == ORDER_METHOD_EST) {
195 opt_order = estimate_best_order(ref, max_order); 195 opt_order = estimate_best_order(ref, min_order, max_order);
196 i = opt_order-1; 196 i = opt_order-1;
197 quantize_lpc_coefs(lpc[i], i+1, precision, coefs[i], &shift[i], max_shift, zero_shift); 197 quantize_lpc_coefs(lpc[i], i+1, precision, coefs[i], &shift[i], max_shift, zero_shift);
198 } else { 198 } else {
199 for(i=min_order-1; i<max_order; i++) { 199 for(i=min_order-1; i<max_order; i++) {
200 quantize_lpc_coefs(lpc[i], i+1, precision, coefs[i], &shift[i], max_shift, zero_shift); 200 quantize_lpc_coefs(lpc[i], i+1, precision, coefs[i], &shift[i], max_shift, zero_shift);