123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- /*
- ********************************************************************************
- *
- * 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 : gc_pred.h
- * Purpose : codebook gain MA prediction
- *
- ********************************************************************************
- */
- #ifndef gc_pred_h
- #define gc_pred_h "$Id $"
-
- /*
- ********************************************************************************
- * INCLUDE FILES
- ********************************************************************************
- */
- #include "typedef.h"
- #include "mode.h"
- /*
- ********************************************************************************
- * LOCAL VARIABLES AND TABLES
- ********************************************************************************
- */
-
- /*
- ********************************************************************************
- * DEFINITION OF DATA TYPES
- ********************************************************************************
- */
- typedef struct {
- Word16 past_qua_en[4]; /* normal MA predictor memory, Q10 */
- /* (contains 20*log10(qua_err)) */
- Word16 past_qua_en_MR122[4]; /* MA predictor memory for MR122 mode, Q10 */
- /* (contains log2(qua_err)) */
- } gc_predState;
-
- /*
- ********************************************************************************
- * DECLARATION OF PROTOTYPES
- ********************************************************************************
- */
- int gc_pred_init (gc_predState **st);
- /* initialize one instance of codebook gain MA predictor
- Stores pointer to state struct in *st. This pointer has to
- be passed to gc_pred in each call.
- returns 0 on success
- */
-
- int gc_pred_reset (gc_predState *st);
- /* reset of codebook gain MA predictor state (i.e. set state memory to zero)
- returns 0 on success
- */
- void gc_pred_exit (gc_predState **st);
- /* de-initialize codebook gain MA predictor state (i.e. free state struct)
- stores NULL in *st
- */
- void
- gc_pred_copy(
- gc_predState *st_src, /* i : State struct */
- gc_predState *st_dest /* o : State struct */
- );
- /*************************************************************************
- *
- * FUNCTION: gc_pred()
- *
- * PURPOSE: MA prediction of the innovation energy
- * (in dB/(20*log10(2))) with mean removed).
- *
- *************************************************************************/
- void gc_pred(
- gc_predState *st, /* i/o: State struct */
- enum Mode mode, /* i : AMR mode */
- Word16 *code, /* i : innovative codebook vector (L_SUBFR) */
- /* MR122: Q12, other modes: Q13 */
- Word16 *exp_gcode0, /* o : exponent of predicted gain factor, Q0 */
- Word16 *frac_gcode0,/* o : fraction of predicted gain factor Q15 */
- Word16 *exp_en, /* o : exponent of innovation energy, Q0 */
- /* (only calculated for MR795) */
- Word16 *frac_en /* o : fraction of innovation energy, Q15 */
- /* (only calculated for MR795) */
- );
- /*************************************************************************
- *
- * FUNCTION: gc_pred_update()
- *
- * PURPOSE: update MA predictor with last quantized energy
- *
- *************************************************************************/
- void gc_pred_update(
- gc_predState *st, /* i/o: State struct */
- Word16 qua_ener_MR122, /* i : quantized energy for update, Q10 */
- /* (log2(qua_err)) */
- Word16 qua_ener /* i : quantized energy for update, Q10 */
- /* (20*log10(qua_err)) */
- );
- /*************************************************************************
- *
- * FUNCTION: gc_pred_average_limited()
- *
- * PURPOSE: get average of MA predictor state values (with a lower limit)
- * [used in error concealment]
- *
- *************************************************************************/
- void gc_pred_average_limited(
- gc_predState *st, /* i: State struct */
- Word16 *ener_avg_MR122, /* o: averaged quantized energy, Q10 */
- /* (log2(qua_err)) */
- Word16 *ener_avg /* o: averaged quantized energy, Q10 */
- /* (20*log10(qua_err)) */
- );
- #endif
|