亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? decg729fp.c

?? G.711,G.723.1,G.726,G.729,GSM CODEC C/C++ code
?? C
?? 第 1 頁 / 共 4 頁
字號:
/*/////////////////////////////////////////////////////////////////////////////
//
//                  INTEL CORPORATION PROPRIETARY INFORMATION
//     This software is supplied under the terms of a license agreement or
//     nondisclosure agreement with Intel Corporation and may not be copied
//     or disclosed except in accordance with the terms of that agreement.
//          Copyright(c) 2004-2005 Intel Corporation. All Rights Reserved.
//
//     Intel(R) Integrated Performance Primitives
//     USC - Unified Speech Codec interface library
//
// By downloading and installing USC codec, you hereby agree that the
// accompanying Materials are being provided to you under the terms and
// conditions of the End User License Agreement for the Intel(R) Integrated
// Performance Primitives product previously accepted by you. Please refer
// to the file ipplic.htm located in the root directory of your Intel(R) IPP
// product installation for more information.
//
// A speech coding standards promoted by ITU, ETSI, 3GPP and other
// organizations. Implementations of these standards, or the standard enabled
// platforms may require licenses from various entities, including
// Intel Corporation.
//
//
// Purpose: G.729 floating-point speech codec: decode API functions.
//
*/
#include <math.h>
#include "owng729fp.h"

static void post_filter_I(G729FPDecoder_Obj* decoderObj, float *pSynth, float *pLPC, int pitchDelay, int dominant,
                          int Vad, int pstLPCOrder, float *dst,int rate);
static void Post_G729A(G729FPDecoder_Obj *decoderObj, float *pSrcDstSynthSpeech, float *pSrcLPC,
                        int *pSrcDecodedPitch, int Vad);

/* filter coefficients (fc = 100 Hz ) */

