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

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

?? owng729fp.c

?? G.711,G.723.1,G.726,G.729,GSM CODEC C/C++ code
?? C
?? 第 1 頁 / 共 5 頁
字號:
    ippsDotProd_32f(pTmp, pTmp, LPC_ORDER, &fSpectralDistortion);

    /* compute # zero crossing */
    ippsSignChangeRate_32f(&pSrc[ZC_START_INDEX], ZC_END_INDEX+1-ZC_START_INDEX, &zeroNum);
    lNumZeroCrossing = zeroNum/80;

    /* Initialize and update min energies */
    if( FrameCounter < 129 ) {
        if( fFullBandEnergy < vadState->fMinEnergy ){
            vadState->fMinEnergy = fFullBandEnergy;
            vadState->fPrevMinEnergy = fFullBandEnergy;
        }
        if( (FrameCounter % 8) == 0){
            vadState->MinimumBuff[FrameCounter/8 -1] = vadState->fMinEnergy;
            vadState->fMinEnergy = IPP_MAXABS_32F;
        }
    }
    if( (FrameCounter % 8) == 0){
        ippsMin_32f(vadState->MinimumBuff,15,&vadState->fPrevMinEnergy);
    }

    if( FrameCounter >= 129 ) {
        if( (FrameCounter % 8 ) == 1) {
            vadState->fMinEnergy = vadState->fPrevMinEnergy;
            vadState->fNextMinEnergy = IPP_MAXABS_32F;
        }
        if( fFullBandEnergy < vadState->fMinEnergy )
            vadState->fMinEnergy = fFullBandEnergy;
        if( fFullBandEnergy < vadState->fNextMinEnergy )
            vadState->fNextMinEnergy = fFullBandEnergy;
        if( (FrameCounter % 8) == 0){
            for ( i =0; i< 15; i++)
                vadState->MinimumBuff[i] = vadState->MinimumBuff[i+1];
            vadState->MinimumBuff[15]  = vadState->fNextMinEnergy;
            ippsMin_32f(vadState->MinimumBuff,16,&vadState->fPrevMinEnergy);

        }
    }

    if (FrameCounter <= END_OF_INIT){
        if( fFullBandEnergy < 21.0f){
            vadState->lLessEnergyCounter++;
            *pVad = VAD_NOISE;
        }
        else{
            *pVad = VAD_VOICE;
            vadState->fMeanEnergy = (vadState->fMeanEnergy*( (float)(FrameCounter-vadState->lLessEnergyCounter -1)) +
                fFullBandEnergy)/(float) (FrameCounter-vadState->lLessEnergyCounter);
            vadState->fMeanZeroCrossing = (vadState->fMeanZeroCrossing*( (float)(FrameCounter-vadState->lLessEnergyCounter -1)) +
                lNumZeroCrossing)/(float) (FrameCounter-vadState->lLessEnergyCounter);
            ippsInterpolateC_G729_32f(vadState->MeanLSFVec, (float)(FrameCounter-vadState->lLessEnergyCounter -1),
                                             pLSF, 1.0f, vadState->MeanLSFVec, LPC_ORDER);
            ippsMulC_32f_I(1.0f/(float) (FrameCounter-vadState->lLessEnergyCounter ), vadState->MeanLSFVec, LPC_ORDER);
        }
    }

    if (FrameCounter >= END_OF_INIT ){
        if (FrameCounter == END_OF_INIT ){
            vadState->fMeanFullBandEnergy = vadState->fMeanEnergy - 10.0f;
            vadState->fMeanLowBandEnergy = vadState->fMeanEnergy - 12.0f;
        }

        fFullBandEnergyDiff = vadState->fMeanFullBandEnergy - fFullBandEnergy;
        fLowBandEnergyDiff = vadState->fMeanLowBandEnergy - fLowBandEnergy;
        fZeroCrossingDiff = vadState->fMeanZeroCrossing - lNumZeroCrossing;

        if( fFullBandEnergy < 21.0f ){
            *pVad = VAD_NOISE;
        }
        else{
            *pVad =MakeDecision(fLowBandEnergyDiff, fFullBandEnergyDiff, fSpectralDistortion, fZeroCrossingDiff );
        }

        vadState->lVADFlag =VAD_NOISE;
        if( (prevDecision == VAD_VOICE) && (*pVad == VAD_NOISE) &&
            (fFullBandEnergy > vadState->fMeanFullBandEnergy + 2.0f) && ( fFullBandEnergy > 21.0f)){
            *pVad = VAD_VOICE;
            vadState->lVADFlag=VAD_VOICE;
        }

        if((vadState->lFVD == 1) ){
            if( (prevPrevDecision == VAD_VOICE) && (prevDecision == VAD_VOICE) &&
                (*pVad == VAD_NOISE) && (fabs(vadState->fPrevEnergy - fFullBandEnergy)<= 3.0f)){
                vadState->lSmoothingCounter++;
                *pVad = VAD_VOICE;
                vadState->lVADFlag=VAD_VOICE;
                if(vadState->lSmoothingCounter <=4)
                    vadState->lFVD =1;
                else{
                    vadState->lFVD =0;
                    vadState->lSmoothingCounter=0;
                }
            }
        }
        else
            vadState->lFVD =1;

        if(*pVad == VAD_NOISE)
            vadState->lSilenceCounter++;

        if((*pVad == VAD_VOICE) && (vadState->lSilenceCounter > 10) &&
            ((fFullBandEnergy - vadState->fPrevEnergy) <= 3.0f)){
            *pVad = VAD_NOISE;
            vadState->lSilenceCounter=0;
        }


        if(*pVad == VAD_VOICE)
            vadState->lSilenceCounter=0;

        if ((fFullBandEnergy < vadState->fMeanFullBandEnergy + 3.0f) && ( FrameCounter >128)
             &&( !vadState->lVADFlag) && (ReflectCoeff < 0.6f) )
             *pVad = VAD_NOISE;

        if ((fFullBandEnergy < vadState->fMeanFullBandEnergy + 3.0f) && (ReflectCoeff < 0.75f) && ( fSpectralDistortion < 0.002532959f)){
            vadState->lUpdateCounter++;
            i = vadState->lUpdateCounter/10;
            if(i>6) i=6;
            pVadTable = vadTable[i];
            ippsInterpolateC_G729_32f(vadState->MeanLSFVec, pVadTable[4],
                                             pLSF, (pVadTable[5]), vadState->MeanLSFVec, LPC_ORDER);
            vadState->fMeanFullBandEnergy = pVadTable[0]*vadState->fMeanFullBandEnergy+(pVadTable[1])*fFullBandEnergy;
            vadState->fMeanLowBandEnergy = pVadTable[0]*vadState->fMeanLowBandEnergy+(pVadTable[1])*fLowBandEnergy;
            vadState->fMeanZeroCrossing = pVadTable[2]*vadState->fMeanZeroCrossing+(pVadTable[3])*lNumZeroCrossing;
        }

        if((FrameCounter > 128) && ( (  vadState->fMeanFullBandEnergy < vadState->fMinEnergy )
            && ( fSpectralDistortion < 0.002532959f)) || ( vadState->fMeanFullBandEnergy > vadState->fMinEnergy + 10.0f )){
            vadState->fMeanFullBandEnergy = vadState->fMinEnergy;
            vadState->lUpdateCounter = 0;
        }
    }

    vadState->fPrevEnergy = fFullBandEnergy;
    return;
}

