#include <stdint.h>Go to the source code of this file.
Defines | |
| #define | MAX_LP_HALF_ORDER 8 |
| #define | MAX_LP_ORDER (2*MAX_LP_HALF_ORDER) |
Functions | |
| void | ff_acelp_reorder_lsf (int16_t *lsfq, int lsfq_min_distance, int lsfq_min, int lsfq_max, int lp_order) |
| (I.F) means fixed-point value with F fractional and I integer bits | |
| void | ff_set_min_dist_lsf (float *lsf, double min_spacing, int size) |
| Adjust the quantized LSFs so they are increasing and not too close. | |
| void | ff_acelp_lsf2lsp (int16_t *lsp, const int16_t *lsf, int lp_order) |
| Convert LSF to LSP. | |
| void | ff_acelp_lsf2lspd (double *lsp, const float *lsf, int lp_order) |
| Floating point version of ff_acelp_lsf2lsp(). | |
| void | ff_acelp_lsp2lpc (int16_t *lp, const int16_t *lsp, int lp_half_order) |
| LSP to LP conversion (3.2.6 of G.729). | |
| void | ff_amrwb_lsp2lpc (const double *lsp, float *lp, int lp_order) |
| LSP to LP conversion (5.2.4 of AMR-WB). | |
| void | ff_acelp_lp_decode (int16_t *lp_1st, int16_t *lp_2nd, const int16_t *lsp_2nd, const int16_t *lsp_prev, int lp_order) |
| Interpolate LSP for the first subframe and convert LSP -> LP for both subframes (3.2.5 and 3.2.6 of G.729). | |
| void | ff_acelp_lspd2lpc (const double *lsp, float *lpc, int lp_half_order) |
| Reconstruct LPC coefficients from the line spectral pair frequencies. | |
| void | ff_sort_nearly_sorted_floats (float *vals, int len) |
| Sort values in ascending order. | |
| void | ff_lsp2polyf (const double *lsp, double *f, int lp_half_order) |
| Compute the Pa / (1 + z(-1)) or Qa / (1 - z(-1)) coefficients needed for LSP to LPC conversion. | |
| #define MAX_LP_HALF_ORDER 8 |
| #define MAX_LP_ORDER (2*MAX_LP_HALF_ORDER) |
| void ff_acelp_lp_decode | ( | int16_t * | lp_1st, | |
| int16_t * | lp_2nd, | |||
| const int16_t * | lsp_2nd, | |||
| const int16_t * | lsp_prev, | |||
| int | lp_order | |||
| ) |
Interpolate LSP for the first subframe and convert LSP -> LP for both subframes (3.2.5 and 3.2.6 of G.729).
| [out] | lp_1st | decoded LP coefficients for first subframe (-0x8000 <= (3.12) < 0x8000) |
| [out] | lp_2nd | decoded LP coefficients for second subframe (-0x8000 <= (3.12) < 0x8000) |
| lsp_2nd | LSP coefficients of the second subframe (-0x8000 <= (0.15) < 0x8000) | |
| lsp_prev | LSP coefficients from the second subframe of the previous frame (-0x8000 <= (0.15) < 0x8000) | |
| lp_order | LP filter order |
Definition at line 146 of file lsp.c.
Referenced by decode_frame().
| void ff_acelp_lsf2lsp | ( | int16_t * | lsp, | |
| const int16_t * | lsf, | |||
| int | lp_order | |||
| ) |
Convert LSF to LSP.
| [out] | lsp | LSP coefficients (-0x8000 <= (0.15) < 0x8000) |
| lsf | normalized LSF coefficients (0 <= (2.13) < 0x2000 * PI) | |
| lp_order | LP filter order |
Definition at line 58 of file lsp.c.
Referenced by decode_frame().
| void ff_acelp_lsf2lspd | ( | double * | lsp, | |
| const float * | lsf, | |||
| int | lp_order | |||
| ) |
Floating point version of ff_acelp_lsf2lsp().
Definition at line 68 of file lsp.c.
Referenced by amrwb_decode_frame(), hb_synthesis(), lsf2lsp_3(), and lsf2lsp_for_mode12k2().
| void ff_acelp_lsp2lpc | ( | int16_t * | lp, | |
| const int16_t * | lsp, | |||
| int | lp_half_order | |||
| ) |
LSP to LP conversion (3.2.6 of G.729).
| [out] | lp | decoded LP coefficients (-0x8000 <= (3.12) < 0x8000) |
| lsp | LSP coefficients (-0x8000 <= (0.15) < 0x8000) | |
| lp_half_order | LP filter order, divided by 2 |
Definition at line 98 of file lsp.c.
Referenced by ff_acelp_lp_decode().
| void ff_acelp_lspd2lpc | ( | const double * | lsp, | |
| float * | lpc, | |||
| int | lp_half_order | |||
| ) |
Reconstruct LPC coefficients from the line spectral pair frequencies.
| lsp | line spectral pairs in cosine domain | |
| lpc | linear predictive coding coefficients | |
| lp_half_order | half the number of the amount of LPCs to be reconstructed, need to be smaller or equal to MAX_LP_HALF_ORDER |
Definition at line 182 of file lsp.c.
Referenced by acelp_lp_decodef(), amrnb_decode_frame(), lspf2lpc(), synth_block(), and synth_frame().
| void ff_acelp_reorder_lsf | ( | int16_t * | lsfq, | |
| int | lsfq_min_distance, | |||
| int | lsfq_min, | |||
| int | lsfq_max, | |||
| int | lp_order | |||
| ) |
(I.F) means fixed-point value with F fractional and I integer bits
ensure a minimum distance between LSFs
| [in,out] | lsfq | LSF to check and adjust |
| lsfq_min_distance | minimum distance between LSFs | |
| lsfq_min | minimum allowed LSF value | |
| lsfq_max | maximum allowed LSF value | |
| lp_order | LP filter order |
Definition at line 32 of file lsp.c.
Referenced by lsf_decode().
| void ff_amrwb_lsp2lpc | ( | const double * | lsp, | |
| float * | lp, | |||
| int | lp_order | |||
| ) |
LSP to LP conversion (5.2.4 of AMR-WB).
Definition at line 120 of file lsp.c.
Referenced by amrwb_decode_frame(), hb_synthesis(), and sipr_decode_lp().
| void ff_lsp2polyf | ( | const double * | lsp, | |
| double * | f, | |||
| int | lp_half_order | |||
| ) |
Compute the Pa / (1 + z(-1)) or Qa / (1 - z(-1)) coefficients needed for LSP to LPC conversion.
We only need to calculate the 6 first elements of the polynomial.
| lsp | line spectral pairs in cosine domain | |
| [out] | f | polynomial input/output as a vector |
Definition at line 165 of file lsp.c.
Referenced by ff_acelp_lspd2lpc(), and ff_amrwb_lsp2lpc().
| void ff_set_min_dist_lsf | ( | float * | lsf, | |
| double | min_spacing, | |||
| int | size | |||
| ) |
Adjust the quantized LSFs so they are increasing and not too close.
This step is not mentioned in the AMR spec but is in the reference C decoder. Omitting this step creates audible distortion on the sinusoidal sweep test vectors in 3GPP TS 26.074.
| [in,out] | lsf | LSFs in Hertz |
| min_spacing | minimum distance between two consecutive lsf values | |
| size | size of the lsf vector |
Definition at line 50 of file lsp.c.
Referenced by amrwb_decode_frame(), ff_sipr_decode_frame_16k(), lsf2lsp_3(), lsf2lsp_for_mode12k2(), and lsf_decode_fp().
| void ff_sort_nearly_sorted_floats | ( | float * | vals, | |
| int | len | |||
| ) |
Sort values in ascending order.
Definition at line 201 of file lsp.c.
Referenced by decode_lsp(), and lsf_decode_fp().
1.5.8