1b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* 2b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 3b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 4b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Use of this source code is governed by a BSD-style license 5b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * that can be found in the LICENSE file in the root of the source 6b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * tree. An additional intellectual property rights grant can be found 7b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * in the file PATENTS. All contributing project authors may 8b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * be found in the AUTHORS file in the root of the source tree. 9b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */ 10b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 11b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/****************************************************************** 12b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 13b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org iLBC Speech Coder ANSI-C Source Code 14b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 15b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org define.h 16b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 17b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org******************************************************************/ 18b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_ILBC_MAIN_SOURCE_DEFINES_H_ 19b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define WEBRTC_MODULES_AUDIO_CODING_CODECS_ILBC_MAIN_SOURCE_DEFINES_H_ 20b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 2169370488385c14d73e6ae8a3d5001c42884f9275henrike@webrtc.org#include <string.h> 22a11402cdbf99a12d58421d5b446982e8d30c40caandresp@webrtc.org#include "signal_processing_library.h" 23a11402cdbf99a12d58421d5b446982e8d30c40caandresp@webrtc.org#include "webrtc/typedefs.h" 24b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 25b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* general codec settings */ 26b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 27b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define FS 8000 28b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define BLOCKL_20MS 160 29b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define BLOCKL_30MS 240 30b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define BLOCKL_MAX 240 31b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define NSUB_20MS 4 32b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define NSUB_30MS 6 33b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define NSUB_MAX 6 34b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define NASUB_20MS 2 35b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define NASUB_30MS 4 36b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define NASUB_MAX 4 37b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define SUBL 40 38b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define STATE_LEN 80 39b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define STATE_SHORT_LEN_30MS 58 40b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define STATE_SHORT_LEN_20MS 57 41b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 42b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* LPC settings */ 43b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 44b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define LPC_FILTERORDER 10 45b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define LPC_LOOKBACK 60 46b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define LPC_N_20MS 1 47b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define LPC_N_30MS 2 48b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define LPC_N_MAX 2 49b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define LPC_ASYMDIFF 20 50b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define LSF_NSPLIT 3 51b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define LSF_NUMBER_OF_STEPS 4 52b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define LPC_HALFORDER 5 53b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define COS_GRID_POINTS 60 54b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 55b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* cb settings */ 56b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 57b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define CB_NSTAGES 3 58b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define CB_EXPAND 2 59b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define CB_MEML 147 60b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define CB_FILTERLEN (2*4) 61b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define CB_HALFFILTERLEN 4 62b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define CB_RESRANGE 34 63b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define CB_MAXGAIN_FIXQ6 83 /* error = -0.24% */ 64b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define CB_MAXGAIN_FIXQ14 21299 65b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 66b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* enhancer */ 67b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 68b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_BLOCKL 80 /* block length */ 69b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_BLOCKL_HALF (ENH_BLOCKL/2) 70b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_HL 3 /* 2*ENH_HL+1 is number blocks 71b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org in said second sequence */ 72b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_SLOP 2 /* max difference estimated and 73b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org correct pitch period */ 74b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_PLOCSL 8 /* pitch-estimates and 75b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org pitch-locations buffer length */ 76b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_OVERHANG 2 77b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_UPS0 4 /* upsampling rate */ 78b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_FL0 3 /* 2*FLO+1 is the length of each filter */ 79b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_FLO_MULT2_PLUS1 7 80b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_VECTL (ENH_BLOCKL+2*ENH_FL0) 81b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_CORRDIM (2*ENH_SLOP+1) 82b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_NBLOCKS (BLOCKL/ENH_BLOCKL) 83b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_NBLOCKS_EXTRA 5 84b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_NBLOCKS_TOT 8 /* ENH_NBLOCKS+ENH_NBLOCKS_EXTRA */ 85b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_BUFL (ENH_NBLOCKS_TOT)*ENH_BLOCKL 86b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_BUFL_FILTEROVERHEAD 3 87b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_A0 819 /* Q14 */ 88b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_A0_MINUS_A0A0DIV4 848256041 /* Q34 */ 89b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ENH_A0DIV2 26843546 /* Q30 */ 90b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 91b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* PLC */ 92b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 93b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* Down sampling */ 94b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 95b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define FILTERORDER_DS_PLUS1 7 96b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define DELAY_DS 3 97b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define FACTOR_DS 2 98b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 99b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* bit stream defs */ 100b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 101b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define NO_OF_BYTES_20MS 38 102b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define NO_OF_BYTES_30MS 50 103b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define NO_OF_WORDS_20MS 19 104b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define NO_OF_WORDS_30MS 25 105b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define STATE_BITS 3 106b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define BYTE_LEN 8 107b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ULP_CLASSES 3 108b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 109b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* help parameters */ 110b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 111b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define TWO_PI_FIX 25736 /* Q12 */ 112b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 113b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* Constants for codebook search and creation */ 114b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 115b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define ST_MEM_L_TBL 85 116b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define MEM_LF_TBL 147 117b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 118b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 119b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* Struct for the bits */ 120b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgtypedef struct iLBC_bits_t_ { 121fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t lsf[LSF_NSPLIT*LPC_N_MAX]; 122fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t cb_index[CB_NSTAGES*(NASUB_MAX+1)]; /* First CB_NSTAGES values contains extra CB index */ 123fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t gain_index[CB_NSTAGES*(NASUB_MAX+1)]; /* First CB_NSTAGES values contains extra CB gain */ 124fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t idxForMax; 125fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t state_first; 126fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t idxVec[STATE_SHORT_LEN_30MS]; 127fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t firstbits; 128fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t startIdx; 129b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} iLBC_bits; 130b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 131b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* type definition encoder instance */ 132b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgtypedef struct iLBC_Enc_Inst_t_ { 133b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 134b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* flag for frame size mode */ 135fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t mode; 136b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 137b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* basic parameters for different frame sizes */ 138fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t blockl; 139fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t nsub; 140fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t nasub; 141fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t no_of_bytes, no_of_words; 142fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t lpc_n; 143fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t state_short_len; 144b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 145b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* analysis filter state */ 146fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t anaMem[LPC_FILTERORDER]; 147b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 148b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* Fix-point old lsf parameters for interpolation */ 149fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t lsfold[LPC_FILTERORDER]; 150fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t lsfdeqold[LPC_FILTERORDER]; 151b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 152b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* signal buffer for LP analysis */ 153fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t lpc_buffer[LPC_LOOKBACK + BLOCKL_MAX]; 154b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 155b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* state of input HP filter */ 156fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t hpimemx[2]; 157fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t hpimemy[4]; 158b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 159b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#ifdef SPLIT_10MS 160fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t weightdenumbuf[66]; 161fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t past_samples[160]; 162fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org uint16_t bytes[25]; 163fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t section; 164fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t Nfor_flag; 165fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t Nback_flag; 166fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t start_pos; 167fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t diff; 168b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#endif 169b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 170b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} iLBC_Enc_Inst_t; 171b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 172b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* type definition decoder instance */ 173b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgtypedef struct iLBC_Dec_Inst_t_ { 174b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 175b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* flag for frame size mode */ 176fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t mode; 177b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 178b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* basic parameters for different frame sizes */ 179fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t blockl; 180fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t nsub; 181fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t nasub; 182fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t no_of_bytes, no_of_words; 183fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t lpc_n; 184fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t state_short_len; 185b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 186b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* synthesis filter state */ 187fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t syntMem[LPC_FILTERORDER]; 188b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 189b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* old LSF for interpolation */ 190fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t lsfdeqold[LPC_FILTERORDER]; 191b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 192b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* pitch lag estimated in enhancer and used in PLC */ 193b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org int last_lag; 194b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 195b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* PLC state information */ 196b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org int consPLICount, prev_enh_pl; 197fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t perSquare; 198b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 199fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t prevScale, prevPLI; 200fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t prevLag, prevLpc[LPC_FILTERORDER+1]; 201fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t prevResidual[NSUB_MAX*SUBL]; 202fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t seed; 203b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 204b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* previous synthesis filter parameters */ 205b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 206fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t old_syntdenum[(LPC_FILTERORDER + 1)*NSUB_MAX]; 207b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 208b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* state of output HP filter */ 209fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t hpimemx[2]; 210fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t hpimemy[4]; 211b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 212b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* enhancer state information */ 213b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org int use_enhancer; 214fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t enh_buf[ENH_BUFL+ENH_BUFL_FILTEROVERHEAD]; 215fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t enh_period[ENH_NBLOCKS_TOT]; 216b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 217b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} iLBC_Dec_Inst_t; 218b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 219b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#endif 220