00001 /*****************************************************************************/ 00002 /* BroadVoice(R)16 (BV16) Floating-Point ANSI-C Source Code */ 00003 /* Revision Date: August 19, 2009 */ 00004 /* Version 1.0 */ 00005 /*****************************************************************************/ 00006 00007 /*****************************************************************************/ 00008 /* Copyright 2000-2009 Broadcom Corporation */ 00009 /* */ 00010 /* This software is provided under the GNU Lesser General Public License, */ 00011 /* version 2.1, as published by the Free Software Foundation ("LGPL"). */ 00012 /* This program is distributed in the hope that it will be useful, but */ 00013 /* WITHOUT ANY SUPPORT OR WARRANTY; without even the implied warranty of */ 00014 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LGPL for */ 00015 /* more details. A copy of the LGPL is available at */ 00016 /* http://www.broadcom.com/licenses/LGPLv2.1.php, */ 00017 /* or by writing to the Free Software Foundation, Inc., */ 00018 /* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 00019 /*****************************************************************************/ 00020 00021 00022 /***************************************************************************** 00023 bv16strct.h : BV16 data structures 00024 00025 $Log: bv16strct.h,v $ 00026 Revision 1.1.1.1 2009/11/19 12:10:48 steveu 00027 Start from Broadcom's code 00028 00029 Revision 1.1.1.1 2009/11/17 14:06:02 steveu 00030 start 00031 00032 ******************************************************************************/ 00033 00034 #include "typedef.h" 00035 #include "bv16cnst.h" 00036 #include "bvcommon.h" 00037 00038 #if !defined(_BV16STRCT_H_) 00039 #define _BV16STRCT_H_ 00040 00041 struct bv16_decode_state_s 00042 { 00043 Float stsym[LPCO]; 00044 Float ltsym[LTMOFF]; 00045 Float lsppm[LPCO*LSPPORDER]; 00046 Float lgpm[LGPORDER]; 00047 Float lsplast[LPCO]; 00048 Float prevlg[2]; 00049 Float lmax; /* level-adaptation */ 00050 Float lmin; 00051 Float lmean; 00052 Float x1; 00053 Float level; 00054 int16_t pp_last; 00055 int16_t ngfae; 00056 Float bq_last[3]; 00057 int16_t nggalgc; 00058 Float estl_alpha_min; 00059 int16_t cfecount; 00060 uint32_t idum; 00061 Float E; 00062 Float per; 00063 Float atplc[LPCO + 1]; 00064 Float ma_a; 00065 Float b_prv[2]; 00066 Float xq[XQOFF]; 00067 int pp_prv; 00068 }; 00069 00070 struct bv16_encode_state_s 00071 { 00072 Float x[XOFF]; /* 8kHz down-sampled signal memory */ 00073 Float xwd[XDOFF]; /* memory of DECF:1 decimated version of xw() */ 00074 Float dq[XOFF]; /* quantized short-term pred error */ 00075 Float dfm[DFO]; /* decimated xwd() filter memory */ 00076 Float stpem[LPCO]; /* ST Pred. Error filter memory */ 00077 Float stwpm[LPCO]; /* ST Weighting all-Pole Memory */ 00078 Float stsym[LPCO]; /* ST Synthesis filter Memory */ 00079 Float ltsym[MAXPP1 + FRSZ]; /* long-term synthesis filter memory */ 00080 Float ltnfm[MAXPP1 + FRSZ]; /* long-term noise feedback filter memory */ 00081 Float lsplast[LPCO]; 00082 Float lsppm[LPCO*LSPPORDER]; /* LSP Predictor Memory */ 00083 Float lgpm[LGPORDER]; 00084 Float hpfzm[HPO]; 00085 Float hpfpm[HPO]; 00086 Float prevlg[2]; 00087 Float lmax; /* level-adaptation */ 00088 Float lmin; 00089 Float lmean; 00090 Float x1; 00091 Float level; 00092 int cpplast; /* pitch period pf the previous frame */ 00093 Float old_A[LPCO + 1]; 00094 Float stnfz[NSTORDER]; 00095 Float stnfp[NSTORDER]; 00096 }; 00097 00098 struct BV16_Bit_Stream 00099 { 00100 int16_t lspidx[2]; 00101 int16_t ppidx; 00102 int16_t bqidx; 00103 int16_t gidx; 00104 int16_t qvidx[FRSZ/VDIM]; 00105 }; 00106 00107 #endif /* BV16STRCT_H */