comparison lpc.h @ 7791:da7996a575f3 libavcodec

Cosmetics: s/LPC_type/LPC_TYPE/
author vitor
date Thu, 04 Sep 2008 22:17:27 +0000
parents ffd4b1364b62
children 84963c795459
comparison
equal deleted inserted replaced
7790:209a9ad96a6c 7791:da7996a575f3
44 int max_order, int precision, 44 int max_order, int precision,
45 int32_t coefs[][MAX_LPC_ORDER], int *shift, int use_lpc, 45 int32_t coefs[][MAX_LPC_ORDER], int *shift, int use_lpc,
46 int omethod, int max_shift, int zero_shift); 46 int omethod, int max_shift, int zero_shift);
47 47
48 #ifdef LPC_USE_DOUBLE 48 #ifdef LPC_USE_DOUBLE
49 #define LPC_type double 49 #define LPC_TYPE double
50 #else 50 #else
51 #define LPC_type float 51 #define LPC_TYPE float
52 #endif 52 #endif
53 53
54 /** 54 /**
55 * Levinson-Durbin recursion. 55 * Levinson-Durbin recursion.
56 * Produces LPC coefficients from autocorrelation data. 56 * Produces LPC coefficients from autocorrelation data.
57 */ 57 */
58 static inline int compute_lpc_coefs(const LPC_type *autoc, int max_order, 58 static inline int compute_lpc_coefs(const LPC_TYPE *autoc, int max_order,
59 LPC_type *lpc, int lpc_stride, int fail, 59 LPC_TYPE *lpc, int lpc_stride, int fail,
60 int normalize) 60 int normalize)
61 { 61 {
62 int i, j; 62 int i, j;
63 LPC_type err; 63 LPC_TYPE err;
64 LPC_type *lpc_last = lpc; 64 LPC_TYPE *lpc_last = lpc;
65 65
66 if (normalize) 66 if (normalize)
67 err = *autoc++; 67 err = *autoc++;
68 68
69 if (fail && (autoc[max_order - 1] == 0 || err <= 0)) 69 if (fail && (autoc[max_order - 1] == 0 || err <= 0))
70 return -1; 70 return -1;
71 71
72 for(i=0; i<max_order; i++) { 72 for(i=0; i<max_order; i++) {
73 LPC_type r = -autoc[i]; 73 LPC_TYPE r = -autoc[i];
74 74
75 if (normalize) { 75 if (normalize) {
76 for(j=0; j<i; j++) 76 for(j=0; j<i; j++)
77 r -= lpc_last[j] * autoc[i-j-1]; 77 r -= lpc_last[j] * autoc[i-j-1];
78 78
81 } 81 }
82 82
83 lpc[i] = r; 83 lpc[i] = r;
84 84
85 for(j=0; j < (i+1)>>1; j++) { 85 for(j=0; j < (i+1)>>1; j++) {
86 LPC_type f = lpc_last[ j]; 86 LPC_TYPE f = lpc_last[ j];
87 LPC_type b = lpc_last[i-1-j]; 87 LPC_TYPE b = lpc_last[i-1-j];
88 lpc[ j] = f + r * b; 88 lpc[ j] = f + r * b;
89 lpc[i-1-j] = b + r * f; 89 lpc[i-1-j] = b + r * f;
90 } 90 }
91 91
92 if (fail && err < 0) 92 if (fail && err < 0)