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 ****************************************************************************************/
33 ------------------------------------------------------------------------------
36 This file contains all the constant definitions and prototype definitions
39 ------------------------------------------------------------------------------
42 /*----------------------------------------------------------------------------
43 ; CONTINUE ONLY IF NOT ALREADY DEFINED
44 ----------------------------------------------------------------------------*/
48 /*----------------------------------------------------------------------------
50 ----------------------------------------------------------------------------*/
55 /*--------------------------------------------------------------------------*/
61 /*----------------------------------------------------------------------------
63 ; Define module specific macros here
64 ----------------------------------------------------------------------------*/
66 /*----------------------------------------------------------------------------
68 ; Include all pre-processor statements here.
69 ----------------------------------------------------------------------------*/
71 /*----------------------------------------------------------------------------
72 ; EXTERNAL VARIABLES REFERENCES
73 ; Declare variables used in this module but defined elsewhere
74 ----------------------------------------------------------------------------*/
76 /*----------------------------------------------------------------------------
78 ----------------------------------------------------------------------------*/
80 /*----------------------------------------------------------------------------
81 ; ENUMERATED TYPEDEF'S
82 ----------------------------------------------------------------------------*/
84 /*----------------------------------------------------------------------------
85 ; STRUCTURES TYPEDEF'S
86 ----------------------------------------------------------------------------*/
94 /* Quantization state */
99 /*----------------------------------------------------------------------------
100 ; GLOBAL FUNCTION DEFINITIONS
101 ; Function Prototype declaration
102 ----------------------------------------------------------------------------*/
104 **************************************************************************
106 * Function : lsp_init
107 * Purpose : Allocates memory and initializes state variables
108 * Description : Stores pointer to filter status struct in *st. This
109 * pointer has to be passed to lsp in each call.
110 * Returns : 0 on success
112 **************************************************************************
114 OSCL_IMPORT_REF Word16 lsp_init(lspState **st);
117 **************************************************************************
119 * Function : lsp_reset
120 * Purpose : Resets state memory
121 * Returns : 0 on success
123 **************************************************************************
125 OSCL_IMPORT_REF Word16 lsp_reset(lspState *st);
128 **************************************************************************
130 * Function : lsp_exit
131 * Purpose : The memory used for state memory is freed
132 * Description : Stores NULL in *st
134 **************************************************************************
136 OSCL_IMPORT_REF void lsp_exit(lspState **st);
139 **************************************************************************
142 * Purpose : Conversion from LP coefficients to LSPs.
143 * Quantization of LSPs.
144 * Description : Generates 2 sets of LSPs from 2 sets of
145 * LP coefficients for mode 12.2. For the other
146 * modes 1 set of LSPs is generated from 1 set of
147 * LP coefficients. These LSPs are quantized with
148 * Matrix/Vector quantization (depending on the mode)
149 * and interpolated for the subframes not yet having
152 **************************************************************************
154 OSCL_IMPORT_REF void lsp(lspState *st, /* i/o : State struct */
155 enum Mode req_mode, /* i : requested coder mode */
156 enum Mode used_mode,/* i : used coder mode */
157 Word16 az[], /* i/o : interpolated LP parameters Q12 */
158 Word16 azQ[], /* o : quantization interpol. LP parameters Q12*/
159 Word16 lsp_new[], /* o : new lsp vector */
160 Word16 **anap, /* o : analysis parameters */
161 Flag *pOverflow /* o : Flag set when overflow occurs */
164 /*----------------------------------------------------------------------------
166 ----------------------------------------------------------------------------*/