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

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

?? owng723.c

?? G.711,G.723.1,G.726,G.729,GSM CODEC C/C++ code
?? C
?? 第 1 頁 / 共 5 頁
字號:
          Params->sAmplitude[sNSbfr] = sSign;
          Params->sPosition[sNSbfr] = lCdbkIdx;

          LOCAL_ARRAY_FREE(short, pDstFixedPosition,4, encoderObj) ;
          LOCAL_ARRAY_FREE(short, pDstFixedSign,    4, encoderObj) ;
          LOCAL_ALIGN_ARRAY_FREE(16, short, pAlignBuff,         G723_SBFR_LEN, encoderObj) ;
          LOCAL_ALIGN_ARRAY_FREE(16, int,   pToeplizMatrix,     G723_TOEPLIZ_MATRIX_SIZE, encoderObj) ;
          LOCAL_ALIGN_ARRAY_FREE(16, short, pFltFixedVector,    G723_SBFR_LEN+4, encoderObj) ;
          LOCAL_ALIGN_ARRAY_FREE(16, short, pFixedVector,       G723_SBFR_LEN+4, encoderObj) ;
          LOCAL_ALIGN_ARRAY_FREE(16, short, pTargetImpRespCorr, G723_SBFR_LEN+4, encoderObj) ;

          break;
       }
    }
}

void InterpolationIndex_G723_16s( short *pDecodedExc, short sPitchLag, short *pGain, short *pGainSFS, short *pDstIdx)
{
    int   lSfs, lIdx, lTmp;
    short sTargetVecEnergy, sMaxCorr, sBestEnergy;
    short *pExc;

    /* Normalize the excitation */
    lSfs=3;
    ippsAutoScale_16s_I( pDecodedExc, G723_MAX_PITCH+G723_FRM_LEN, &lSfs );
    *pGainSFS = lSfs;

    if ( sPitchLag > (short) (G723_MAX_PITCH-3) )
        sPitchLag = (short) (G723_MAX_PITCH-3);

    lIdx = sPitchLag;
    pExc = &pDecodedExc[G723_MAX_PITCH+G723_FRM_LEN-2*G723_SBFR_LEN];
    ippsAutoCorrLagMax_Inv_16s(pExc,2*G723_SBFR_LEN,sPitchLag-3,sPitchLag+3,&lTmp,&lIdx);

    if(lTmp > 0 ) {
      sMaxCorr = Cnvrt_NR_32s16s( lTmp );
      /* Compute target energy */
      ippsDotProd_16s32s_Sfs(pExc,pExc,2*G723_SBFR_LEN,&lTmp,0);
       lTmp <<=1;
      sTargetVecEnergy = Cnvrt_NR_32s16s( lTmp );
      *pGain = sTargetVecEnergy;

      /* Calculate the best energy */
      ippsDotProd_16s32s_Sfs(pExc-lIdx,pExc-lIdx,2*G723_SBFR_LEN,&lTmp,0);
       lTmp <<=1;

      sBestEnergy = Cnvrt_NR_32s16s( lTmp );

      lTmp = sBestEnergy * sTargetVecEnergy;
      lTmp >>= 3;

      if ( lTmp < sMaxCorr * sMaxCorr ) *pDstIdx = (short)lIdx;
      else *pDstIdx = 0;
    } else *pDstIdx = 0;

    return;
}

typedef struct _G723_VADmemory{
    int     PrevEnergy;
    int     NoiseLevel;
    short   HangoverCounter;
    short   VADCounter;
    short   AdaptEnableFlag;
    short   OpenLoopDelay[4];
}G723_VADmemory;

/*
  Name:       VoiceActivityDetectSize

   Purpose:     VAD decision memory size query
   pVADmem     pointer to the VAD decision memory
*/

void VoiceActivityDetectSize_G723(int* pVADsize)
{

   *pVADsize = sizeof(G723_VADmemory);
   *pVADsize = (*pVADsize+7)&(~7);
}
/*
  Name:       VoiceActivityDetectInit

   Purpose:     VAD decision memory init
   pVADmem     pointer to the VAD decision memory
*/

