rtphone/src/libs/libevs/lib_com/basop_proto_func.h

42 lines
1.8 KiB
C++

/*====================================================================================
EVS Codec 3GPP TS26.443 Nov 13, 2018. Version 12.11.0 / 13.7.0 / 14.3.0 / 15.1.0
====================================================================================*/
#ifndef BASOP_PROTO_FUNC_H
#define BASOP_PROTO_FUNC_H
#include "stl.h"
#include "basop_util.h"
namespace evs {
/* tcx_lpc_cdk.h */
#define LSF_GAP_VAL(x) (Word16)((x)*2.0f*1.28f)
#define LSFM(x) FL2WORD16_SCALE(x*1.28, 15-1) /* 14Q1*1.28 */
/* cnst.h */
#define GAMMA1_INV 17809 /* weighting factor (numerator) default:0.92 (1Q14format) */
#define GAMMA16k_INV 17430 /* weighting factor (numerator) default:0.94 (1Q14format) */
#define FS_2 16384 /* isf max value (Use in reorder_fx.c) */
#define INT_FS_FX 12800 /* internal sampling frequency */
void basop_lsp2a_stab(const Word16 *lsp, Word16 *a);
void basop_lsf2lsp(const Word16 lsf[], Word16 lsp[]);
void basop_weight_a(const Word16 *a, Word16 *ap, const Word16 gamma);
void basop_weight_a_inv(const Word16 *a, Word16 *ap, const Word16 inv_gamma);
void basop_E_LPC_a_add_tilt(const Word16 *a, Word16 *ap, Word16 gamma);
void basop_reorder_lsf(Word16 *lsf, const Word16 min_dist, const Word16 n, const Word32 fs);
void basop_E_LPC_f_lsp_a_conversion(const Word16 *lsp, Word16 *a, const Word16 m);
/* tcx_utils.c */
void basop_lpc2mdct(Word16 *lpcCoeffs, Word16 lpcOrder,
Word16 *mdct_gains, Word16 *mdct_gains_exp,
Word16 *mdct_inv_gains, Word16 *mdct_inv_gains_exp);
void basop_PsychAdaptLowFreqDeemph(Word32 x[], const Word16 lpcGains[], const Word16 lpcGains_e[], Word16 lf_deemph_factors[]);
void basop_mdct_noiseShaping_interp(Word32 x[], Word16 lg, Word16 gains[], Word16 gains_exp[]);
} // end of namespace
#endif