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

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

?? icbsearch.c

?? 基于sip協(xié)議的網(wǎng)絡(luò)電話源碼
?? C
字號:
   /******************************************************************       iLBC Speech Coder ANSI-C Source Code       iCBSearch.c       Copyright (C) The Internet Society (2004).       All Rights Reserved.   ******************************************************************/   #include <math.h>   #include <string.h>   #include "iLBC_define.h"   #include "gainquant.h"   #include "createCB.h"   #include "filter.h"   #include "constants.h"   /*----------------------------------------------------------------*    *  Search routine for codebook encoding and gain quantization.    *---------------------------------------------------------------*/   void iCBSearch(       iLBC_Enc_Inst_t *iLBCenc_inst,                           /* (i) the encoder state structure */       int *index,         /* (o) Codebook indices */       int *gain_index,/* (o) Gain quantization indices */       float *intarget,/* (i) Target vector for encoding */       float *mem,         /* (i) Buffer for codebook construction */       int lMem,           /* (i) Length of buffer */       int lTarget,    /* (i) Length of vector */       int nStages,    /* (i) Number of codebook stages */       float *weightDenum, /* (i) weighting filter coefficients */       float *weightState, /* (i) weighting filter state */       int block           /* (i) the sub-block number */   ){       int i, j, icount, stage, best_index, range, counter;       float max_measure, gain, measure, crossDot, ftmp;       float gains[CB_NSTAGES];       float target[SUBL];       int base_index, sInd, eInd, base_size;       int sIndAug=0, eIndAug=0;       float buf[CB_MEML+SUBL+2*LPC_FILTERORDER];       float invenergy[CB_EXPAND*128], energy[CB_EXPAND*128];       float *pp, *ppi=0, *ppo=0, *ppe=0;       float cbvectors[CB_MEML];       float tene, cene, cvec[SUBL];       float aug_vec[SUBL];       memset(cvec,0,SUBL*sizeof(float));       /* Determine size of codebook sections */       base_size=lMem-lTarget+1;       if (lTarget==SUBL) {           base_size=lMem-lTarget+1+lTarget/2;       }       /* setup buffer for weighting */       memcpy(buf,weightState,sizeof(float)*LPC_FILTERORDER);       memcpy(buf+LPC_FILTERORDER,mem,lMem*sizeof(float));       memcpy(buf+LPC_FILTERORDER+lMem,intarget,lTarget*sizeof(float));       /* weighting */       AllPoleFilter(buf+LPC_FILTERORDER, weightDenum,           lMem+lTarget, LPC_FILTERORDER);       /* Construct the codebook and target needed */       memcpy(target, buf+LPC_FILTERORDER+lMem, lTarget*sizeof(float));       tene=0.0;       for (i=0; i<lTarget; i++) {           tene+=target[i]*target[i];       }       /* Prepare search over one more codebook section. This section          is created by filtering the original buffer with a filter. */       filteredCBvecs(cbvectors, buf+LPC_FILTERORDER, lMem);       /* The Main Loop over stages */       for (stage=0; stage<nStages; stage++) {           range = search_rangeTbl[block][stage];           /* initialize search measure */           max_measure = (float)-10000000.0;           gain = (float)0.0;           best_index = 0;           /* Compute cross dot product between the target              and the CB memory */           crossDot=0.0;           pp=buf+LPC_FILTERORDER+lMem-lTarget;           for (j=0; j<lTarget; j++) {               crossDot += target[j]*(*pp++);           }           if (stage==0) {               /* Calculate energy in the first block of                 'lTarget' samples. */               ppe = energy;               ppi = buf+LPC_FILTERORDER+lMem-lTarget-1;               ppo = buf+LPC_FILTERORDER+lMem-1;               *ppe=0.0;               pp=buf+LPC_FILTERORDER+lMem-lTarget;               for (j=0; j<lTarget; j++) {                   *ppe+=(*pp)*(*pp);		   ++pp;               }               if (*ppe>0.0) {                   invenergy[0] = (float) 1.0 / (*ppe + EPS);               } else {                   invenergy[0] = (float) 0.0;               }               ppe++;               measure=(float)-10000000.0;               if (crossDot > 0.0) {                      measure = crossDot*crossDot*invenergy[0];               }           }           else {               measure = crossDot*crossDot*invenergy[0];           }           /* check if measure is better */           ftmp = crossDot*invenergy[0];           if ((measure>max_measure) && (fabs(ftmp)<CB_MAXGAIN)) {               best_index = 0;               max_measure = measure;               gain = ftmp;           }           /* loop over the main first codebook section,              full search */           for (icount=1; icount<range; icount++) {               /* calculate measure */               crossDot=0.0;               pp = buf+LPC_FILTERORDER+lMem-lTarget-icount;               for (j=0; j<lTarget; j++) {                   crossDot += target[j]*(*pp++);               }               if (stage==0) {                   *ppe++ = energy[icount-1] + (*ppi)*(*ppi) -                       (*ppo)*(*ppo);                   ppo--;                   ppi--;                   if (energy[icount]>0.0) {                       invenergy[icount] =                           (float)1.0/(energy[icount]+EPS);                   } else {                       invenergy[icount] = (float) 0.0;                   }                   measure=(float)-10000000.0;                   if (crossDot > 0.0) {                       measure = crossDot*crossDot*invenergy[icount];                   }               }               else {                   measure = crossDot*crossDot*invenergy[icount];               }               /* check if measure is better */               ftmp = crossDot*invenergy[icount];               if ((measure>max_measure) && (fabs(ftmp)<CB_MAXGAIN)) {                   best_index = icount;                   max_measure = measure;                   gain = ftmp;               }           }           /* Loop over augmented part in the first codebook            * section, full search.            * The vectors are interpolated.            */           if (lTarget==SUBL) {               /* Search for best possible cb vector and                  compute the CB-vectors' energy. */               searchAugmentedCB(20, 39, stage, base_size-lTarget/2,                   target, buf+LPC_FILTERORDER+lMem,                   &max_measure, &best_index, &gain, energy,                   invenergy);           }           /* set search range for following codebook sections */           base_index=best_index;           /* unrestricted search */           if (CB_RESRANGE == -1) {               sInd=0;               eInd=range-1;               sIndAug=20;               eIndAug=39;           }           /* restricted search around best index from first           codebook section */           else {               /* Initialize search indices */               sIndAug=0;               eIndAug=0;               sInd=base_index-CB_RESRANGE/2;               eInd=sInd+CB_RESRANGE;               if (lTarget==SUBL) {                   if (sInd<0) {                       sIndAug = 40 + sInd;                       eIndAug = 39;                       sInd=0;                   } else if ( base_index < (base_size-20) ) {                       if (eInd > range) {                           sInd -= (eInd-range);                           eInd = range;                       }                   } else { /* base_index >= (base_size-20) */                       if (sInd < (base_size-20)) {                           sIndAug = 20;                           sInd = 0;                           eInd = 0;                           eIndAug = 19 + CB_RESRANGE;                           if(eIndAug > 39) {                               eInd = eIndAug-39;                               eIndAug = 39;                           }                       } else {                           sIndAug = 20 + sInd - (base_size-20);                           eIndAug = 39;                           sInd = 0;                           eInd = CB_RESRANGE - (eIndAug-sIndAug+1);                       }                   }               } else { /* lTarget = 22 or 23 */                   if (sInd < 0) {                       eInd -= sInd;                       sInd = 0;                   }                   if(eInd > range) {                       sInd -= (eInd - range);                       eInd = range;                   }               }           }           /* search of higher codebook section */           /* index search range */           counter = sInd;           sInd += base_size;           eInd += base_size;           if (stage==0) {               ppe = energy+base_size;               *ppe=0.0;               pp=cbvectors+lMem-lTarget;               for (j=0; j<lTarget; j++) {                   *ppe+=(*pp)*(*pp);		   ++pp;               }               ppi = cbvectors + lMem - 1 - lTarget;               ppo = cbvectors + lMem - 1;               for (j=0; j<(range-1); j++) {                   *(ppe+1) = *ppe + (*ppi)*(*ppi) - (*ppo)*(*ppo);                   ppo--;                   ppi--;                   ppe++;               }           }           /* loop over search range */           for (icount=sInd; icount<eInd; icount++) {               /* calculate measure */               crossDot=0.0;               pp=cbvectors + lMem - (counter++) - lTarget;               for (j=0;j<lTarget;j++) {                   crossDot += target[j]*(*pp++);               }               if (energy[icount]>0.0) {                   invenergy[icount] =(float)1.0/(energy[icount]+EPS);               } else {                   invenergy[icount] =(float)0.0;               }               if (stage==0) {                   measure=(float)-10000000.0;                   if (crossDot > 0.0) {                       measure = crossDot*crossDot*                           invenergy[icount];                   }               }               else {                   measure = crossDot*crossDot*invenergy[icount];               }               /* check if measure is better */               ftmp = crossDot*invenergy[icount];               if ((measure>max_measure) && (fabs(ftmp)<CB_MAXGAIN)) {                   best_index = icount;                   max_measure = measure;                   gain = ftmp;               }           }           /* Search the augmented CB inside the limited range. */           if ((lTarget==SUBL)&&(sIndAug!=0)) {               searchAugmentedCB(sIndAug, eIndAug, stage,                   2*base_size-20, target, cbvectors+lMem,                   &max_measure, &best_index, &gain, energy,                   invenergy);           }           /* record best index */           index[stage] = best_index;           /* gain quantization */           if (stage==0){               if (gain<0.0){                   gain = 0.0;               }               if (gain>CB_MAXGAIN) {                   gain = (float)CB_MAXGAIN;               }               gain = gainquant(gain, 1.0, 32, &gain_index[stage]);           }           else {               if (stage==1) {                   gain = gainquant(gain, (float)fabs(gains[stage-1]),                       16, &gain_index[stage]);               } else {                   gain = gainquant(gain, (float)fabs(gains[stage-1]),                       8, &gain_index[stage]);               }           }           /* Extract the best (according to measure)              codebook vector */           if (lTarget==(STATE_LEN-iLBCenc_inst->state_short_len)) {               if (index[stage]<base_size) {                   pp=buf+LPC_FILTERORDER+lMem-lTarget-index[stage];               } else {                   pp=cbvectors+lMem-lTarget-                       index[stage]+base_size;               }           } else {               if (index[stage]<base_size) {                   if (index[stage]<(base_size-20)) {                       pp=buf+LPC_FILTERORDER+lMem-                           lTarget-index[stage];                   } else {                       createAugmentedVec(index[stage]-base_size+40,                               buf+LPC_FILTERORDER+lMem,aug_vec);                       pp=aug_vec;                   }               } else {                   int filterno, position;                   filterno=index[stage]/base_size;                   position=index[stage]-filterno*base_size;                   if (position<(base_size-20)) {                       pp=cbvectors+filterno*lMem-lTarget-                           index[stage]+filterno*base_size;                   } else {                       createAugmentedVec(                           index[stage]-(filterno+1)*base_size+40,                           cbvectors+filterno*lMem,aug_vec);                       pp=aug_vec;                   }               }           }           /* Subtract the best codebook vector, according              to measure, from the target vector */           for (j=0;j<lTarget;j++) {               cvec[j] += gain*(*pp);               target[j] -= gain*(*pp++);           }           /* record quantized gain */           gains[stage]=gain;       }/* end of Main Loop. for (stage=0;... */       /* Gain adjustment for energy matching */       cene=0.0;       for (i=0; i<lTarget; i++) {           cene+=cvec[i]*cvec[i];       }       j=gain_index[0];       for (i=gain_index[0]; i<32; i++) {           ftmp=cene*gain_sq5Tbl[i]*gain_sq5Tbl[i];           if ((ftmp<(tene*gains[0]*gains[0])) &&               (gain_sq5Tbl[j]<(2.0*gains[0]))) {               j=i;           }       }       gain_index[0]=j;   }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三区在线观看| 欧美日韩视频一区二区| 最新国产成人在线观看| 国产一区二区在线视频| 亚洲欧美日韩国产综合在线| 欧美一区二区免费观在线| 国产精品原创巨作av| 国产精品女主播在线观看| 日韩视频免费观看高清完整版 | 欧美在线短视频| 国产东北露脸精品视频| 午夜国产精品影院在线观看| 国产女主播视频一区二区| 欧美久久久一区| 色婷婷综合久久久中文一区二区| 日本视频在线一区| 亚洲同性同志一二三专区| 欧美va亚洲va香蕉在线| 欧美日韩一级视频| 99久久精品费精品国产一区二区| 日韩一区精品字幕| 亚洲欧美日韩国产另类专区| 欧美极品另类videosde| 日韩欧美亚洲一区二区| 91豆麻精品91久久久久久| 国产成人免费高清| 经典三级一区二区| 日韩精品久久久久久| 亚洲视频一区二区免费在线观看 | 色噜噜偷拍精品综合在线| 久久国产精品色婷婷| 一区二区三区在线高清| 成人欧美一区二区三区黑人麻豆| 欧美sm极限捆绑bd| 在线观看日韩国产| 99视频在线观看一区三区| 国产一区二区免费看| 日韩电影在线免费看| 亚洲一级二级在线| 亚洲欧美一区二区三区久本道91| 欧美不卡视频一区| 欧美精品tushy高清| 在线亚洲高清视频| 成人av资源网站| 成人黄色国产精品网站大全在线免费观看| 另类的小说在线视频另类成人小视频在线 | 精品99999| 久久综合九色综合欧美98| 这里是久久伊人| 欧美精品日韩一本| 3d动漫精品啪啪1区2区免费| 日韩欧美黄色影院| 日韩一区二区三区四区五区六区| 欧美视频一二三区| 欧美日韩高清一区二区三区| 欧美精品日韩一区| 日韩一级在线观看| 精品国精品国产尤物美女| 日韩限制级电影在线观看| 精品国产免费久久| 久久影院视频免费| 久久久久久久精| 国产欧美一区二区在线观看| 中文字幕一区二区三区在线观看 | 久久99久久久久久久久久久| 日韩黄色一级片| 久久精品国产77777蜜臀| 久久超碰97中文字幕| 福利一区在线观看| 91麻豆swag| 欧美性一级生活| 在线综合+亚洲+欧美中文字幕| 欧美不卡一区二区三区| 国产网站一区二区三区| 国产精品久久看| 亚洲精品免费一二三区| 久久久久综合网| 玉米视频成人免费看| 亚洲成人av中文| 精品一区在线看| 精品一区二区三区免费| 成人精品视频一区| 成人av电影在线| 欧美色成人综合| 日韩一区二区在线播放| 国产欧美一区二区三区网站| 亚洲国产乱码最新视频| 久久精品国产秦先生| 成人在线视频首页| 欧美日韩在线不卡| 国产精品成人一区二区三区夜夜夜 | 夜夜嗨av一区二区三区| 免费成人在线网站| 高清视频一区二区| 精品视频色一区| 欧美一区三区四区| 国产精品理论在线观看| 亚洲成av人综合在线观看| 国内精品嫩模私拍在线| 欧美性videosxxxxx| 亚洲精品一区二区精华| 亚洲人成精品久久久久久| 蜜桃久久精品一区二区| 国产自产视频一区二区三区| 欧美日韩在线观看一区二区| 久久精品免视看| 一级特黄大欧美久久久| 国产经典欧美精品| 日韩视频一区在线观看| 天堂一区二区在线| 91福利精品第一导航| 1000精品久久久久久久久| 国产一区二区久久| 日韩午夜电影在线观看| 日韩综合小视频| 欧美精品在线一区二区三区| 亚洲精品久久久久久国产精华液| 国产91丝袜在线18| 久久精品视频一区二区三区| 免费成人在线网站| 欧美一级日韩免费不卡| 日韩在线播放一区二区| 欧美日韩不卡一区| 午夜精品久久久久久久99水蜜桃| 色偷偷久久一区二区三区| 亚洲欧美在线视频观看| 99久久久免费精品国产一区二区| 国产欧美精品一区二区三区四区| 久久国产麻豆精品| 精品国产成人系列| 精品在线你懂的| 久久亚洲免费视频| 国产一二三精品| 久久久天堂av| 懂色av中文字幕一区二区三区 | 国产日韩成人精品| 国产精品一区二区果冻传媒| 久久久欧美精品sm网站| 国产很黄免费观看久久| 国产精品青草综合久久久久99| 成人深夜福利app| 亚洲视频中文字幕| 色噜噜狠狠色综合欧洲selulu| 一区二区三区在线免费观看| 在线国产亚洲欧美| 日韩国产欧美在线视频| 日韩欧美一级二级三级| 国产一区二区三区久久久 | 91精品国产综合久久久久久久| 日本在线不卡一区| 欧美videos大乳护士334| 激情综合五月婷婷| 亚洲国产成人一区二区三区| 91色在线porny| 亚洲成人在线免费| 精品国产免费久久| 99久久免费国产| 亚洲一区精品在线| 日韩一级高清毛片| 国产69精品久久久久777| 亚洲视频一区在线观看| 欧美疯狂性受xxxxx喷水图片| 蜜臀av一区二区| 日本一区二区三区电影| 欧美吻胸吃奶大尺度电影| 欧美aaaaaa午夜精品| 国产日产欧产精品推荐色| 91麻豆国产精品久久| 午夜免费久久看| 26uuu成人网一区二区三区| av电影一区二区| 日韩精品五月天| 中文字幕二三区不卡| 欧美福利一区二区| 国产69精品久久久久777| 亚洲观看高清完整版在线观看| 日韩视频中午一区| 色综合久久99| 精品一区二区三区在线观看国产 | 综合欧美亚洲日本| 3751色影院一区二区三区| 国产精品夜夜爽| 亚洲午夜精品在线| 中文av字幕一区| 日韩欧美高清dvd碟片| 99久久国产综合精品麻豆| 人人狠狠综合久久亚洲| 亚洲欧洲精品一区二区精品久久久| 717成人午夜免费福利电影| 成人国产精品免费网站| 日韩av在线播放中文字幕| 亚洲欧洲日韩av| 国产亚洲女人久久久久毛片| 欧美日韩国产综合一区二区三区| 成人午夜激情片| 精品在线一区二区三区| 午夜在线成人av| 日韩理论片网站| 国产喷白浆一区二区三区| 日韩一二在线观看|