void VoiceActivityDetectInit_G723(char* pVADmem)
{
   G723_VADmemory* vadMem =  (G723_VADmemory*)pVADmem;


   vadMem->HangoverCounter = 3;
   vadMem->VADCounter = 0;
   vadMem->PrevEnergy = 0x400;
   vadMem->NoiseLevel = 0x400;

   vadMem->AdaptEnableFlag = 0;

   vadMem->OpenLoopDelay[0] = 1;
   vadMem->OpenLoopDelay[1] = 1;

}

static __ALIGN32 CONST int LogAdd_Tbl[11] = {
   300482560, 300482560, 300482560, 300482560,337149952,378273792,424443904,476217344,534315008,599523328,672694272
};
static __ALIGN32 CONST short  LogMul_Tbl[11] = {
      0,    0,    0,    0, 1119, 1255, 1409, 1580, 1773, 1990, 2233
};
void VoiceActivityDetect_G723(const Ipp16s *pSrc, const Ipp16s *pNoiseLPC,
         const Ipp16s *pOpenLoopDelay, int SineWaveDetector, int *pVADDecision, int *pAdaptEnableFlag, char* pVADmem, short *AlignBuff)
{
   G723_VADmemory* vadMem =  (G723_VADmemory*)pVADmem;
   int i, j, lTmp0, lTmp1;
   short  sTmp0, sTmp1, sNmult, MinOLP;

   int  VADResult = 1 ;

   vadMem->OpenLoopDelay[2] = pOpenLoopDelay[0] ;
   vadMem->OpenLoopDelay[3] = pOpenLoopDelay[1] ;

   /* Find Minimum pitch period */
   MinOLP = G723_MAX_PITCH ;
   for ( i = 0 ; i < 4 ; i ++ ) {
       if ( MinOLP > vadMem->OpenLoopDelay[i] )
           MinOLP = vadMem->OpenLoopDelay[i] ;
   }

   /* How many olps are multiplies of their min */
   sNmult = 0 ;
   for ( i = 0 ; i < 4 ; i++ ) {
       sTmp1 = MinOLP ;
       for ( j = 0 ; j < 8 ; j++ ) {
           sTmp0 = sTmp1 - vadMem->OpenLoopDelay[i];
           if(sTmp0 < 0) sTmp0 = -sTmp0;
           if ( sTmp0 <= 3 ) sNmult++ ;
           sTmp1 += MinOLP;
       }
   }

   /* Update adaptation enable counter if not periodic and not sine and clip it.*/
   if ( (sNmult == 4) || (SineWaveDetector == -1) )
      if(vadMem->AdaptEnableFlag > 5) vadMem->AdaptEnableFlag = 6;
      else vadMem->AdaptEnableFlag += 2;
   else
      if ( vadMem->AdaptEnableFlag < 1 ) vadMem->AdaptEnableFlag = 0;
      else vadMem->AdaptEnableFlag--;

   /* Inverse filter the data */

   ippsResidualFilter_AMRWB_16s_Sfs(pNoiseLPC, G723_LPC_ORDER, &pSrc[G723_SBFR_LEN], AlignBuff, G723_FRM_LEN-G723_SBFR_LEN, 14);
   ippsDotProd_16s32s_Sfs(AlignBuff,AlignBuff,G723_FRM_LEN-G723_SBFR_LEN,&lTmp1,-1);

    /* Scale the rezidual energy */
    lTmp1 = MulC_32s(2913,  lTmp1 ) ;
   /* Clip noise level */
   if ( vadMem->NoiseLevel > vadMem->PrevEnergy ) {
      lTmp0 = vadMem->PrevEnergy - (vadMem->PrevEnergy>>2);
      vadMem->NoiseLevel = lTmp0 + (vadMem->NoiseLevel>>2);
   }


   /* Update the noise level */
   if ( !vadMem->AdaptEnableFlag ) {
      vadMem->NoiseLevel = vadMem->NoiseLevel + (vadMem->NoiseLevel>>5);
   } else { /* Decay NoiseLevel */
      vadMem->NoiseLevel = vadMem->NoiseLevel - (vadMem->NoiseLevel>>11);
   }

   /* Update previous energy */
   vadMem->PrevEnergy = lTmp1 ;

   /* CLip Noise Level */
   if ( vadMem->NoiseLevel < 0x80 )
       vadMem->NoiseLevel = 0x80 ;
   if ( vadMem->NoiseLevel > 0x1ffff )
       vadMem->NoiseLevel = 0x1ffff ;

   /* Compute the treshold */
   lTmp0 = vadMem->NoiseLevel<<13;
   sTmp0 = Norm_32s_Pos_I(&lTmp0);
   sTmp1 = (lTmp0>>15)& 0x7e00;

   lTmp0 = LogAdd_Tbl[sTmp0] - sTmp1 * LogMul_Tbl[sTmp0];
   sTmp1 = lTmp0 >> 15;


   sTmp0 = (short)(vadMem->NoiseLevel>>2);
   lTmp0 = sTmp0*sTmp1;
   lTmp0 >>= 10;

   /* treshold */
   if ( lTmp0 > lTmp1 )
       VADResult = 0 ;

   /* update counters */
   if ( VADResult ) {
       vadMem->VADCounter++ ;
       vadMem->HangoverCounter++ ;
   } else {
       vadMem->VADCounter-- ;
       if ( vadMem->VADCounter < 0 )
           vadMem->VADCounter = 0 ;
   }
   if ( vadMem->VADCounter >= 2 ) {
       vadMem->HangoverCounter = 6 ;
       if ( vadMem->VADCounter >= 3 )
           vadMem->VADCounter = 3 ;
   }
   if ( vadMem->HangoverCounter ) {
       VADResult = 1 ;
       if ( vadMem->VADCounter == 0 )
           vadMem->HangoverCounter -- ;
   }
   /* Update periodicy detector */
   vadMem->OpenLoopDelay[0] = vadMem->OpenLoopDelay[2] ;
   vadMem->OpenLoopDelay[1] = vadMem->OpenLoopDelay[3] ;

   *pAdaptEnableFlag = vadMem->AdaptEnableFlag; /* adaptation enable counter  */
   *pVADDecision = VADResult; /* VAD desision : 0 - noise, 1 - voice  */

}