int TestErrorContribution_G729(int valPitchDelay, int valFracPitchDelay, float *ExcErr)
{

    int j, lTmp, l1, l2, lTaming;
    float maxErrExc;

    lTmp = (valFracPitchDelay > 0) ? (valPitchDelay+1) : valPitchDelay;

    j = lTmp - SUBFR_LEN - INTER_PITCH_LEN;
    if(j < 0) j = 0;
    l1 =  (int) (j * INV_SUBFR_LEN);

    j = lTmp + INTER_PITCH_LEN - 2;
    l2 =  (int) (j * INV_SUBFR_LEN);

    maxErrExc = -1.f;
    lTaming = 0 ;
    for(j=l2; j>=l1; j--) {
        if(ExcErr[j] > maxErrExc) maxErrExc = ExcErr[j];
    }
    if(maxErrExc > THRESH_ERR) {
        lTaming = 1;
    }
    return(lTaming);
}

void UpdateExcErr_G729(float valPitchGain, int valPitchDelay, float *pExcErr)
{
    int i, l1, l2, n;
    float fMax, fTmp;

    fMax = -1.f;

    n = valPitchDelay- SUBFR_LEN;
    if(n < 0) {
        fTmp = 1.f + valPitchGain * pExcErr[0];
        if(fTmp > fMax) fMax = fTmp;
        fTmp = 1.f + valPitchGain * fTmp;
        if(fTmp > fMax) fMax = fTmp;
    } else {
        l1 = (int) (n * INV_SUBFR_LEN);

        i = valPitchDelay - 1;
        l2 = (int) (i * INV_SUBFR_LEN);

        for(i = l1; i <= l2; i++) {
            fTmp = 1.f + valPitchGain * pExcErr[i];
            if(fTmp > fMax) fMax = fTmp;
        }
    }

    for(i=3; i>=1; i--) pExcErr[i] = pExcErr[i-1];
    pExcErr[0] = fMax;

    return;
}

