1 /* ------------------------------------------------------------------
2 * Copyright (C) 1998-2009 PacketVideo
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
14 * See the License for the specific language governing permissions
15 * and limitations under the License.
16 * -------------------------------------------------------------------
18 /****************************************************************************************
19 Portions of this file are derived from the following 3GPP standard:
22 ANSI-C code for the Adaptive Multi-Rate (AMR) speech codec
23 Available from http://www.3gpp.org
25 (C) 2004, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC)
26 Permission to distribute, modify and use this file under the standard license
27 terms listed above has been obtained from the copyright holder.
28 ****************************************************************************************/
30 ------------------------------------------------------------------------------
36 ------------------------------------------------------------------------------
39 This file contains all the constant definitions and prototype definitions
40 needed by the comfort noise(CN) generator functions
42 ------------------------------------------------------------------------------
48 /*----------------------------------------------------------------------------
50 ----------------------------------------------------------------------------*/
51 #include "basicop_malloc.h"
53 /*--------------------------------------------------------------------------*/
59 /*----------------------------------------------------------------------------
61 ; Define module specific macros here
62 ----------------------------------------------------------------------------*/
64 /*----------------------------------------------------------------------------
66 ; Include all pre-processor statements here.
67 ----------------------------------------------------------------------------*/
69 /*----------------------------------------------------------------------------
70 ; EXTERNAL VARIABLES REFERENCES
71 ; Declare variables used in this module but defined elsewhere
72 ----------------------------------------------------------------------------*/
74 /*----------------------------------------------------------------------------
76 ----------------------------------------------------------------------------*/
78 /*----------------------------------------------------------------------------
79 ; ENUMERATED TYPEDEF'S
80 ----------------------------------------------------------------------------*/
82 /*----------------------------------------------------------------------------
83 ; STRUCTURES TYPEDEF'S
84 ----------------------------------------------------------------------------*/
86 /*----------------------------------------------------------------------------
87 ; GLOBAL FUNCTION DEFINITIONS
88 ; Function Prototype declaration
89 ----------------------------------------------------------------------------*/
91 /*----------------------------------------------------------------------------
93 ; FUNCTION NAME: pseudonoise
95 ; PURPOSE: Generate a random integer value to use in comfort noise
96 ; generation. The algorithm uses polynomial x^31 + x^3 + 1
97 ; (length of PN sequence is 2^31 - 1).
99 ----------------------------------------------------------------------------*/
102 Word32 *pShift_reg, /* i/o : Old CN generator shift register state */
103 Word16 no_bits /* i : Number of bits */
106 /*----------------------------------------------------------------------------
108 ; FUNCTION NAME: build_CN_code
110 ; PURPOSE: Compute the comfort noise fixed codebook excitation. The
111 ; gains of the pulses are always +/-1.
113 ----------------------------------------------------------------------------*/
116 Word32 *pSeed, /* i/o : Old CN generator shift register state */
117 Word16 cod[], /* o : Generated CN fixed codebook vector */
118 Flag *pOverflow /* i/o : Overflow flag */
121 /*----------------------------------------------------------------------------
123 ; FUNCTION NAME: build_CN_param
125 ; PURPOSE: Randomize the speech parameters. So that they
126 ; do not produce tonal artifacts if used by ECU.
128 ----------------------------------------------------------------------------*/
131 Word16 *pSeed, /* i/o : Old CN generator shift register state */
132 const Word16 n_param, /* i : number of params */
133 const Word16 param_size_table[], /* i : size of params */
134 Word16 parm[], /* o : CN Generated params */
135 const Word16* window_200_40_ptr, /* i : ptr to read-only table */
136 Flag *pOverflow /* i/o : Overflow Flag */
139 /*----------------------------------------------------------------------------
141 ----------------------------------------------------------------------------*/
146 #endif /* _B_CN_COD_H_ */