FreeCalypso > hg > gsm-codec-lib
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 389:9cd332a94c97 | 390:bde9f5804670 |
|---|---|
| 1 /* | |
| 2 ******************************************************************************** | |
| 3 * | |
| 4 * GSM AMR-NB speech codec R98 Version 7.6.0 December 12, 2001 | |
| 5 * R99 Version 3.3.0 | |
| 6 * REL-4 Version 4.1.0 | |
| 7 * | |
| 8 ******************************************************************************** | |
| 9 * | |
| 10 * File : ph_disp.h | |
| 11 * Purpose : Phase dispersion of excitation signal | |
| 12 * | |
| 13 ******************************************************************************** | |
| 14 */ | |
| 15 | |
| 16 #ifndef ph_disp_h | |
| 17 #define ph_disp_h "$Id $" | |
| 18 | |
| 19 /* | |
| 20 ******************************************************************************** | |
| 21 * INCLUDE FILES | |
| 22 ******************************************************************************** | |
| 23 */ | |
| 24 #include "tw_amr.h" | |
| 25 #include "typedef.h" | |
| 26 | |
| 27 /* | |
| 28 ******************************************************************************** | |
| 29 * LOCAL VARIABLES AND TABLES | |
| 30 ******************************************************************************** | |
| 31 */ | |
| 32 #define PHDGAINMEMSIZE 5 | |
| 33 #define PHDTHR1LTP 9830 /* 0.6 in Q14 */ | |
| 34 #define PHDTHR2LTP 14746 /* 0.9 in Q14 */ | |
| 35 #define ONFACTPLUS1 16384 /* 2.0 in Q13 */ | |
| 36 #define ONLENGTH 2 | |
| 37 /* | |
| 38 ******************************************************************************** | |
| 39 * DEFINITION OF DATA TYPES | |
| 40 ******************************************************************************** | |
| 41 */ | |
| 42 typedef struct { | |
| 43 Word16 gainMem[PHDGAINMEMSIZE]; | |
| 44 Word16 prevState; | |
| 45 Word16 prevCbGain; | |
| 46 Word16 lockFull; | |
| 47 Word16 onset; | |
| 48 } ph_dispState; | |
| 49 | |
| 50 /* | |
| 51 ******************************************************************************** | |
| 52 * DECLARATION OF PROTOTYPES | |
| 53 ******************************************************************************** | |
| 54 */ | |
| 55 | |
| 56 /************************************************************************* | |
| 57 * | |
| 58 * Function: ph_disp_reset | |
| 59 * Purpose: Initializes state memory | |
| 60 * | |
| 61 ************************************************************************** | |
| 62 */ | |
| 63 void ph_disp_reset (ph_dispState *state); | |
| 64 | |
| 65 /************************************************************************* | |
| 66 * | |
| 67 * Function: ph_disp_lock | |
| 68 * Purpose: mark phase dispersion as locked in state struct | |
| 69 * | |
| 70 ************************************************************************** | |
| 71 */ | |
| 72 void ph_disp_lock (ph_dispState *state); | |
| 73 | |
| 74 /************************************************************************* | |
| 75 * | |
| 76 * Function: ph_disp_release | |
| 77 * Purpose: mark phase dispersion as unlocked in state struct | |
| 78 * | |
| 79 ************************************************************************** | |
| 80 */ | |
| 81 void ph_disp_release (ph_dispState *state); | |
| 82 | |
| 83 /************************************************************************* | |
| 84 * | |
| 85 * Function: ph_disp | |
| 86 * Purpose: perform phase dispersion according to the specified codec | |
| 87 * mode and computes total excitation for synthesis part | |
| 88 * if decoder | |
| 89 * | |
| 90 ************************************************************************** | |
| 91 */ | |
| 92 void ph_disp ( | |
| 93 ph_dispState *state, /* i/o : State struct */ | |
| 94 enum Mode mode, /* i : codec mode */ | |
| 95 Word16 x[], /* i/o Q0 : in: LTP excitation signal */ | |
| 96 /* out: total excitation signal */ | |
| 97 Word16 cbGain, /* i Q1 : Codebook gain */ | |
| 98 Word16 ltpGain, /* i Q14 : LTP gain */ | |
| 99 Word16 inno[], /* i Q13 : Innovation vector (Q12 for 12.2) */ | |
| 100 Word16 pitch_fac, /* i Q14 : pitch factor used to scale the | |
| 101 LTP excitation (Q13 for 12.2) */ | |
| 102 Word16 tmp_shift /* i Q0 : shift factor applied to sum of | |
| 103 scaled LTP ex & innov. before | |
| 104 rounding */ | |
| 105 ); | |
| 106 | |
| 107 #endif |