void isBackwardModeDominant_G729(int *isBackwardModeDominant, int LPCMode, int *pCounterBackward, int *pCounterForward)
{

    int lTmp, lCounter;

    if (LPCMode == 0) (*pCounterForward)++;
    else (*pCounterBackward)++;

    lCounter = *pCounterBackward + *pCounterForward;

    if (lCounter == 100) {
        lCounter = lCounter >> 1;
        *pCounterBackward = (*pCounterBackward) >> 1;
        *pCounterForward = (*pCounterForward) >> 1;
    }

    *isBackwardModeDominant = 0;
    if (lCounter >= 10) {
        lTmp = (*pCounterForward) << 2;
        if (*pCounterBackward > lTmp) *isBackwardModeDominant = 1;
    }

    return;
}

float CalcEnergy_dB_G729(float *pSrc, int len)
{
   double  dEnergy;
   float fEnergydB;
   int n, k, lTmp;

   ippsDotProd_32f64f(pSrc, pSrc, len, &dEnergy);
   dEnergy += 0.0001;
   fEnergydB = (float)log10(dEnergy);
   n = (int) (fEnergydB * INVERSE_LOG2);
   if(n >= 4) {
      if(dEnergy > 2147483647.) dEnergy = 93.1814;
      else {
         k = (int)dEnergy;
         lTmp = -(1 << (n-4));
         k &= lTmp;
         dEnergy = 10. * log10((float)k);
      }
   }
   else dEnergy = 0.005;

   return (float)dEnergy;
}

void InterpolatedBackwardFilter_G729(float *pSrcDstLPCBackwardFlt, float *pSrcPrevFilter, float *pSrcDstIntCoeff)
{
    int i;
    float s1, s2;
    float *pBwdLPC;
    float fIntFactor;

    pBwdLPC = pSrcDstLPCBackwardFlt + BWD_LPC_ORDERP1;

    /* Calculate the interpolated filters  */
    fIntFactor = *pSrcDstIntCoeff - 0.1f;
    if( fIntFactor < 0) fIntFactor = 0;

    for (i=0; i<BWD_LPC_ORDERP1; i++) {
        s1 = pBwdLPC[i] * (1.f - fIntFactor);
        s2 = pSrcPrevFilter[i] * fIntFactor;
        pBwdLPC[i] = s1 + s2;
    }
    //ippsInterpolateC_G729_32f(pBwdLPC, (1.f - fIntFactor), pSrcPrevFilter, fIntFactor, pBwdLPC, BWD_LPC_ORDERP1);

    for (i=0; i<BWD_LPC_ORDERP1; i++) {
        pSrcDstLPCBackwardFlt[i] = 0.5f * (pBwdLPC[i] + pSrcPrevFilter[i]);
    }
    //ippsInterpolateC_G729_32f(pBwdLPC, 0.5f, pSrcPrevFilter, 0.5f, pBwdLPC, BWD_LPC_ORDERP1);

    *pSrcDstIntCoeff = fIntFactor;
    return;
}

