1 /* 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 /* 12 * lpc_tables.h 13 * 14 * header file for coding tables for the LPC coefficients 15 * 16 */ 17 18 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_LPC_TABLES_H_ 19 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_LPC_TABLES_H_ 20 21 #include "structs.h" 22 23 #include "settings.h" 24 25 #define KLT_STEPSIZE 1.00000000 26 #define KLT_NUM_AVG_GAIN 0 27 #define KLT_NUM_AVG_SHAPE 0 28 #define KLT_NUM_MODELS 3 29 #define LPC_GAIN_SCALE 4.000f 30 #define LPC_LOBAND_SCALE 2.100f 31 #define LPC_LOBAND_ORDER ORDERLO 32 #define LPC_HIBAND_SCALE 0.450f 33 #define LPC_HIBAND_ORDER ORDERHI 34 #define LPC_GAIN_ORDER 2 35 36 #define LPC_SHAPE_ORDER (LPC_LOBAND_ORDER + LPC_HIBAND_ORDER) 37 38 #define KLT_ORDER_GAIN (LPC_GAIN_ORDER * SUBFRAMES) 39 #define KLT_ORDER_SHAPE (LPC_SHAPE_ORDER * SUBFRAMES) 40 41 /* cdf array for model indicator */ 42 extern const uint16_t WebRtcIsac_kQKltModelCdf[KLT_NUM_MODELS+1]; 43 44 /* pointer to cdf array for model indicator */ 45 extern const uint16_t *WebRtcIsac_kQKltModelCdfPtr[1]; 46 47 /* initial cdf index for decoder of model indicator */ 48 extern const uint16_t WebRtcIsac_kQKltModelInitIndex[1]; 49 50 /* offset to go from rounded value to quantization index */ 51 extern const short WebRtcIsac_kQKltQuantMinGain[12]; 52 53 extern const short WebRtcIsac_kQKltQuantMinShape[108]; 54 55 /* maximum quantization index */ 56 extern const uint16_t WebRtcIsac_kQKltMaxIndGain[12]; 57 58 extern const uint16_t WebRtcIsac_kQKltMaxIndShape[108]; 59 60 /* index offset */ 61 extern const uint16_t WebRtcIsac_kQKltOffsetGain[12]; 62 63 extern const uint16_t WebRtcIsac_kQKltOffsetShape[108]; 64 65 /* initial cdf index for KLT coefficients */ 66 extern const uint16_t WebRtcIsac_kQKltInitIndexGain[12]; 67 68 extern const uint16_t WebRtcIsac_kQKltInitIndexShape[108]; 69 70 /* quantizer representation levels */ 71 extern const double WebRtcIsac_kQKltLevelsGain[392]; 72 73 extern const double WebRtcIsac_kQKltLevelsShape[578]; 74 75 /* cdf tables for quantizer indices */ 76 extern const uint16_t WebRtcIsac_kQKltCdfGain[404]; 77 78 extern const uint16_t WebRtcIsac_kQKltCdfShape[686]; 79 80 /* pointers to cdf tables for quantizer indices */ 81 extern const uint16_t *WebRtcIsac_kQKltCdfPtrGain[12]; 82 83 extern const uint16_t *WebRtcIsac_kQKltCdfPtrShape[108]; 84 85 /* left KLT transforms */ 86 extern const double WebRtcIsac_kKltT1Gain[4]; 87 88 extern const double WebRtcIsac_kKltT1Shape[324]; 89 90 /* right KLT transforms */ 91 extern const double WebRtcIsac_kKltT2Gain[36]; 92 93 extern const double WebRtcIsac_kKltT2Shape[36]; 94 95 /* means of log gains and LAR coefficients */ 96 extern const double WebRtcIsac_kLpcMeansGain[12]; 97 98 extern const double WebRtcIsac_kLpcMeansShape[108]; 99 100 #endif /* WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_LPC_TABLES_H_ */ 101