FreeCalypso > hg > gsm-codec-lib
diff libtwamr/b_cn_cod.h @ 255:07f936338de1
libtwamr: integrated up to b_cn_cod.c
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 05 Apr 2024 17:31:49 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtwamr/b_cn_cod.h Fri Apr 05 17:31:49 2024 +0000 @@ -0,0 +1,104 @@ +/* +******************************************************************************** +* +* 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 : b_cn_cod.h +* Purpose : Contains function for comfort noise generation. +* +******************************************************************************** +*/ +#ifndef b_cn_cod_h +#define b_cn_cod_h "$Id $" + +/* +******************************************************************************** +* INCLUDE FILES +******************************************************************************** +*/ +#include "typedef.h" + +/* +******************************************************************************** +* DEFINITION OF DATA TYPES +******************************************************************************** +*/ + +/* +******************************************************************************** +* DECLARATION OF PROTOTYPES +******************************************************************************** +*/ + +/************************************************************************* + * + * FUNCTION NAME: pseudonoise + * + * PURPOSE: Generate a random integer value to use in comfort noise + * generation. The algorithm uses polynomial x^31 + x^3 + 1 + * (length of PN sequence is 2^31 - 1). + * + * INPUTS: *shift_reg Old CN generator shift register state + * + * + * OUTPUTS: *shift_reg Updated CN generator shift register state + * + * RETURN VALUE: Generated random integer value + * + *************************************************************************/ + +Word16 pseudonoise ( + Word32 *shift_reg, /* i/o : Old CN generator shift register state */ + Word16 no_bits /* i : Number of bits */ +); + +/************************************************************************* + * + * FUNCTION NAME: build_CN_code + * + * PURPOSE: Compute the comfort noise fixed codebook excitation. The + * gains of the pulses are always +/-1. + * + * INPUTS: *seed Old CN generator shift register state + * + * OUTPUTS: cod[0..39] Generated comfort noise fixed codebook vector + * *seed Updated CN generator shift register state + * + * RETURN VALUE: none + * + *************************************************************************/ +void build_CN_code ( + Word32 *seed, /* i/o : Old CN generator shift register state */ + Word16 cod[] /* o : Generated CN fixed codebook vector */ +); + +/************************************************************************* + * + * FUNCTION NAME: build_CN_param + * + * PURPOSE: Randomize the speech parameters. So that they + * do not produce tonal artifacts if used by ECU. + * + * INPUTS: *seed Old CN generator shift register state + * n_param, Number of parameters to randomize + * parm_size_table, + * + * + * OUTPUTS: parm CN Generated Parameters + * *seed Updated CN generator shift register state + * + * RETURN VALUE: none + * + *************************************************************************/ +void build_CN_param ( + Word16 *seed, /* i/o : Old CN generator shift register state */ + const Word16 n_param, /* i : number of params */ + const Word16 param_size_table[], /* i : size of params */ + Word16 parm[] /* o : CN Generated Params*/ +); + +#endif