]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
use limited range of lpc orders when quantizing coefficients
authorjbr <jbr@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sat, 16 Aug 2008 21:24:06 +0000 (21:24 +0000)
committerjbr <jbr@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sat, 16 Aug 2008 21:24:06 +0000 (21:24 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@14794 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/flacenc.c
libavcodec/lpc.c
libavcodec/lpc.h

index 4876895c672020600e75e70f381c716ea3bd3721..ea104360c15c51e3206494941c62f16af99badb0 100644 (file)
@@ -855,7 +855,7 @@ static int encode_residual(FlacEncodeContext *ctx, int ch)
     }
 
     /* LPC */
-    opt_order = ff_lpc_calc_coefs(&ctx->dsp, smp, n, max_order, precision, coefs,
+    opt_order = ff_lpc_calc_coefs(&ctx->dsp, smp, n, min_order, max_order, precision, coefs,
                                shift, ctx->options.use_lpc, omethod, MAX_LPC_SHIFT, 0);
 
     if(omethod == ORDER_METHOD_2LEVEL ||
index bdea0265423a17d1cde479daca9c34cf73e5d16e..792abe4d1cc456792f3e1a5ef483cbf34d3d8a07 100644 (file)
@@ -135,7 +135,7 @@ static int estimate_best_order(double *ref, int max_order)
  * Calculate LPC coefficients for multiple orders
  */
 int ff_lpc_calc_coefs(DSPContext *s,
-                      const int32_t *samples, int blocksize, int max_order,
+                      const int32_t *samples, int blocksize, int min_order, int max_order,
                       int precision, int32_t coefs[][MAX_LPC_ORDER],
                       int *shift, int use_lpc, int omethod, int max_shift, int zero_shift)
 {
@@ -195,7 +195,7 @@ int ff_lpc_calc_coefs(DSPContext *s,
         i = opt_order-1;
         quantize_lpc_coefs(lpc[i], i+1, precision, coefs[i], &shift[i], max_shift, zero_shift);
     } else {
-        for(i=0; i<max_order; i++) {
+        for(i=min_order-1; i<max_order; i++) {
             quantize_lpc_coefs(lpc[i], i+1, precision, coefs[i], &shift[i], max_shift, zero_shift);
         }
     }
index b967ff59d9c11bae0b84ea87c83ab9b23ec9657f..6c7c2eba939df86c7d50868702c9e5b534d84adc 100644 (file)
@@ -39,7 +39,7 @@
  * Calculate LPC coefficients for multiple orders
  */
 int ff_lpc_calc_coefs(DSPContext *s,
-                      const int32_t *samples, int blocksize, int max_order,
+                      const int32_t *samples, int blocksize, int min_order, int max_order,
                       int precision, int32_t coefs[][MAX_LPC_ORDER],
                       int *shift, int use_lpc, int omethod, int max_shift, int zero_shift);