1 /* ------------------------------------------------------------------ 2 * Copyright (C) 1998-2009 PacketVideo 3 * 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 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 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 13 * express or implied. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * ------------------------------------------------------------------- 17 */ 18 /**************************************************************************************** 19 Portions of this file are derived from the following 3GPP standard: 20 21 3GPP TS 26.073 22 ANSI-C code for the Adaptive Multi-Rate (AMR) speech codec 23 Available from http://www.3gpp.org 24 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 ****************************************************************************************/ 29 /* 30 ------------------------------------------------------------------------------ 31 32 33 34 Filename: /audio/gsm_amr/c/src/include/lpc.h 35 36 Date: 01/29/2002 37 38 ------------------------------------------------------------------------------ 39 REVISION HISTORY 40 41 Description: Replaced "int" and/or "char" with OSCL defined types. 42 43 Description: Moved _cplusplus #ifdef after Include section. 44 45 Description: 46 47 ------------------------------------------------------------------------------ 48 INCLUDE DESCRIPTION 49 50 File : lpc.h 51 Purpose : 2 LP analyses centered at 2nd and 4th subframe 52 for mode 12.2. For all other modes a 53 LP analysis centered at 4th subframe is 54 performed. 55 56 ------------------------------------------------------------------------------ 57 */ 58 59 #ifndef _LPC_H_ 60 #define _LPC_H_ 61 #define lpc_h "$Id $" 62 63 /*---------------------------------------------------------------------------- 64 ; INCLUDES 65 ----------------------------------------------------------------------------*/ 66 #include "typedef.h" 67 #include "levinson.h" 68 #include "mode.h" 69 70 71 /*--------------------------------------------------------------------------*/ 72 #ifdef __cplusplus 73 extern "C" 74 { 75 #endif 76 77 /*---------------------------------------------------------------------------- 78 ; MACROS 79 ; [Define module specific macros here] 80 ----------------------------------------------------------------------------*/ 81 82 /*---------------------------------------------------------------------------- 83 ; DEFINES 84 ; [Include all pre-processor statements here.] 85 ----------------------------------------------------------------------------*/ 86 87 /*---------------------------------------------------------------------------- 88 ; EXTERNAL VARIABLES REFERENCES 89 ; [Declare variables used in this module but defined elsewhere] 90 ----------------------------------------------------------------------------*/ 91 92 /*---------------------------------------------------------------------------- 93 ; SIMPLE TYPEDEF'S 94 ----------------------------------------------------------------------------*/ 95 96 /*---------------------------------------------------------------------------- 97 ; ENUMERATED TYPEDEF'S 98 ----------------------------------------------------------------------------*/ 99 100 /*---------------------------------------------------------------------------- 101 ; STRUCTURES TYPEDEF'S 102 ----------------------------------------------------------------------------*/ 103 typedef struct 104 { 105 LevinsonState *levinsonSt; 106 } lpcState; 107 108 109 /*---------------------------------------------------------------------------- 110 ; GLOBAL FUNCTION DEFINITIONS 111 ; [List function prototypes here] 112 ----------------------------------------------------------------------------*/ 113 Word16 lpc_init(lpcState **st); 114 /* initialize one instance of the pre processing state. 115 Stores pointer to filter status struct in *st. This pointer has to 116 be passed to lpc in each call. 117 returns 0 on success 118 */ 119 120 Word16 lpc_reset(lpcState *st); 121 /* reset of pre processing state (i.e. set state memory to zero) 122 returns 0 on success 123 */ 124 void lpc_exit(lpcState **st); 125 /* de-initialize pre processing state (i.e. free status struct) 126 stores NULL in *st 127 */ 128 129 void lpc( 130 lpcState *st, /* i/o: State struct */ 131 enum Mode mode, /* i : coder mode */ 132 Word16 x[], /* i : Input signal Q15 */ 133 Word16 x_12k2[], /* i : Input signal (EFR) Q15 */ 134 Word16 a[], /* o : predictor coefficients Q12 */ 135 Flag *pOverflow 136 ); 137 138 139 #ifdef __cplusplus 140 } 141 #endif 142 143 #endif /* _LPC_H_ */ 144 145 146 147 148