static __ALIGN32 CONST float b100[3] = {0.93980581E+00f, -0.18795834E+01f,  0.93980581E+00f};
static __ALIGN32 CONST float a100[3] = {1.00000000E+00f,  0.19330735E+01f, -0.93589199E+00f};
/* tables of positions for each track */
static __ALIGN32 CONST short trackTbl0[32] = {
 1, 3, 8, 6, 18, 16, 11, 13, 38, 36, 31, 33, 21, 23, 28, 26, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

static __ALIGN32 CONST short trackTbl1[32] = {
0, 2, 5, 4, 12, 10, 7, 9, 25, 24, 20, 22, 14, 15, 19, 17,
36, 31, 21, 26, 1, 6, 16, 11, 27, 29, 32, 30, 39, 37, 34, 35};

static int ownDecoderSize(G729Codec_Type codecType)
{
   int codecSize, fltsize;

   codecSize = sizeof(G729FPDecoder_Obj);
   ippsIIRGetStateSize_32f(2,&fltsize);
   codecSize += fltsize;
   PHDGetSize(&fltsize);
   codecSize += fltsize;
   ippsWinHybridGetStateSize_G729E_32f(&fltsize);
   codecSize += fltsize;
   if(codecType!=G729A_CODEC) {
      PSTGetSize(&fltsize);
      codecSize += fltsize;
   }

   return codecSize;
}

G729_CODECFUN( APIG729_Status, apiG729FPDecoder_Alloc,
         (G729Codec_Type codecType, int *pCodecSize))
{
   if ((codecType != G729_CODEC)&&(codecType != G729A_CODEC)
      &&(codecType != G729D_CODEC)&&(codecType != G729E_CODEC)&&(codecType != G729I_CODEC)){
      return APIG729_StsBadCodecType;
   }

   *pCodecSize = ownDecoderSize(codecType);

   return APIG729_StsNoErr;

}



G729_CODECFUN( APIG729_Status, apiG729FPDecoder_Init,
         (G729FPDecoder_Obj* decoderObj, G729Codec_Type codecType))
{
   int i,fltsize;
   void* pBuf;
   Ipp32f coeff[6];

   if ((codecType != G729_CODEC)&&(codecType != G729A_CODEC)
      &&(codecType != G729D_CODEC)&&(codecType != G729E_CODEC)&&(codecType != G729I_CODEC)){
      return APIG729_StsBadCodecType;
   }

   ippsZero_16s((short*)decoderObj,sizeof(G729FPDecoder_Obj)>>1) ;

   decoderObj->objPrm.objSize = ownDecoderSize(codecType);
   decoderObj->objPrm.key = DEC_KEY;
   decoderObj->objPrm.codecType = codecType;

   coeff[0] = b100[0];
   coeff[1] = b100[1];
   coeff[2] = b100[2];
   coeff[3] = a100[0];
   coeff[4] = -a100[1];
   coeff[5] = -a100[2];
   pBuf = (char*)decoderObj + sizeof(G729FPDecoder_Obj);
   ippsIIRInit_32f(&decoderObj->iirstate,coeff,2,NULL,pBuf);

   ippsIIRGetStateSize_32f(2,&fltsize);
   decoderObj->phdMem = (char *)((char*)pBuf + fltsize);
   PHDGetSize(&fltsize);
   decoderObj->pHWState = (IppsWinHybridState_G729E_32f *)((char*)decoderObj->phdMem + fltsize);

   ippsZero_32f(decoderObj->OldExcitationBuffer, PITCH_LAG_MAX+INTERPOL_LEN);
   decoderObj->fBetaPreFilter        = PITCH_SHARPMIN;
   decoderObj->prevPitchDelay      = 60;
   decoderObj->fCodeGain    = 0.;
   decoderObj->fPitchGain   = 0.;
   ippsCopy_32f(InitLSP, decoderObj->OldLSP, LPC_ORDER);

   decoderObj->PastQuantEnergy[0]=decoderObj->PastQuantEnergy[1]=decoderObj->PastQuantEnergy[2]=decoderObj->PastQuantEnergy[3]=-14.0;
   for(i=0; i<MOVING_AVER_ORDER; i++)
     ippsCopy_32f (InitFrequences, &decoderObj->PrevFreq[i][0], LPC_ORDER );
   decoderObj->prevMA = 0;
   ippsCopy_32f (InitFrequences, decoderObj->prevLSF, LPC_ORDER );
   /* for G.729B */
   decoderObj->sFESeed = 21845;
   /* CNG variables */
   decoderObj->prevFrameType = 3;
   decoderObj->sCNGSeed = INIT_SEED_VAL;
   decoderObj->SID = 0.;
   decoderObj->fCurrGain = 0.f;
   ownCOS_G729_32f((float*)InitFrequences, decoderObj->SIDLSP, LPC_ORDER);
   decoderObj->fSIDGain = SIDGainTbl[0];
   ippsZero_32f(decoderObj->SynFltMemory, BWD_LPC_ORDER);
   PHDInit(decoderObj->phdMem);
   if(codecType==G729A_CODEC) {
      ippsZero_32f(decoderObj->PstFltMemoryA, LPC_ORDER);
      decoderObj->fPastGain = 1.0;
      ippsZero_32f(decoderObj->ResidualBufferA, PITCH_LAG_MAX+SUBFR_LEN);
      decoderObj->ResidualMemory  = decoderObj->ResidualBufferA + PITCH_LAG_MAX;
      ippsZero_32f(decoderObj->PstSynMemoryA, LPC_ORDER);
      decoderObj->fPreemphMemoryA = 0.f;
   } else {
      //PHDGetSize(&fltsize);
      ippsWinHybridGetStateSize_G729E_32f(&fltsize);
      decoderObj->pstMem = (char *)((char*)decoderObj->pHWState + fltsize);

      ippsZero_32f(decoderObj->SynthBuffer, BWD_ANALISIS_WND_LEN);
      decoderObj->prevFracPitchDelay = 0;
      ippsWinHybridInit_G729E_32f(decoderObj->pHWState);
      ippsZero_32f(decoderObj->BackwardUnqLPC, BWD_LPC_ORDERP1);
      decoderObj->BackwardUnqLPC[0]   = 1.;
      ippsZero_32f(decoderObj->BackwardLPCMemory, BWD_LPC_ORDERP1);
      decoderObj->BackwardLPCMemory[0] = 1.;
      decoderObj->lPrevVoicing = 0;
      decoderObj->lPrevBFI     = 0;
      decoderObj->prevLPCMode    = 0;
      decoderObj->fFEInterpolationCoeff     = 0.;
      decoderObj->fInterpolationCoeff        = 1.1f;       /* Filter interpolation parameter */
      ippsZero_32f(decoderObj->PrevFlt, BWD_LPC_ORDERP1);
      decoderObj->PrevFlt[0] = 1.;
      decoderObj->lPrevPitchPT     = 30;
      decoderObj->lStatPitchPT     = 0;
      decoderObj->lStatPitch2PT     = 0;
      decoderObj->lStatFracPT     = 0;
      ippsZero_32f(decoderObj->OldBackwardLPC, BWD_LPC_ORDERP1);
      decoderObj->OldBackwardLPC[0]   = 1.;
      decoderObj->OldBackwardRC[0] = decoderObj->OldBackwardRC[1] = 0.f;
      decoderObj->fPitchGainMemory   = 0.;
      decoderObj->fCodeGainMemory   = 0.;
      decoderObj->fGainMuting       = 1.;
      decoderObj->lBFICounter      = 0;
      decoderObj->sBWDStatInd       = 0;
      decoderObj->lVoicing = 60;
      decoderObj->g1PST = GAMMA1_POSTFLT_E;
      decoderObj->g2PST = GAMMA2_POSTFLT_E;
      decoderObj->gHarmPST  = GAMMA_HARM_POSTFLT_E;
      decoderObj->sBWDFrmCounter = 0;
      decoderObj->sFWDFrmCounter = 0;
      PSTInit(decoderObj->pstMem);
   }
   return APIG729_StsNoErr;
}

G729_CODECFUN( APIG729_Status, apiG729FPDecoder_InitBuff,
         (G729FPDecoder_Obj* decoderObj, char *buff))
{
#if !defined (NO_SCRATCH_MEMORY_USED)

   if(NULL==decoderObj || NULL==buff)
      return APIG729_StsBadArgErr;

   decoderObj->Mem.base = buff;
   decoderObj->Mem.CurPtr = decoderObj->Mem.base;
   decoderObj->Mem.VecPtr = (int *)(decoderObj->Mem.base+G729FP_ENCODER_SCRATCH_MEMORY_SIZE);
#endif /*SCRATCH_IDAIS*/
   return APIG729_StsNoErr;
}

G729_CODECFUN( APIG729_Status, apiG729FPDecode,
         (G729FPDecoder_Obj* decoderObj,const unsigned char* src, int frametype, short* dst))
{
   LOCAL_ALIGN_ARRAY(32, float, backwardLPC, 2*BWD_LPC_ORDERP1, decoderObj);   /* LPC Backward filter */
   LOCAL_ALIGN_ARRAY(32, float, forwardLPC, 2*LPC_ORDERP1, decoderObj);       /* LPC Forward filter */
   LOCAL_ALIGN_ARRAY(32, float, backwardReflectCoeff, BWD_LPC_ORDER, decoderObj);        /* LPC backward reflection coefficients */
   LOCAL_ALIGN_ARRAY(32, float, forwardAutoCorr, BWD_LPC_ORDERP1, decoderObj);       /* Autocorrelations (backward) */
   LOCAL_ALIGN_ARRAY(32, float, CurrLSP, LPC_ORDER, decoderObj);           /* LSPs             */
   LOCAL_ALIGN_ARRAY(32, float, ACELPCodeVec, SUBFR_LEN, decoderObj);        /* ACELP codevector */
   LOCAL_ALIGN_ARRAY(32, float, PhaseDispExc, SUBFR_LEN, decoderObj);  /* excitation after phase dispersion */
   LOCAL_ALIGN_ARRAY(32, float, flDst, FRM_LEN, decoderObj);
   LOCAL_ALIGN_ARRAY(32, float, TmpAlignVec, WINDOW_LEN,decoderObj);
   LOCAL_ARRAY(float, tmpLSP, LPC_ORDER, decoderObj);
   LOCAL_ARRAY(int, decPrm, 20, decoderObj);
   LOCAL_ARRAY(int, T2, 2, decoderObj);          /* Decoded Pitch              */
   LOCAL_ARRAY(int, delayLine, 2, decoderObj);

   float *Excitation,*pSynth;
   int    i, j, NSbfr;
   int    PitchDelay, index;
   int    bfi;                      /* Bad frame indicator */
   int    badPitch;                 /* bad pitch indicator */
   int    LPCMode;                  /* Backward / Forward mode indication */
   float  PitchGain, CodeGain;      /* fixed and adaptive codebook gain */
   float  tmp, energy;
   float *pLPC;
   int    rate, highStatIndicator, aqLen, isSaturateAZ;
   int    FrameType, pstLPCOrder, isBWDDominant, Vad, parm2;
   float  tmp_lev;

   int    nsubfr;
   IppStatus sts;
   int   *pDecPrm;
   const  unsigned char *pParm;
   float  fTmp;

   if(NULL==decoderObj || NULL==src || NULL ==dst)
      return APIG729_StsBadArgErr;
   if(decoderObj->objPrm.objSize <= 0)
      return APIG729_StsNotInitialized;
   if(DEC_KEY != decoderObj->objPrm.key)
      return APIG729_StsBadCodecType;

   Excitation = decoderObj->OldExcitationBuffer + PITCH_LAG_MAX + INTERPOL_LEN;
   pSynth = decoderObj->SynthBuffer + BWD_SYNTH_MEM;

   pParm = src;

   if(frametype == -1){ /* erased*/
      decPrm[1] = 0; /* FrameType =sil ???*/
      decPrm[0] = 1; /* bfi = 1, corrupted*/
      ippsCopy_32f ((Ipp32f*)decoderObj->prevSID, (Ipp32f*)&decPrm[2], 4);
   }else if(frametype == 0){ /* untransmitted sil*/
      decPrm[1] = 0; /* FrameType =sil */
      decPrm[0] = 0; /* bfi = 0, */
      ippsCopy_32f ((Ipp32f*)decoderObj->prevSID, (Ipp32f*)&decPrm[2], 4);
   }else if(frametype == 1){ /* SID*/
      decPrm[1] = 1; /* FrameType=sid */
      decPrm[0] = 0; /* bfi = 0*/
      i=0;
      decPrm[1+1] = ExtractBitsG729FP(&pParm,&i,1);
      decPrm[1+2] = ExtractBitsG729FP(&pParm,&i,5);
      decPrm[1+3] = ExtractBitsG729FP(&pParm,&i,4);
      decPrm[1+4] = ExtractBitsG729FP(&pParm,&i,5);
      ippsCopy_32f ((Ipp32f*)&decPrm[2], (Ipp32f*)decoderObj->prevSID, 4);
   }else if(frametype == 2){ /* active frame D*/

      decPrm[0] = 0; /* bfi = 0*/
      decPrm[1] = 2; /* FrameType=voice d */
      i=0;
      decPrm[2] = ExtractBitsG729FP(&pParm,&i,1+N_BITS_1ST_STAGE);
      decPrm[3] = ExtractBitsG729FP(&pParm,&i,N_BITS_2ND_STAGE*2);
      decPrm[4] = ExtractBitsG729FP(&pParm,&i,8);
      decPrm[5] = ExtractBitsG729FP(&pParm,&i,9);
      decPrm[6] = ExtractBitsG729FP(&pParm,&i,2);
      decPrm[7] = ExtractBitsG729FP(&pParm,&i,6);
      decPrm[8] = ExtractBitsG729FP(&pParm,&i,4);
      decPrm[9] = ExtractBitsG729FP(&pParm,&i,9);
      decPrm[10] = ExtractBitsG729FP(&pParm,&i,2);
      decPrm[11] = ExtractBitsG729FP(&pParm,&i,6);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲日本在线a| 日韩精品亚洲专区| 欧美美女黄视频| 盗摄精品av一区二区三区| 亚洲国产三级在线| 国产精品每日更新在线播放网址| 欧美精品一二三区| 97精品超碰一区二区三区| 国产一区二区调教| 秋霞国产午夜精品免费视频| 亚洲激情欧美激情| 日本一区二区免费在线观看视频| 欧美丰满少妇xxxxx高潮对白| 成人av电影免费在线播放| 精油按摩中文字幕久久| 五月婷婷综合网| 一区二区三区在线免费| 国产欧美精品一区二区三区四区 | 夜夜嗨av一区二区三区中文字幕| 精品国产乱码久久久久久闺蜜| 欧美又粗又大又爽| 97久久超碰国产精品电影| 久久99久久久久久久久久久| 亚洲一区二区三区小说| 亚洲人成网站在线| 国产精品国产a| 国产精品免费观看视频| 国产欧美日韩在线| 国产亚洲一区二区在线观看| 精品国产免费一区二区三区四区| 日韩一区二区三区免费看 | 日韩一区国产二区欧美三区| xvideos.蜜桃一区二区| 91麻豆精品国产综合久久久久久| 欧美亚洲综合在线| 欧美在线免费视屏| 欧美色成人综合| 欧美精品电影在线播放| 9191久久久久久久久久久| 91麻豆精品久久久久蜜臀| 欧美理论电影在线| 91精品久久久久久久91蜜桃| 91精品国产综合久久久蜜臀粉嫩| 欧美人与性动xxxx| 日韩一区二区三区免费看| 日韩一区二区免费在线观看| 日韩三区在线观看| 精品sm在线观看| 久久精品欧美一区二区三区麻豆 | 国产精品久久久久影院亚瑟| 亚洲国产精品精华液2区45| 欧美激情一区二区三区蜜桃视频 | 美脚の诱脚舐め脚责91| 狠狠色伊人亚洲综合成人| 精品无码三级在线观看视频| 国产成人在线看| 91亚洲国产成人精品一区二三| 色综合色综合色综合色综合色综合| 91精品1区2区| 欧美成人三级在线| 国产欧美一区二区精品忘忧草| 国产精品丝袜一区| 亚洲小少妇裸体bbw| 毛片一区二区三区| 大白屁股一区二区视频| 色婷婷综合久久久| 日韩欧美国产电影| 国产精品看片你懂得| 亚洲图片欧美视频| 激情偷乱视频一区二区三区| 9i在线看片成人免费| 欧美三级电影在线观看| 精品久久久久久久久久久久久久久| 欧美高清在线一区二区| 亚洲制服丝袜在线| 国产精品亚洲а∨天堂免在线| 波多野结衣一区二区三区| 欧美日韩高清一区二区三区| 欧美va亚洲va在线观看蝴蝶网| 国产精品久久毛片| 青青草97国产精品免费观看| 国产ts人妖一区二区| 欧美伊人久久久久久久久影院| 亚洲精品一区二区精华| 亚洲精品自拍动漫在线| av一区二区三区在线| 欧美一区二区三区免费视频| 中文字幕国产精品一区二区| 亚洲国产成人va在线观看天堂| 国产一区二区三区久久久 | 成人高清免费观看| 欧美一区二区三区免费| 亚洲欧美另类在线| 国产曰批免费观看久久久| 在线看日韩精品电影| 久久久777精品电影网影网| 亚洲va中文字幕| 成人福利视频在线看| 精品久久久久99| 亚洲一区在线观看网站| 丰满少妇久久久久久久| 日韩欧美激情一区| 亚洲1区2区3区4区| 91在线视频官网| 久久综合色婷婷| 日韩精品国产欧美| 欧美性受xxxx黑人xyx性爽| 国产精品麻豆欧美日韩ww| 久久91精品久久久久久秒播| 欧美日韩电影在线播放| 亚洲少妇屁股交4| 岛国精品在线观看| 久久婷婷色综合| 久久se这里有精品| 日韩无一区二区| 日韩精品午夜视频| 欧美三区免费完整视频在线观看| 亚洲欧美综合色| 91尤物视频在线观看| 国产精品青草久久| 岛国精品一区二区| 中文字幕av一区 二区| 国产剧情一区在线| 国产色91在线| 国产风韵犹存在线视精品| 欧美成人精品二区三区99精品| 丝瓜av网站精品一区二区| 欧美私人免费视频| 亚洲成年人网站在线观看| 色婷婷精品久久二区二区蜜臀av | 欧美国产精品专区| 国产高清一区日本| 中文字幕精品综合| 国产91精品一区二区麻豆亚洲| 亚洲1区2区3区视频| 欧美性大战久久久久久久蜜臀| 国产精品久久久久久久久动漫| 国产69精品久久久久777| 国产日韩三级在线| 成人三级伦理片| 自拍偷自拍亚洲精品播放| 国产成人精品午夜视频免费| 欧美国产日韩一二三区| 不卡区在线中文字幕| 亚洲免费电影在线| 欧美在线观看视频在线| 日韩激情视频在线观看| 日韩欧美一级特黄在线播放| 国产在线精品一区在线观看麻豆| 久久久久国产免费免费| 99免费精品在线| 玉米视频成人免费看| 欧美喷水一区二区| 久久99国产精品久久99果冻传媒| 国产亚洲精品精华液| 91亚洲国产成人精品一区二区三| 一区二区三区毛片| 91精品国产福利| 国产一区999| 成人欧美一区二区三区视频网页| 色哟哟在线观看一区二区三区| 亚洲观看高清完整版在线观看| 欧美一区二区三区色| 国产精品77777| 亚洲自拍都市欧美小说| 欧美大片拔萝卜| 成人综合婷婷国产精品久久| 亚洲精品高清在线观看| 欧美一级日韩一级| 成人精品亚洲人成在线| 亚洲国产精品视频| 久久久三级国产网站| 色哟哟在线观看一区二区三区| 免费欧美在线视频| 亚洲欧洲成人精品av97| 欧美一区二区三区四区高清| 国产91精品一区二区麻豆网站| 亚洲五码中文字幕| 国产日本欧洲亚洲| 欧美精品三级在线观看| 成人av在线影院| 欧美aⅴ一区二区三区视频| 1区2区3区国产精品| 日韩午夜中文字幕| 色综合色综合色综合色综合色综合| 蜜桃在线一区二区三区| 亚洲视频一区二区在线| 日韩欧美一区二区在线视频| 99久久国产免费看| 久久国产夜色精品鲁鲁99| 一级日本不卡的影视| 国产欧美一区二区精品忘忧草| 国产精品高潮呻吟| 日韩三级高清在线| 一本大道av一区二区在线播放| 国产自产v一区二区三区c| 亚洲超碰97人人做人人爱| 亚洲色图视频网站| 中文字幕精品—区二区四季| 精品国产免费人成电影在线观看四季|