| @@ -150,7 +150,13 @@ static void lsp2polyf(const double *lsp, double *f, int lp_half_order) · 149 unmodified lines |
| 150 | } | 150 | } |
| 151 | #endif /* lsp2polyf */ | 151 | #endif /* lsp2polyf */ |
| 152 | | 152 | |
| 153 | void ff_acelp_lsp2lpc(int16_t* lp, const int16_t* lsp, int lp_half_order) | 153 | /** |
| | 154 | * @brief LSP to LP conversion (3.2.6 of G.729) |
| | 155 | * @param[out] lp decoded LP coefficients (-0x8000 <= (3.12) < 0x8000) |
| | 156 | * @param lsp LSP coefficients (-0x8000 <= (0.15) < 0x8000) |
| | 157 | * @param lp_half_order LP filter order, divided by 2 |
| | 158 | */ |
| | 159 | static void acelp_lsp2lpc(int16_t lp[], const int16_t lsp[], int lp_half_order) |
| 154 | { | 160 | { |
| 155 | int i; | 161 | int i; |
| 156 | int f1[MAX_LP_HALF_ORDER+1]; // (3.22) | 162 | int f1[MAX_LP_HALF_ORDER+1]; // (3.22) |
| @@ -211,10 +217,10 @@ void ff_acelp_lp_decode(int16_t* lp_1st, int16_t* lp_2nd, const int16_t* lsp_2nd · 54 unmodified lines |
| 211 | lsp_1st[i] = (lsp_2nd[i] + lsp_prev[i]) >> 1; | 217 | lsp_1st[i] = (lsp_2nd[i] + lsp_prev[i]) >> 1; |
| 212 | #endif | 218 | #endif |
| 213 | | 219 | |
| 214 | ff_acelp_lsp2lpc(lp_1st, lsp_1st, lp_order >> 1); | 220 | acelp_lsp2lpc(lp_1st, lsp_1st, lp_order >> 1); |
| 215 | | 221 | |
| 216 | /* LSP values for second subframe (3.2.5 of G.729)*/ | 222 | /* LSP values for second subframe (3.2.5 of G.729)*/ |
| 217 | ff_acelp_lsp2lpc(lp_2nd, lsp_2nd, lp_order >> 1); | 223 | acelp_lsp2lpc(lp_2nd, lsp_2nd, lp_order >> 1); |
| 218 | } | 224 | } |
| 219 | | 225 | |
| 220 | void ff_acelp_lspd2lpc(const double *lsp, float *lpc, int lp_half_order) | 226 | void ff_acelp_lspd2lpc(const double *lsp, float *lpc, int lp_half_order) |