/* anti-sparseness post-processing */
static __ALIGN32 CONST float ImpLow[SUBFR_LEN]={
   0.4483f, 0.3515f, 0.0387f,-0.0843f,-0.1731f, 0.2293f,-0.0011f,
   -0.0857f,-0.0928f, 0.1472f, 0.0901f,-0.2571f, 0.1155f, 0.0444f,
   0.0665f,-0.2636f, 0.2457f,-0.0642f,-0.0444f, 0.0237f, 0.0338f,
   -0.0728f, 0.0688f,-0.0111f,-0.0206f,-0.0642f, 0.1845f,-0.1734f,
   0.0327f, 0.0953f,-0.1544f, 0.1621f,-0.0711f,-0.1138f, 0.2113f,
   -0.1187f, 0.0206f,-0.0542f, 0.0009f,0.3096f
};

static __ALIGN32 CONST float ImpMiddle[SUBFR_LEN]={
   0.9239f, 0.1169f, -0.1232f, 0.0907f, -0.0320f, -0.0306f, 0.0756f,
   -0.0929f, 0.0859f, -0.0681f, 0.0535f, -0.0492f, 0.0523f, -0.0542f,
   0.0471f, -0.0308f, 0.0131f, -0.0052f, 0.0144f, -0.0386f, 0.0664f,
   -0.0826f, 0.0770f, -0.0495f, 0.0105f, 0.0252f, -0.0467f, 0.0526f,
   -0.0506f, 0.0519f, -0.0630f, 0.0807f, -0.0934f, 0.0884f, -0.0604f,
   0.0170f, 0.0238f, -0.0418f, 0.0257f, 0.0200f
};

static __ALIGN32 CONST float ImpHigh[SUBFR_LEN]={
   1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
   0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
   0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
   0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f
};


void PHDGetSize(Ipp32s *pDstSize)
{
   *pDstSize = sizeof(PHDmemory);
   return;
}

void PHDInit(char *phdMem)
{
   PHDmemory *phdState = (PHDmemory *)phdMem;

   ippsZero_32f(phdState->gainMem,6);
   phdState->prevDispState = 0;
   phdState->prevCbGain = 0.;
   phdState->onset = 0;
}

void PhaseDispersionUpdate_G729D(float valPitchGain, float valCodebookGain, char *phdMem)
{
    int i;
    PHDmemory *phdState = (PHDmemory *)phdMem;

    for (i = 5; i > 0; i--) phdState->gainMem[i] = phdState->gainMem[i-1];
    phdState->gainMem[0] = valPitchGain;
    phdState->prevDispState = 2;
    phdState->prevCbGain = valCodebookGain;
    phdState->onset = 0;

    return;
}

