/* ******************************************************************************** * * 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 : cl_ltp.h * Purpose : Closed-loop fractional pitch search * ******************************************************************************** */ #ifndef cl_ltp_h #define cl_ltp_h "$Id $" /* ******************************************************************************** * INCLUDE FILES ******************************************************************************** */ #include "typedef.h" #include "mode.h" #include "pitch_fr.h" #include "ton_stab.h" /* ******************************************************************************** * LOCAL VARIABLES AND TABLES ******************************************************************************** */ /* ******************************************************************************** * DEFINITION OF DATA TYPES ******************************************************************************** */ /* state variable */ typedef struct { Pitch_frState *pitchSt; } clLtpState; /* ******************************************************************************** * DECLARATION OF PROTOTYPES ******************************************************************************** */ int cl_ltp_init (clLtpState **st); /* initialize one instance of the pre processing state. Stores pointer to filter status struct in *st. This pointer has to be passed to cl_ltp in each call. returns 0 on success */ int cl_ltp_reset (clLtpState *st); /* reset of pre processing state (i.e. set state memory to zero) returns 0 on success */ void cl_ltp_exit (clLtpState **st); /* de-initialize pre processing state (i.e. free status struct) stores NULL in *st */ int cl_ltp( clLtpState *clSt, /* i/o : State struct */ tonStabState *tonSt, /* i/o : State struct */ enum Mode mode, /* i : coder mode */ Word16 frameOffset, /* i : Offset to subframe */ Word16 T_op[], /* i : Open loop pitch lags */ Word16 *h1, /* i : Impulse response vector Q12 */ Word16 *exc, /* i/o : Excitation vector Q0 */ Word16 res2[], /* i/o : Long term prediction residual Q0 */ Word16 xn[], /* i : Target vector for pitch search Q0 */ Word16 lsp_flag, /* i : LSP resonance flag */ Word16 xn2[], /* o : Target vector for codebook search Q0 */ Word16 y1[], /* o : Filtered adaptive excitation Q0 */ Word16 *T0, /* o : Pitch delay (integer part) */ Word16 *T0_frac, /* o : Pitch delay (fractional part) */ Word16 *gain_pit, /* o : Pitch gain Q14 */ Word16 g_coeff[], /* o : Correlations between xn, y1, & y2 */ Word16 **anap, /* o : Analysis parameters */ Word16 *gp_limit /* o : pitch gain limit */ ); #endif