Lines Matching refs:lsp
29 #include "lsp.h"
83 void ff_acelp_lsf2lsp(int16_t *lsp, const int16_t *lsf, int lp_order)
87 /* Convert LSF to LSP, lsp=cos(lsf) */
90 lsp[i] = ff_cos(lsf[i] * 20861 >> 15); // divide by PI and (0,13) -> (0,14)
93 void ff_acelp_lsf2lspd(double *lsp, const float *lsf, int lp_order)
98 lsp[i] = cos(2.0 * M_PI * lsf[i]);
104 * @param lsp LSP coefficients (-0x8000 <= (0.15) <= 0x7fff)
106 static void lsp2poly(int* f, const int16_t* lsp, int lp_half_order)
111 f[1] = -lsp[0] * 256; // *2 and (0.15) -> (3.22)
117 f[j] -= MULL(f[j-1], lsp[2*i-2], FRAC_BITS) - f[j-2];
119 f[1] -= lsp[2*i-2] * 256;
123 void ff_acelp_lsp2lpc(int16_t* lp, const int16_t* lsp, int lp_half_order)
129 lsp2poly(f1, lsp , lp_half_order);
130 lsp2poly(f2, lsp+1, lp_half_order);
145 void ff_amrwb_lsp2lpc(const double *lsp, float *lp, int lp_order)
155 ff_lsp2polyf(lsp , pa, lp_half_order );
156 ff_lsp2polyf(lsp + 1, qa, lp_half_order - 1);
159 double paf = pa[i] * (1 + lsp[lp_order - 1]);
160 double qaf = (qa[i] - qa[i-2]) * (1 - lsp[lp_order - 1]);
165 lp[lp_half_order - 1] = (1.0 + lsp[lp_order - 1]) *
168 lp[lp_order - 1] = lsp[lp_order - 1];
191 void ff_lsp2polyf(const double *lsp, double *f, int lp_half_order)
196 f[1] = -2 * lsp[0];
197 lsp -= 2;
200 double val = -2 * lsp[2*i];
209 void ff_acelp_lspd2lpc(const double *lsp, float *lpc, int lp_half_order)
216 ff_lsp2polyf(lsp, pa, lp_half_order);
217 ff_lsp2polyf(lsp + 1, qa, lp_half_order);