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 Filename: /audio/gsm_amr/c/include/log2_norm.h 32 33 ------------------------------------------------------------------------------ 34 REVISION HISTORY 35 36 Description: Created separate header file for Log2_norm function. 37 38 Description: Updated function prototype declaration to reflect new interface. 39 A pointer to overflow flag is passed into the function. Updated 40 template. Added extern declaration for log2_tbl[] 41 42 Description: Moved _cplusplus #ifdef after Include section. 43 44 Who: Date: 45 Description: 46 47 ------------------------------------------------------------------------------ 48 INCLUDE DESCRIPTION 49 50 This file contains the prototype declaration for Log2_norm function. 51 52 ------------------------------------------------------------------------------ 53 */ 54 55 /*---------------------------------------------------------------------------- 56 ; CONTINUE ONLY IF NOT ALREADY DEFINED 57 ----------------------------------------------------------------------------*/ 58 #ifndef LOG2_NORM_H 59 #define LOG2_NORM_H 60 61 #define log2_h "$Id $" /* Used by legacy code */ 62 63 /*---------------------------------------------------------------------------- 64 ; INCLUDES 65 ----------------------------------------------------------------------------*/ 66 #include "typedef.h" 67 68 /*--------------------------------------------------------------------------*/ 69 #ifdef __cplusplus 70 extern "C" 71 { 72 #endif 73 74 /*---------------------------------------------------------------------------- 75 ; MACROS 76 ; Define module specific macros here 77 ----------------------------------------------------------------------------*/ 78 79 /*---------------------------------------------------------------------------- 80 ; DEFINES 81 ; Include all pre-processor statements here. 82 ----------------------------------------------------------------------------*/ 83 84 /*---------------------------------------------------------------------------- 85 ; EXTERNAL VARIABLES REFERENCES 86 ; Declare variables used in this module but defined elsewhere 87 ----------------------------------------------------------------------------*/ 88 extern const Word16 log2_tbl[]; 89 /*---------------------------------------------------------------------------- 90 ; SIMPLE TYPEDEF'S 91 ----------------------------------------------------------------------------*/ 92 93 /*---------------------------------------------------------------------------- 94 ; ENUMERATED TYPEDEF'S 95 ----------------------------------------------------------------------------*/ 96 97 /*---------------------------------------------------------------------------- 98 ; STRUCTURES TYPEDEF'S 99 ----------------------------------------------------------------------------*/ 100 101 /*---------------------------------------------------------------------------- 102 ; GLOBAL FUNCTION DEFINITIONS 103 ; Function Prototype declaration 104 ----------------------------------------------------------------------------*/ 105 void Log2_norm( 106 Word32 L_x, /* (i) : input value (normalized) */ 107 Word16 exp, /* (i) : norm_l (L_x) */ 108 Word16 *exponent, /* (o) : Integer part of Log2. (range: 0<=val<=30) */ 109 Word16 *fraction /* (o) : Fractional part of Log2. (range: 0<=val<1) */ 110 ); 111 112 /*---------------------------------------------------------------------------- 113 ; END 114 ----------------------------------------------------------------------------*/ 115 #ifdef __cplusplus 116 } 117 #endif 118 119 #endif /* _LOG2_NORM_H_ */ 120