void PhaseDispersion_G729D(float *pSrcExcSignal, float *pDstFltExcSignal, float valCodebookGain,
                           float valPitchGain, float *pSrcDstInnovation, char *phdMem,char *pExtBuff)
{
    int  i;
    PHDmemory *phdState = (PHDmemory *)phdMem;

    float *pScaledLTP;
    float *pMemory;
    int *pPos;
    int numNonZeroElem, nPulse, i1, lPos;
    int phDispState;
    const float *pTable;

    pScaledLTP = (float *)pExtBuff;
    pMemory = (float *)(pExtBuff + SUBFR_LEN*sizeof(float));
    pPos = (int *)(pMemory + SUBFR_LEN*sizeof(float));

    /* anti-sparseness post-processing */
    ippsAdaptiveCodebookContribution_G729_32f(valCodebookGain, pSrcDstInnovation, pSrcExcSignal, pScaledLTP);
    ippsCopy_32f(pSrcDstInnovation,pMemory,SUBFR_LEN);
    ippsZero_32f(pSrcDstInnovation,SUBFR_LEN);

    numNonZeroElem=0;
    for (i=0; i<SUBFR_LEN; i++) {
        if (pMemory[i])
            pPos[numNonZeroElem++] = i;
    }
    if (valPitchGain <= 0.6f) {
        phDispState = 0;
    } else if ( (valPitchGain > 0.6f) && (valPitchGain < 0.9f) ) {
        phDispState = 1;
    } else {
        phDispState = 2;
    }

    for (i = 5; i > 0; i--) {
        phdState->gainMem[i]=phdState->gainMem[i-1];
    }
    phdState->gainMem[0] = valPitchGain;

    if (valCodebookGain > 2.0f * phdState->prevCbGain)
        phdState->onset = 2;
    else {
        if (phdState->onset) phdState->onset -= 1;
    }

    i1=0;
    for (i = 0; i < 6; i++) {
        if (phdState->gainMem[i] < 0.6f) i1 += 1;
    }
    if (i1 > 2 && !phdState->onset) phDispState = 0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区私人影院日本| 亚洲国产成人av网| 亚洲在线中文字幕| 国产一区二区h| 欧美一区二区三区在线观看视频| 国产网站一区二区| 日韩av中文字幕一区二区三区| 成人三级伦理片| 日韩欧美色综合网站| 亚洲午夜在线电影| 成人av网站在线| 精品国内二区三区| 蜜桃久久av一区| 制服.丝袜.亚洲.另类.中文| 亚洲色图制服诱惑| 国产不卡免费视频| 久久久久久久久免费| 视频在线观看91| 欧美日本一道本| 亚洲午夜精品网| 在线一区二区三区做爰视频网站| 国产精品久久久久久亚洲伦| 国产精品自拍av| 亚洲精品在线观| 韩国午夜理伦三级不卡影院| 91精品在线一区二区| 一区二区三区日韩欧美精品| 91在线精品秘密一区二区| 国产精品亲子伦对白| 国产成人欧美日韩在线电影| 久久综合色综合88| 国产美女久久久久| 中文字幕精品综合| 成人精品免费网站| **欧美大码日韩| 在线欧美小视频| 亚洲精品国产a久久久久久 | 国产在线播放一区三区四| 日韩一区二区三区电影| 日本一不卡视频| 日韩三级高清在线| 国产成人在线免费| 国产精品久久久久久久岛一牛影视 | 福利视频网站一区二区三区| 国产精品欧美久久久久无广告| 国产成人在线视频网站| 中文字幕一区二区三区视频| 91色综合久久久久婷婷| 亚洲最大成人网4388xx| 3d成人h动漫网站入口| 国模娜娜一区二区三区| 国产精品久久毛片a| 欧美视频在线一区| 久久99在线观看| 一区视频在线播放| 欧美电影影音先锋| 国产精品一区久久久久| 亚洲三级理论片| 欧美巨大另类极品videosbest | 国产精品污网站| 色综合久久久久| 日本最新不卡在线| 国产女主播一区| 欧美日韩国产一区二区三区地区| 久久99国产精品尤物| 亚洲视频免费在线观看| 777a∨成人精品桃花网| 国产福利一区二区三区| 亚洲线精品一区二区三区八戒| 日韩视频在线永久播放| 成人av网址在线| 日本麻豆一区二区三区视频| 国产精品久久久久久久岛一牛影视 | 亚洲乱码国产乱码精品精可以看| 欧美三级一区二区| 国产成人小视频| 天堂影院一区二区| 国产精品高潮呻吟久久| 欧美一级免费大片| 97se狠狠狠综合亚洲狠狠| 日韩国产精品久久久久久亚洲| 中文字幕精品一区 | 在线精品视频免费观看| 国产一区三区三区| 丝袜美腿亚洲一区二区图片| 国产精品白丝在线| 欧美成人精品二区三区99精品| 99久久精品国产观看| 理论电影国产精品| 亚洲成年人影院| 亚洲日本va午夜在线影院| 26uuu精品一区二区三区四区在线| 色中色一区二区| 国产成人精品免费网站| 青青草97国产精品免费观看 | 国产精品欧美综合在线| 精品国产乱码久久久久久蜜臀 | 国产亚洲精品超碰| 91麻豆精品国产91久久久更新时间| 99视频热这里只有精品免费| 国产一区二区精品久久| 蜜臀av国产精品久久久久| 亚洲一区在线观看视频| 亚洲天堂久久久久久久| 中文字幕 久热精品 视频在线| 日韩欧美一级二级| 制服丝袜亚洲网站| 欧美一区二区在线播放| 欧美绝品在线观看成人午夜影视| 一本大道av一区二区在线播放| 成人综合在线观看| 成人福利在线看| 成人禁用看黄a在线| 国产精品99久久久久久宅男| 国产一区啦啦啦在线观看| 国产麻豆成人精品| 国产成人午夜片在线观看高清观看| 国产主播一区二区| 国产精品一色哟哟哟| 成人精品免费网站| 色激情天天射综合网| 欧美三区在线观看| 欧美老人xxxx18| 日韩欧美在线一区二区三区| 欧美成人免费网站| 中文在线一区二区 | 97成人超碰视| 欧美偷拍一区二区| 91精品视频网| 欧美mv日韩mv国产网站app| 日韩精品一区二区三区在线播放 | 夜夜嗨av一区二区三区中文字幕| 亚洲综合一二区| 午夜精品久久久久久不卡8050| 蜜臀精品久久久久久蜜臀| 精品一区二区三区的国产在线播放 | 欧美在线视频你懂得| 欧美三区免费完整视频在线观看| 日韩一区二区中文字幕| 久久久久久9999| 亚洲精品国产品国语在线app| 日韩激情av在线| 国产老肥熟一区二区三区| aaa欧美日韩| 在线播放国产精品二区一二区四区| 中文欧美字幕免费| 亚洲图片欧美激情| 琪琪久久久久日韩精品| 国产麻豆精品久久一二三| 色综合天天综合色综合av| 欧美日韩国产大片| 中文av字幕一区| 免费不卡在线视频| av电影在线观看一区| 91精品国产综合久久久久久| 日本一区二区成人在线| 亚洲高清不卡在线观看| 成人影视亚洲图片在线| 欧美三级电影网| 中文字幕在线免费不卡| 美腿丝袜亚洲三区| 91麻豆国产福利在线观看| 精品福利av导航| 亚洲国产中文字幕在线视频综合 | 美日韩一区二区| 91尤物视频在线观看| 精品国产一二三| 亚洲一区二区免费视频| 国产激情一区二区三区| 制服丝袜日韩国产| 亚洲日本在线视频观看| 国产原创一区二区三区| 欧美军同video69gay| 亚洲欧美偷拍卡通变态| 国产成人自拍高清视频在线免费播放| 欧美日韩一区精品| 亚洲视频一区在线| 国产成人aaaa| 国产无人区一区二区三区| 久久精品噜噜噜成人88aⅴ| 色婷婷av一区二区三区gif| 国产女人aaa级久久久级| 国产在线看一区| 91精品国模一区二区三区| 一区二区三区精品久久久| 成人av在线资源网| 久久久久97国产精华液好用吗| 日韩电影免费一区| voyeur盗摄精品| 久久久久久久性| 欧美电影免费观看高清完整版在 | 亚洲精品在线电影| 成人午夜电影久久影院| 亚洲另类春色国产| 91片在线免费观看| 国产精品国产三级国产普通话蜜臀 | 成人av在线资源网站| 中文字幕巨乱亚洲| 一本一道久久a久久精品 | 亚洲午夜一二三区视频|