static __ALIGN32 CONST short StratingPositionTbl[G723_SBFR_LEN/GRIDSIZE] = {
   0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58};

#define MAX_CACHE_NUM 32
static __ALIGN32 CONST short SeedCacheTbl[MAX_CACHE_NUM] = {
    17547, -15555,  11855,  26561, -20077, -21051, 24151,   9545,
   -15205,  24141,  29791,  -5935,   -605,  21717, -3993,  12889,
    -9045,   4445,  21103, -32287,  -7757,   5093,  6775,  22377,
   -29509,  -9107, -14209,  13041,  24003,  -5387, -9081, -27527};

static __ALIGN32 CONST short OlpCache[MAX_CACHE_NUM][2] = {
   {129, 137}, {143, 135}, {137, 140}, {133, 136},
   {129, 124}, {139, 140}, {129, 133}, {123, 129},
   {139, 128}, {128, 125}, {140, 132}, {137, 133},
   {136, 127}, {131, 132}, {129, 138}, {133, 127},
   {142, 123}, {127, 141}, {137, 128}, {134, 133},
   {136, 135}, {137, 129}, {143, 125}, {138, 130},
   {139, 143}, {140, 139}, {127, 128}, {124, 138},
   {130, 126}, {136, 129}, {130, 138}, {136, 136}};

