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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? decg729fp.c

?? G.711,G.723.1,G.726,G.729,GSM CODEC C/C++ code
?? C
?? 第 1 頁 / 共 4 頁
字號:
      rate = G729E_MODE;
   }else if(frametype == 3){ /* active frame */
      i=0;
      decPrm[1] = 3; /* FrameType=voice e */
      decPrm[0] = 0; /* bfi = 0*/
      decPrm[1+1] = ExtractBitsG729FP(&pParm,&i,1+N_BITS_1ST_STAGE);
      decPrm[1+2] = ExtractBitsG729FP(&pParm,&i,N_BITS_2ND_STAGE*2);
      decPrm[1+3] = ExtractBitsG729FP(&pParm,&i,8);
      decPrm[1+4] = ExtractBitsG729FP(&pParm,&i,1);
      decPrm[1+5] = ExtractBitsG729FP(&pParm,&i,13);
      decPrm[1+6] = ExtractBitsG729FP(&pParm,&i,4);
      decPrm[1+7] = ExtractBitsG729FP(&pParm,&i,7);
      decPrm[1+8] = ExtractBitsG729FP(&pParm,&i,5);
      decPrm[1+9] = ExtractBitsG729FP(&pParm,&i,13);
      decPrm[1+10] = ExtractBitsG729FP(&pParm,&i,4);
      decPrm[1+11] = ExtractBitsG729FP(&pParm,&i,7);
      decPrm[1+4] = (Parity(decPrm[1+3])+decPrm[1+4]) & 1; /*  parity error (1) */
      rate = G729_BASE;
   }else if(frametype == 4){ /* active frame E*/
      short tmp;
      i=0;
      tmp = ExtractBitsG729FP(&pParm,&i,2);

      decPrm[0] = 0; /* bfi = 0*/
      decPrm[1] = 4; /* FrameType */
      if(tmp==0) {
         decPrm[2] = 0; /*LPCMode*/

         decPrm[3] = ExtractBitsG729FP(&pParm,&i,1+N_BITS_1ST_STAGE);
         decPrm[4] = ExtractBitsG729FP(&pParm,&i,N_BITS_2ND_STAGE*2);
         decPrm[5] = ExtractBitsG729FP(&pParm,&i,8);
         decPrm[6] = ExtractBitsG729FP(&pParm,&i,1);
         decPrm[7] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[8] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[9] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[10] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[11] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[12] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[13] = ExtractBitsG729FP(&pParm,&i,5);
         decPrm[14] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[15] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[16] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[17] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[18] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[19] = ExtractBitsG729FP(&pParm,&i,7);

         i = decPrm[5]>>1;
         i &= 1;
         decPrm[6] += i;
         decPrm[6] = (Parity(decPrm[5])+decPrm[6]) & 1;/* parm[6] = parity error (1) */
      } else {
         decPrm[2] = 1; /*LPCMode*/

         decPrm[3] = ExtractBitsG729FP(&pParm,&i,8);
         decPrm[4] = ExtractBitsG729FP(&pParm,&i,1);
         decPrm[5] = ExtractBitsG729FP(&pParm,&i,13);
         decPrm[6] = ExtractBitsG729FP(&pParm,&i,10);
         decPrm[7] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[8] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[9] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[10] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[11] = ExtractBitsG729FP(&pParm,&i,5);
         decPrm[12] = ExtractBitsG729FP(&pParm,&i,13);
         decPrm[13] = ExtractBitsG729FP(&pParm,&i,10);
         decPrm[14] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[15] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[16] = ExtractBitsG729FP(&pParm,&i,7);
         decPrm[17] = ExtractBitsG729FP(&pParm,&i,7);

         i = decPrm[3]>>1;
         i &= 1;
         decPrm[4] += i;
         decPrm[4] = (Parity(decPrm[3])+decPrm[4]) & 1;/* parm[4] = parity error (1) */
      }
      rate = G729E_MODE;
   }
   pDecPrm = &decPrm[0];
   parm2 = pDecPrm[2];

   bfi = *pDecPrm++;
   FrameType = *pDecPrm++;

   if(bfi == 1) {
      if(decoderObj->objPrm.codecType!=G729A_CODEC) {
         FrameType = decoderObj->prevFrameType;
         if(FrameType == 1) FrameType = 0;
      } else {
           if(decoderObj->prevFrameType == 1) FrameType = 1;
          else FrameType = 0;
      }
      pDecPrm[-1] = FrameType;
   }

   Vad = FrameType;
   rate = FrameType - 2;
   /* Decoding the Backward/Forward LPC mode */
   if( rate != G729E_MODE) LPCMode = 0;
   else {
      if (bfi != 0) {
         LPCMode = decoderObj->prevLPCMode; /* Frame erased => LPCMode = previous LPCMode */
         *pDecPrm++ = LPCMode;
      } else {
         LPCMode = *pDecPrm++;
      }
      if(decoderObj->lPrevBFI != 0) decoderObj->lVoicing = decoderObj->lPrevVoicing;

      /* Backward LPC mode */
      ippsWinHybrid_G729E_32f(decoderObj->SynthBuffer, forwardAutoCorr, decoderObj->pHWState);

      /* Lag windowing    */
      ippsMul_32f_I(lagBwd, &forwardAutoCorr[1], BWD_LPC_ORDER);
      if (forwardAutoCorr[0]<1.0) forwardAutoCorr[0]=1.0;

      sts = ippsLevinsonDurbin_G729_32f(forwardAutoCorr, BWD_LPC_ORDER, &backwardLPC[BWD_LPC_ORDERP1], backwardReflectCoeff, &tmp_lev);
      if(sts == ippStsOverflow) {
         ippsCopy_32f(decoderObj->OldBackwardLPC,&backwardLPC[BWD_LPC_ORDERP1],BWD_LPC_ORDER+1);
         backwardReflectCoeff[0] = decoderObj->OldBackwardRC[0];
         backwardReflectCoeff[1] = decoderObj->OldBackwardRC[1];
      } else {
         ippsCopy_32f(&backwardLPC[BWD_LPC_ORDERP1],decoderObj->OldBackwardLPC,BWD_LPC_ORDER+1);
         decoderObj->OldBackwardRC[0] = backwardReflectCoeff[0];
         decoderObj->OldBackwardRC[1] = backwardReflectCoeff[1];
      }

      /* Tests saturation of backwardLPC */
      isSaturateAZ = 0;
      for (i=BWD_LPC_ORDERP1; i<2*BWD_LPC_ORDERP1; i++) if (backwardLPC[i] >= 8.) {isSaturateAZ = 1;break;}
      if (isSaturateAZ == 1) ippsCopy_32f(decoderObj->BackwardLPCMemory, &backwardLPC[BWD_LPC_ORDERP1], BWD_LPC_ORDERP1);
      else ippsCopy_32f(&backwardLPC[BWD_LPC_ORDERP1], decoderObj->BackwardLPCMemory, BWD_LPC_ORDERP1);

      /* Additional bandwidth expansion on backward filter */
      WeightLPCCoeff_G729(&backwardLPC[BWD_LPC_ORDERP1], BWD_GAMMA, BWD_LPC_ORDER, &backwardLPC[BWD_LPC_ORDERP1]);

      if(LPCMode == 1) {
         if ((decoderObj->fFEInterpolationCoeff != 0.)) {
            /* Interpolation of the backward filter after a bad frame */
            tmp = 1.f - decoderObj->fFEInterpolationCoeff;
            pLPC = backwardLPC + BWD_LPC_ORDERP1;
            ippsInterpolateC_G729_32f(pLPC, tmp, decoderObj->BackwardUnqLPC, decoderObj->fFEInterpolationCoeff, pLPC, BWD_LPC_ORDERP1);
         }
      }
   }
   if( bfi == 0) {
      decoderObj->fGainMuting = 1.;
      decoderObj->lBFICounter = 0;
   } else if((decoderObj->lPrevBFI == 0) && (decoderObj->prevFrameType >3)) {
      /* store the last good backward filter when the frame is erased */
      ippsCopy_32f(&backwardLPC[BWD_LPC_ORDERP1], decoderObj->BackwardUnqLPC, BWD_LPC_ORDERP1);
   }
   /* Update next frame synthesis signal */
   ippsCopy_32f(&decoderObj->SynthBuffer[FRM_LEN], &decoderObj->SynthBuffer[0], BWD_SYNTH_MEM);

   if(FrameType < 2) {
      /* SID or Untr or Erased Frame */
      if(pDecPrm[-1] != 0) {
         decoderObj->fSIDGain = SIDGainTbl[pDecPrm[3]];

         /* Inverse quantization of the LSP */
         ippsLSFDecode_G729B_32f(&pDecPrm[0], (float*)decoderObj->PrevFreq, decoderObj->SIDLSP);
      } else {
         /* non SID Frame
           Case of 1st SID frame erased : quantize-decode
           energy estimate stored in fSIDGain         */
         if(decoderObj->prevFrameType > 1) {
            QuantSIDGain_G729B(&decoderObj->SID, 0, &fTmp, &i);
            decoderObj->fSIDGain = SIDGainTbl[i];
         }
      }
      if(decoderObj->prevFrameType > 1) {
         decoderObj->fCurrGain = decoderObj->fSIDGain;
      } else {
         decoderObj->fCurrGain *= GAIN_INT_FACTOR;
         decoderObj->fCurrGain += INV_GAIN_INT_FACTOR * decoderObj->fSIDGain;
      }

      if(decoderObj->fCurrGain == 0.) {
         ippsZero_32f(Excitation,FRM_LEN);
         PhaseDispersionUpdate_G729D(0.f,decoderObj->fCurrGain,decoderObj->phdMem);
         PhaseDispersionUpdate_G729D(0.f,decoderObj->fCurrGain,decoderObj->phdMem);
      } else {
         ComfortNoiseExcitation_G729(decoderObj->fCurrGain, Excitation, &decoderObj->sCNGSeed, DECODER,NULL,decoderObj->phdMem,(char *)TmpAlignVec);
      }

      /* Interpolate the Lsp vectors */
      ippsInterpolateC_G729_32f(decoderObj->OldLSP, 0.5, decoderObj->SIDLSP, 0.5, tmpLSP, LPC_ORDER);

      ippsLSPToLPC_G729_32f(tmpLSP, forwardLPC);
      ippsLSPToLPC_G729_32f(decoderObj->SIDLSP, &forwardLPC[LPC_ORDER+1]);
      ippsCopy_32f(decoderObj->SIDLSP, decoderObj->OldLSP, LPC_ORDER);

      pLPC = forwardLPC;
      if(decoderObj->objPrm.codecType!=G729A_CODEC) {
         for (NSbfr = 0; NSbfr < FRM_LEN; NSbfr += SUBFR_LEN) {
            ippsSynthesisFilter_G729_32f(pLPC, LPC_ORDER, &Excitation[NSbfr], &pSynth[NSbfr], SUBFR_LEN, &decoderObj->SynFltMemory[BWD_LPC_ORDER-LPC_ORDER]);
            ippsCopy_32f(&pSynth[NSbfr+SUBFR_LEN-BWD_LPC_ORDER], decoderObj->SynFltMemory, BWD_LPC_ORDER);

            T2[0] = decoderObj->prevPitchDelay;
            pLPC += LPC_ORDERP1;
         }
      } else {
         for (NSbfr = 0,i=0; NSbfr < FRM_LEN; NSbfr += SUBFR_LEN,i++) {
            ippsSynthesisFilter_G729_32f(pLPC, LPC_ORDER, &Excitation[NSbfr], &flDst[NSbfr], SUBFR_LEN, decoderObj->SynFltMemory);
            ippsCopy_32f(&flDst[NSbfr+SUBFR_LEN-LPC_ORDER], decoderObj->SynFltMemory, LPC_ORDER);

            T2[i] = decoderObj->prevPitchDelay;
            pLPC += LPC_ORDERP1;
         }
      }
      decoderObj->fBetaPreFilter = PITCH_SHARPMIN;
      decoderObj->fInterpolationCoeff = 1.1f;
      /* Reset for gain decoding in case of frame erasure */
      decoderObj->sBWDStatInd = 0;
      highStatIndicator = 0;
      /* Reset for pitch tracking  in case of frame erasure */
      decoderObj->lStatPitchPT = 0;
      /* Update the previous filter for the next frame */
      ippsCopy_32f(&forwardLPC[LPC_ORDERP1], decoderObj->PrevFlt, LPC_ORDERP1);
      for(i=LPC_ORDERP1; i<BWD_LPC_ORDERP1; i++) decoderObj->PrevFlt[i] = 0.;
   } else {
      /* Active frame */
      decoderObj->sCNGSeed = INIT_SEED_VAL;
      /* Forward mode */
      if (LPCMode == 0) {

         /* Decode the LSFs to CurrLSP */
         if(bfi){
            ippsCopy_32f(decoderObj->prevLSF, CurrLSP, LPC_ORDER );
            ippsLSFDecodeErased_G729_32f(decoderObj->prevMA, (float*)decoderObj->PrevFreq, decoderObj->prevLSF);
         }else{
            int indexes[4];
            indexes[0] = (pDecPrm[0] >> N_BITS_1ST_STAGE) & 1;
            indexes[1] = pDecPrm[0] & (short)(N_ELEM_1ST_STAGE - 1);
            indexes[2] = (pDecPrm[1] >> N_BITS_2ND_STAGE) & (short)(N_ELEM_2ND_STAGE - 1);
            indexes[3] = pDecPrm[1] & (short)(N_ELEM_2ND_STAGE - 1);

            decoderObj->prevMA = indexes[0];
            ippsLSFDecode_G729_32f(indexes, (float*)decoderObj->PrevFreq, CurrLSP);

            ippsCopy_32f(CurrLSP, decoderObj->prevLSF, LPC_ORDER );

         }

         /* Convert to LSPs */
         ownCOS_G729_32f(CurrLSP, CurrLSP, LPC_ORDER);

         pDecPrm += 2;
         if( decoderObj->prevLPCMode == 0) { /* Interpolation of LPC for the 2 subframes */
            ippsInterpolateC_G729_32f(decoderObj->OldLSP, 0.5, CurrLSP, 0.5, tmpLSP, LPC_ORDER);

            ippsLSPToLPC_G729_32f(tmpLSP, forwardLPC);
            ippsLSPToLPC_G729_32f(CurrLSP, &forwardLPC[LPC_ORDER+1]);
         } else {
            /* no interpolation */
            ippsLSPToLPC_G729_32f(CurrLSP, forwardLPC); /* Subframe 1*/
            ippsCopy_32f(forwardLPC, &forwardLPC[LPC_ORDERP1], LPC_ORDERP1); /* Subframe 2 */
         }

         /* update the LSFs for the next frame */
         ippsCopy_32f(CurrLSP, decoderObj->OldLSP, LPC_ORDER);

         decoderObj->fInterpolationCoeff = 1.1f;
         pLPC = forwardLPC;
         aqLen = LPC_ORDER;
         /* update the previous filter for the next frame */
         ippsCopy_32f(&forwardLPC[LPC_ORDERP1], decoderObj->PrevFlt, LPC_ORDERP1);
         for(i=LPC_ORDERP1; i<BWD_LPC_ORDERP1; i++) decoderObj->PrevFlt[i] = 0.;
      } else {
         InterpolatedBackwardFilter_G729(backwardLPC, decoderObj->PrevFlt, &decoderObj->fInterpolationCoeff);
         pLPC = backwardLPC;
         aqLen = BWD_LPC_ORDER;
         /* update the previous filter for the next frame */
         ippsCopy_32f(&backwardLPC[BWD_LPC_ORDERP1], decoderObj->PrevFlt, BWD_LPC_ORDERP1);
      }

      for (NSbfr = 0,nsubfr=0; NSbfr < FRM_LEN; NSbfr += SUBFR_LEN,nsubfr++) {
         index = *pDecPrm++;            /* pitch index */

         if(NSbfr == 0) {
            if (rate == G729D_MODE) i = 0;      /* no pitch parity at 6.4 kb/s */
            else i = *pDecPrm++;           /* get parity check result */
            badPitch = bfi + i;
         }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频999| 26uuu亚洲综合色欧美| 久久影院电视剧免费观看| 欧美一级日韩免费不卡| 亚洲一区二区三区四区中文字幕| 国产精品全国免费观看高清| 亚洲欧美激情视频在线观看一区二区三区 | 91片黄在线观看| 国产v日产∨综合v精品视频| 中文字幕中文乱码欧美一区二区| 日韩一级片网址| 国产精品一二三在| 久久99久久精品欧美| 奇米综合一区二区三区精品视频| 一区二区三区在线观看国产| 国产麻豆成人精品| 久热成人在线视频| 捆绑紧缚一区二区三区视频 | 欧洲精品视频在线观看| 色综合久久综合网欧美综合网| 日本成人超碰在线观看| 激情图片小说一区| 免费观看在线综合| 国产精品美女久久福利网站| 色94色欧美sute亚洲线路一ni | 国产精品久久久久aaaa| 国产三级精品视频| 欧美午夜免费电影| 久久久不卡网国产精品一区| wwwwxxxxx欧美| 国产亚洲1区2区3区| 欧美日韩中文另类| eeuss鲁片一区二区三区在线观看| 国产一区二区三区免费在线观看 | 精彩视频一区二区三区| 成人天堂资源www在线| av中文字幕不卡| 日本韩国欧美在线| av一区二区三区黑人| 欧美一区二区三区四区久久| 欧洲中文字幕精品| 一本到不卡免费一区二区| 粉嫩绯色av一区二区在线观看| 国产jizzjizz一区二区| 97久久精品人人做人人爽| 国产乱子伦一区二区三区国色天香| 亚洲女同一区二区| 国产日韩成人精品| 亚洲色欲色欲www在线观看| 中文字幕一区在线观看视频| 亚洲国产精品天堂| 青青青伊人色综合久久| 2017欧美狠狠色| 国产午夜久久久久| 国产精品伦一区二区三级视频| 色呦呦网站一区| 5858s免费视频成人| 欧美在线一二三四区| 制服视频三区第一页精品| 久久久国产综合精品女国产盗摄| 久久九九国产精品| 一区二区三区成人在线视频| 韩国v欧美v日本v亚洲v| 麻豆精品一区二区| 国产91精品在线观看| 国产精品18久久久久久vr| 久久精品国内一区二区三区| 亚洲精品第一国产综合野| 欧美一级艳片视频免费观看| 日本色综合中文字幕| 亚洲私人黄色宅男| 婷婷国产v国产偷v亚洲高清| 国产一区二区三区香蕉| 欧美无砖专区一中文字| 日本伦理一区二区| 欧美一级理论性理论a| 日韩欧美一级在线播放| 久久久久久黄色| 亚洲日本va在线观看| 午夜精品久久久久久久| 亚洲欧美日本韩国| 狠狠网亚洲精品| 一本色道亚洲精品aⅴ| 蜜臀av性久久久久蜜臀av麻豆| 国产成人在线免费| 在线视频你懂得一区二区三区| 亚洲精品在线三区| 久久久久国产免费免费| 久久久精品tv| 亚洲欧美日韩国产成人精品影院| 亚洲 欧美综合在线网络| 久久国产视频网| 51精品国自产在线| 欧美国产禁国产网站cc| 国产精品的网站| 国产成人精品亚洲777人妖 | 一区二区三区 在线观看视频| 国产一区二区精品久久99| 国产二区国产一区在线观看| 欧美午夜精品一区二区蜜桃| 久久久精品综合| 9色porny自拍视频一区二区| 91黄视频在线观看| 亚洲福利一区二区三区| 日韩一区二区三区av| 亚洲色图20p| 国产电影一区在线| 91精品国产乱| 国产精品中文字幕欧美| 水蜜桃久久夜色精品一区的特点| 欧美亚洲动漫制服丝袜| 夜夜精品视频一区二区| 97精品视频在线观看自产线路二| 欧美人狂配大交3d怪物一区| 中文字幕成人网| 亚洲男人的天堂网| 成人丝袜视频网| 国产日韩欧美精品综合| 久久99在线观看| wwwwww.欧美系列| 美女视频黄频大全不卡视频在线播放 | 国产精品国产自产拍高清av王其| 极品尤物av久久免费看| 精品少妇一区二区三区在线播放| 欧美经典一区二区三区| 精品亚洲免费视频| 欧美日韩一区二区三区高清| 一区二区三区美女视频| 在线观看视频一区二区| 精品久久久久久最新网址| 亚洲午夜免费视频| 国产剧情一区在线| 国产亚洲精品免费| 日本大胆欧美人术艺术动态| 中文字幕亚洲成人| 欧美午夜精品一区| 欧美亚洲国产一区二区三区va| 亚洲成a人片在线不卡一二三区| 欧美aa在线视频| 国产日韩精品一区二区三区| 欧美aa在线视频| 91农村精品一区二区在线| 性做久久久久久久免费看| 欧美视频在线播放| 亚洲日本在线观看| 丰满少妇久久久久久久| 欧美一区二区三区不卡| 国产日产亚洲精品系列| 国产成人av电影在线播放| 成人v精品蜜桃久久一区| 婷婷亚洲久悠悠色悠在线播放| av资源网一区| 国产精品区一区二区三区| 久久嫩草精品久久久精品| 色综合天天综合在线视频| 亚洲图片欧美综合| 国产精品18久久久| 91麻豆精品国产91久久久久久| 一区二区三区在线观看欧美| 日韩欧美国产综合在线一区二区三区| 成人aa视频在线观看| 天堂一区二区在线免费观看| 国产欧美日韩视频在线观看| 麻豆91免费观看| 亚洲电影第三页| 在线亚洲免费视频| 男男gaygay亚洲| 欧美福利视频一区| 99久久精品情趣| 亚洲国产精品一区二区www在线 | 国产99久久久国产精品潘金| 亚洲成人中文在线| 日韩美女一区二区三区四区| 成人的网站免费观看| 成人黄色电影在线| 国产精品一色哟哟哟| 国产一区二区免费在线| 麻豆91在线看| 国产一区二区免费看| 久久国产福利国产秒拍| 久久精品国产99国产精品| 午夜久久久久久久久| 亚洲一级电影视频| 亚洲最大成人网4388xx| 亚洲日本在线a| 国产精品久久久久久久久快鸭| 中文字幕在线不卡| 国产精品网曝门| 亚洲视频每日更新| 亚洲女人****多毛耸耸8| 一区二区三区色| 一区二区三区精品在线观看| 亚洲一区二区三区四区在线观看| 中文字幕一区二区三区色视频| 亚洲欧洲制服丝袜| 亚洲激情网站免费观看| 亚洲成人资源网| 日本伊人色综合网| 91福利视频在线| 欧美在线观看视频在线|