FreeCalypso > hg > gsm-codec-lib
diff libtwamr/d_plsf.h @ 343:3f574255c3aa
libtwamr: integrate d_plsf.c
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 19 Apr 2024 01:08:39 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtwamr/d_plsf.h Fri Apr 19 01:08:39 2024 +0000 @@ -0,0 +1,123 @@ +/* +******************************************************************************** +* +* GSM AMR-NB speech codec R98 Version 7.6.0 December 12, 2001 +* R99 Version 3.3.0 +* REL-4 Version 4.1.0 +* +******************************************************************************** +* +* File : d_plsf.h +* Purpose : common part (init, exit, reset) of LSF decoder +* module (rest in d_plsf_3.c and d_plsf_5.c) +* +******************************************************************************** +*/ +#ifndef d_plsf_h +#define d_plsf_h "$Id $" + +/* +******************************************************************************** +* INCLUDE FILES +******************************************************************************** +*/ +#include "tw_amr.h" +#include "typedef.h" +#include "cnst.h" + +/* +******************************************************************************** +* LOCAL VARIABLES AND TABLES +******************************************************************************** +*/ +/* +*--------------------------------------------------* +* Constants (defined in cnst.h) * +*--------------------------------------------------* +* M : LPC Order * +*--------------------------------------------------* +*/ + +/* +******************************************************************************** +* DEFINITION OF DATA TYPES +******************************************************************************** +*/ +typedef struct { + Word16 past_r_q[M]; /* Past quantized prediction error, Q15 */ + Word16 past_lsf_q[M]; /* Past dequantized lsfs, Q15 */ +} D_plsfState; + +/* +******************************************************************************** +* DECLARATION OF PROTOTYPES +******************************************************************************** +*/ + +/* +************************************************************************** +* +* Function : D_plsf_reset +* Purpose : Resets state memory +* Returns : 0 on success +* +************************************************************************** +*/ +void D_plsf_reset (D_plsfState *st); + +/* +************************************************************************** +* +* Function : D_plsf_5 +* Purpose : Decodes the 2 sets of LSP parameters in a frame +* using the received quantization indices. +* Description : The two sets of LSFs are quantized using split by +* 5 matrix quantization (split-MQ) with 1st order MA +* prediction. +* See "q_plsf_5.c" for more details about the +* quantization procedure +* Returns : 0 +* +************************************************************************** +*/ +int D_plsf_5 ( + D_plsfState *st, /* i/o: State variables */ + Word16 bfi, /* i : bad frame indicator (set to 1 if a bad + frame is received) */ + Word16 *indice, /* i : quantization indices of 5 submatrices, Q0 */ + Word16 *lsp1_q, /* o : quantized 1st LSP vector (M) Q15 */ + Word16 *lsp2_q /* o : quantized 2nd LSP vector (M) Q15 */ +); + +/************************************************************************* + * + * FUNCTION: D_plsf_3() + * + * PURPOSE: Decodes the LSP parameters using the received quantization + * indices.1st order MA prediction and split by 3 matrix + * quantization (split-MQ) + * + *************************************************************************/ + +void D_plsf_3( + D_plsfState *st, /* i/o: State struct */ + enum Mode mode, /* i : coder mode */ + Word16 bfi, /* i : bad frame indicator (set to 1 if a */ + /* bad frame is received) */ + Word16 * indice, /* i : quantization indices of 3 submatrices, Q0 */ + Word16 * lsp1_q /* o : quantized 1st LSP vector, Q15 */ +); + +/************************************************************************* + * + * FUNCTION: Init_D_plsf_3() + * + * PURPOSE: Set the past_r_q[M] vector to one of the eight + * past_rq_init vectors. + * + *************************************************************************/ +void Init_D_plsf_3(D_plsfState *st, /* i/o: State struct */ + Word16 index /* i : past_rq_init[] index [0, 7] */ +); + +#endif