FreeCalypso > hg > gsm-codec-lib
diff libtwamr/ph_disp.h @ 390:bde9f5804670
libtwamr: integrate ph_disp.c
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 06 May 2024 18:20:22 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtwamr/ph_disp.h Mon May 06 18:20:22 2024 +0000 @@ -0,0 +1,107 @@ +/* +******************************************************************************** +* +* 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 : ph_disp.h +* Purpose : Phase dispersion of excitation signal +* +******************************************************************************** +*/ + +#ifndef ph_disp_h +#define ph_disp_h "$Id $" + +/* +******************************************************************************** +* INCLUDE FILES +******************************************************************************** +*/ +#include "tw_amr.h" +#include "typedef.h" + +/* +******************************************************************************** +* LOCAL VARIABLES AND TABLES +******************************************************************************** +*/ +#define PHDGAINMEMSIZE 5 +#define PHDTHR1LTP 9830 /* 0.6 in Q14 */ +#define PHDTHR2LTP 14746 /* 0.9 in Q14 */ +#define ONFACTPLUS1 16384 /* 2.0 in Q13 */ +#define ONLENGTH 2 +/* +******************************************************************************** +* DEFINITION OF DATA TYPES +******************************************************************************** +*/ +typedef struct { + Word16 gainMem[PHDGAINMEMSIZE]; + Word16 prevState; + Word16 prevCbGain; + Word16 lockFull; + Word16 onset; +} ph_dispState; + +/* +******************************************************************************** +* DECLARATION OF PROTOTYPES +******************************************************************************** +*/ + +/************************************************************************* +* +* Function: ph_disp_reset +* Purpose: Initializes state memory +* +************************************************************************** +*/ +void ph_disp_reset (ph_dispState *state); + +/************************************************************************* +* +* Function: ph_disp_lock +* Purpose: mark phase dispersion as locked in state struct +* +************************************************************************** +*/ +void ph_disp_lock (ph_dispState *state); + +/************************************************************************* +* +* Function: ph_disp_release +* Purpose: mark phase dispersion as unlocked in state struct +* +************************************************************************** +*/ +void ph_disp_release (ph_dispState *state); + +/************************************************************************* +* +* Function: ph_disp +* Purpose: perform phase dispersion according to the specified codec +* mode and computes total excitation for synthesis part +* if decoder +* +************************************************************************** +*/ +void ph_disp ( + ph_dispState *state, /* i/o : State struct */ + enum Mode mode, /* i : codec mode */ + Word16 x[], /* i/o Q0 : in: LTP excitation signal */ + /* out: total excitation signal */ + Word16 cbGain, /* i Q1 : Codebook gain */ + Word16 ltpGain, /* i Q14 : LTP gain */ + Word16 inno[], /* i Q13 : Innovation vector (Q12 for 12.2) */ + Word16 pitch_fac, /* i Q14 : pitch factor used to scale the + LTP excitation (Q13 for 12.2) */ + Word16 tmp_shift /* i Q0 : shift factor applied to sum of + scaled LTP ex & innov. before + rounding */ +); + +#endif