static __ALIGN32 CONST short GainCache[MAX_CACHE_NUM][4] = {
   {34, 31, 18, 35}, {38, 16, 47, 22}, { 9, 29, 48, 36}, {16, 44,  4, 15},
   {16, 27, 34, 34}, { 5, 26, 45,  8}, {14, 32, 31, 36}, {12, 18, 25,  8},
   { 7, 50, 46, 49}, {43, 26,  1, 21}, { 3, 37, 35, 27}, { 5,  7, 29,  4},
   { 6, 50,  4, 28}, { 3, 16, 16, 12}, {25, 44, 10,  8}, {43, 10, 17,  2},
   {14, 27,  8, 22}, {33, 46, 40, 30}, {31,  4,  6, 28}, {28, 29, 39,  3},
   {31, 32,  9, 31}, {34, 15, 22, 26}, {20, 17, 23, 38}, { 9, 12, 44,  6},
   { 6, 14,  5,  5}, { 7, 25, 13, 49}, {44, 31, 11, 38}, {36, 10, 33, 11},
   {40, 24, 48, 44}, { 1, 24, 12, 49}, {50, 48, 21, 28}, { 9, 23,  5, 19}};

static __ALIGN32 CONST short SignCache[MAX_CACHE_NUM][24] = {
   { 16384,  16384, -16384, -16384,  16384,  16384,  16384, -16384,
     16384, -16384,  16384,  16384,  16384, -16384, -16384, -16384,
     16384,  16384,  16384, -16384, -16384, -16384,      0,      0},
   {-16384, -16384, -16384, -16384, -16384, -16384,  16384, -16384,
     16384, -16384, -16384, -16384, -16384, -16384, -16384,  16384,
    -16384,  16384, -16384,  16384,  16384, -16384,      0,      0},
   {-16384,  16384, -16384, -16384, -16384, -16384, -16384,  16384,
     16384,  16384,  16384,  16384,  16384, -16384, -16384, -16384,
     16384,  16384,  16384,  16384,  16384,  16384,      0,      0},
   {-16384,  16384, -16384,  16384,  16384, -16384,  16384, -16384,
     16384,  16384,  16384, -16384, -16384,  16384,  16384,  16384,
     16384, -16384,  16384, -16384,  16384,  16384,      0,      0},
   {-16384, -16384, -16384,  16384, -16384,  16384,  16384,  16384,
     16384, -16384,  16384,  16384,  16384, -16384,  16384,  16384,
     16384,  16384,  16384,  16384, -16384,  16384,      0,      0},
   {-16384, -16384,  16384,  16384, -16384, -16384,  16384, -16384,
    -16384,  16384,  16384, -16384, -16384, -16384, -16384, -16384,
    -16384,  16384,  16384,  16384, -16384, -16384,      0,      0},
   {-16384,  16384,  16384, -16384, -16384,  16384, -16384,  16384,
     16384, -16384, -16384,  16384,  16384, -16384,  16384, -16384,
     16384, -16384, -16384, -16384, -16384,  16384,      0,      0},
   {-16384,  16384,  16384, -16384,  16384, -16384, -16384, -16384,
     16384,  16384,  16384, -16384, -16384,  16384,  16384,  16384,
    -16384,  16384, -16384,  16384, -16384,  16384,      0,      0},
   {-16384, -16384,  16384,  16384,  16384,  16384, -16384,  16384,
     16384,  16384, -16384, -16384, -16384,  16384, -16384,  16384,
     16384,  16384, -16384,  16384,  16384, -16384,      0,      0},
   { 16384, -16384, -16384,  16384,  16384,  16384, -16384,  16384,
    -16384,  16384, -16384,  16384, -16384, -16384, -16384,  16384,
    -16384, -16384,  16384, -16384,  16384, -16384,      0,      0},
   { 16384,  16384, -16384,  16384, -16384,  16384, -16384, -16384,
     16384, -16384,  16384, -16384, -16384,  16384, -16384,  16384,
    -16384,  16384,  16384, -16384, -16384,  16384,      0,      0},
   { 16384,  16384, -16384, -16384,  16384,  16384, -16384, -16384,
    -16384,  16384, -16384,  16384, -16384,  16384,  16384,  16384,
    -16384,  16384, -16384, -16384,  16384, -16384,      0,      0},
   { 16384, -16384, -16384, -16384,  16384,  16384,  16384,  16384,
    -16384,  16384,  16384, -16384, -16384,  16384,  16384, -16384,
    -16384,  16384, -16384,  16384, -16384, -16384,      0,      0},
   { 16384, -16384,  16384, -16384, -16384, -16384, -16384,  16384,
    -16384,  16384,  16384,  16384, -16384, -16384, -16384, -16384,
    -16384,  16384,  16384,  16384, -16384,  16384,      0,      0},
   { 16384,  16384,  16384,  16384, -16384, -16384, -16384, -16384,
    -16384,  16384, -16384, -16384, -16384,  16384,  16384,  16384,
    -16384,  16384,  16384,  16384, -16384, -16384,      0,      0},
   { 16384,  16384,  16384,  16384, -16384,  16384, -16384,  16384,
    -16384, -16384, -16384,  16384, -16384,  16384,  16384,  16384,
     16384, -16384,  16384,  16384, -16384,  16384,      0,      0},
   { 16384, -16384,  16384, -16384, -16384, -16384, -16384,  16384,
     16384,  16384,  16384,  16384, -16384,  16384, -16384, -16384,
    -16384, -16384,  16384,  16384,  16384,  16384,      0,      0},
   {-16384,  16384, -16384, -16384,  16384,  16384, -16384,  16384,
     16384, -16384, -16384, -16384,  16384, -16384, -16384,  16384,
    -16384,  16384, -16384,  16384,  16384, -16384,      0,      0},
   {-16384, -16384,  16384, -16384,  16384, -16384,  16384, -16384,
    -16384, -16384, -16384,  16384, -16384,  16384, -16384, -16384,
    -16384,  16384, -16384,  16384,  16384, -16384,      0,      0},
   {-16384, -16384,  16384,  16384, -16384, -16384, -16384,  16384,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线亚洲一区二区| 一区二区三区高清在线| 日韩视频免费直播| 亚洲色图欧美在线| 成人性视频免费网站| 久久久精品天堂| www.视频一区| 亚洲国产三级在线| 日韩一区二区在线看片| 在线不卡a资源高清| 精品一区二区三区免费| 欧美国产亚洲另类动漫| 97久久人人超碰| 久久国产剧场电影| 国产精品婷婷午夜在线观看| 欧日韩精品视频| 久久精品国产亚洲5555| 国产一区不卡精品| 亚洲视频在线观看三级| 一区二区三区中文字幕| 亚洲韩国精品一区| 裸体一区二区三区| 国产精品欧美一级免费| 亚洲日本在线天堂| 亚洲va在线va天堂| 中文字幕一区二区三区在线不卡 | 黄色资源网久久资源365| 欧美激情一区三区| 日韩美女视频一区| 午夜精品久久久久久久久久久 | 在线免费视频一区二区| 91精品国产综合久久香蕉麻豆| 成人av免费在线| 久久99精品久久久久久国产越南| 激情综合一区二区三区| aaa亚洲精品一二三区| 欧美日韩成人综合| 欧美性受xxxx黑人xyx性爽| 成人app在线观看| 欧美天天综合网| 久久精品视频一区二区三区| 精品入口麻豆88视频| 欧美性大战久久久久久久蜜臀| 日韩女同互慰一区二区| 欧美一级日韩一级| 欧美日韩国产精选| 欧美激情一区三区| 美女网站一区二区| 在线区一区二视频| 国产精品女主播在线观看| 免费看日韩精品| 免费人成精品欧美精品| 色综合久久中文字幕| 欧洲亚洲国产日韩| 国产亚洲福利社区一区| 日韩精品福利网| 奇米影视一区二区三区小说| 色综合色综合色综合色综合色综合| 欧美一个色资源| 亚洲国产成人精品视频| www.av亚洲| 国产视频一区在线观看| 日本成人在线不卡视频| 久草精品在线观看| 在线电影一区二区三区| 亚洲女子a中天字幕| 亚洲电影在线播放| 9i在线看片成人免费| 精品国产免费人成电影在线观看四季| 精品久久久久一区二区国产| 天堂成人国产精品一区| 欧美亚洲免费在线一区| 亚洲女人的天堂| 91麻豆精品视频| 欧美性猛交xxxxxx富婆| 亚洲乱码一区二区三区在线观看| 亚洲一区二区三区免费视频| 日韩电影在线看| 欧美日韩国产首页| 亚洲成人综合在线| 欧美人牲a欧美精品| 天堂va蜜桃一区二区三区| 欧美视频一二三区| 天堂一区二区在线免费观看| 欧美日韩成人在线| 麻豆久久一区二区| 久久先锋资源网| 亚洲一区视频在线| 欧美色图在线观看| 亚洲国产精品久久艾草纯爱| 69成人精品免费视频| 日本大胆欧美人术艺术动态| 精品国产成人系列| 粉嫩一区二区三区在线看| 91精品综合久久久久久| 免费观看在线综合色| 久久久欧美精品sm网站| bt7086福利一区国产| 亚洲国产精品久久久男人的天堂 | 精一区二区三区| 久久久www成人免费毛片麻豆| 成人激情视频网站| 午夜精品爽啪视频| 日韩欧美中文字幕制服| 国产不卡视频一区二区三区| 亚洲三级在线免费观看| 777久久久精品| 成人精品电影在线观看| 亚洲一区二区三区四区在线免费观看 | 国产一区二区导航在线播放| 国产欧美综合在线观看第十页| 亚洲国产日韩在线一区模特| 欧美一区二区精品在线| 高清不卡在线观看av| 亚洲综合网站在线观看| 欧美成人aa大片| 91丝袜美腿高跟国产极品老师| 日韩高清欧美激情| 国产精品久久久久7777按摩| 成人免费视频视频在线观看免费| 亚洲精选视频在线| 精品美女一区二区| 在线观看91精品国产入口| 国产在线观看一区二区| 天天综合天天做天天综合| 国产精品久久久久久久久图文区 | 欧美精品一区二区三区久久久| 99视频精品免费视频| 精品一区二区在线观看| 亚洲国产一区二区三区| 自拍偷拍国产亚洲| 精品久久久久久久久久久久久久久 | 午夜电影一区二区三区| 亚洲色图视频网站| 国产亚洲成aⅴ人片在线观看| 777午夜精品免费视频| 色综合 综合色| av动漫一区二区| 床上的激情91.| 黑人巨大精品欧美黑白配亚洲| 天天综合色天天综合色h| 一区二区三区国产精华| 亚洲黄一区二区三区| 欧美经典一区二区三区| 亚洲精品在线观看视频| 欧美一区二区三区电影| 欧美日韩国产美| 在线亚洲人成电影网站色www| 99久久伊人精品| 成人精品国产福利| av午夜一区麻豆| 岛国精品在线观看| 成人国产在线观看| 国产成人av电影在线| 精品亚洲aⅴ乱码一区二区三区| 九色综合国产一区二区三区| 久久国产欧美日韩精品| 国产中文字幕一区| 国产一区二区三区四区五区入口| 看片的网站亚洲| 国产麻豆精品视频| 国产a精品视频| 96av麻豆蜜桃一区二区| 91在线观看成人| 欧美性极品少妇| 91.麻豆视频| 精品国产乱码久久久久久蜜臀| 久久久久国产精品免费免费搜索| 久久综合九色综合97_久久久| 26uuu亚洲婷婷狠狠天堂| 久久久精品2019中文字幕之3| 国产精品午夜免费| 亚洲欧美日韩一区二区| 亚洲国产中文字幕在线视频综合 | 一本久久综合亚洲鲁鲁五月天| 一本大道av一区二区在线播放| 欧亚一区二区三区| 日韩一区二区三区视频在线观看| 精品久久久久久久久久久院品网| 日本一区二区三区dvd视频在线| 国产精品天干天干在线综合| 亚洲一区二区三区四区的| 日韩成人一区二区| 国产精品一区二区久激情瑜伽 | 久久久影院官网| 中文字幕乱码一区二区免费| 亚洲免费伊人电影| 久久99精品久久久| 99久久综合国产精品| 欧美二区乱c少妇| 国产三级欧美三级日产三级99 | 成人黄色av电影| 56国语精品自产拍在线观看| 2024国产精品| 亚洲综合区在线| 国产精品一二三在| 欧美二区在线观看| 中文字幕一区二区三区蜜月| 日韩国产欧美一区二区三区| 97久久精品人人做人人爽|