Mercurial > libavcodec.hg
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); |