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

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

?? qua_gain.c

?? ITU-T G.729的一個實現例子(包括附錄b的vod檢測等功能)
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
   ITU-T G.729 Speech Coder ANSI-C Source Code
   Version 3.3    Last modified: December 26, 1995

   Copyright (c) 1996,
   AT&T, France Telecom, NTT, Universite de Sherbrooke, Lucent Technologies
   All rights reserved.
*/

#include "typedef.h"
#include "basic_op.h"
#include "oper_32b.h"

#include "ld8k.h"
#include "tab_ld8k.h"

static void Gbk_presel(
   Word16 best_gain[],     /* (i) [0] Q9 : unquantized pitch gain     */
                           /* (i) [1] Q2 : unquantized code gain      */
   Word16 *cand1,          /* (o)    : index of best 1st stage vector */
   Word16 *cand2,          /* (o)    : index of best 2nd stage vector */
   Word16 gcode0           /* (i) Q4 : presearch for gain codebook    */
);


/*---------------------------------------------------------------------------*
 * Function  Qua_gain                                                        *
 * ~~~~~~~~~~~~~~~~~~                                                        *
 * Inputs:                                                                   *
 *   code[]     :Innovative codebook.                                        *
 *   g_coeff[]  :Correlations compute for pitch.                             *
 *   L_subfr    :Subframe length.                                            *
 *                                                                           *
 * Outputs:                                                                  *
 *   gain_pit   :Quantized pitch gain.                                       *
 *   gain_cod   :Quantized code gain.                                        *
 *                                                                           *
 * Return:                                                                   *
 *   Index of quantization.                                                  *
 *                                                                           *
 *--------------------------------------------------------------------------*/
Word16 Qua_gain(
   Word16 code[],       /* (i) Q13 :Innovative vector.             */
   Word16 g_coeff[],    /* (i)     :Correlations <xn y1> -2<y1 y1> */
                        /*            <y2,y2>, -2<xn,y2>, 2<y1,y2> */
   Word16 exp_coeff[],  /* (i)     :Q-Format g_coeff[]             */
   Word16 L_subfr,      /* (i)     :Subframe length.               */
   Word16 *gain_pit,    /* (o) Q14 :Pitch gain.                    */
   Word16 *gain_cod,    /* (o) Q1  :Code gain.                     */
   Word16 tameflag      /* (i)     : set to 1 if taming is needed  */
)
{
   Word16  i, j, index1, index2;
   Word16  cand1, cand2;
   Word16  exp, gcode0, exp_gcode0, gcode0_org, e_min ;
   Word16  nume, denom, inv_denom;
   Word16  exp1,exp2,exp_nume,exp_denom,exp_inv_denom,sft,tmp;
   Word16  g_pitch, g2_pitch, g_code, g2_code, g_pit_cod;
   Word16  coeff[5], coeff_lsf[5];
   Word16  exp_min[5];
   Word32  L_gbk12;
   Word32  L_tmp, L_dist_min, L_temp, L_tmp1, L_tmp2, L_acc, L_accb;
   Word16  best_gain[2];

        /* Gain predictor, Past quantized energies = -14.0 in Q10 */

 static Word16 past_qua_en[4] = { -14336, -14336, -14336, -14336 };

  /*---------------------------------------------------*
   *-  energy due to innovation                       -*
   *-  predicted energy                               -*
   *-  predicted codebook gain => gcode0[exp_gcode0]  -*
   *---------------------------------------------------*/

   Gain_predict( past_qua_en, code, L_subfr, &gcode0, &exp_gcode0 );

  /*-----------------------------------------------------------------*
   *  pre-selection                                                  *
   *-----------------------------------------------------------------*/
  /*-----------------------------------------------------------------*
   *  calculate best gain                                            *
   *                                                                 *
   *  tmp = -1./(4.*coeff[0]*coeff[2]-coeff[4]*coeff[4]) ;           *
   *  best_gain[0] = (2.*coeff[2]*coeff[1]-coeff[3]*coeff[4])*tmp ;  *
   *  best_gain[1] = (2.*coeff[0]*coeff[3]-coeff[1]*coeff[4])*tmp ;  *
   *  gbk_presel(best_gain,&cand1,&cand2,gcode0) ;                   *
   *                                                                 *
   *-----------------------------------------------------------------*/

  /*-----------------------------------------------------------------*
   *  tmp = -1./(4.*coeff[0]*coeff[2]-coeff[4]*coeff[4]) ;           *
   *-----------------------------------------------------------------*/
   L_tmp1 = L_mult( g_coeff[0], g_coeff[2] );
   exp1   = add( add( exp_coeff[0], exp_coeff[2] ), 1-2 );
   L_tmp2 = L_mult( g_coeff[4], g_coeff[4] );
   exp2   = add( add( exp_coeff[4], exp_coeff[4] ), 1 );

   if( sub(exp1, exp2)>0 ){
      L_tmp = L_sub( L_shr( L_tmp1, sub(exp1,exp2) ), L_tmp2 );
      exp = exp2;
   }
   else{
      L_tmp = L_sub( L_tmp1, L_shr( L_tmp2, sub(exp2,exp1) ) );
      exp = exp1;
   }
   sft = norm_l( L_tmp );
   denom = extract_h( L_shl(L_tmp, sft) );
   exp_denom = sub( add( exp, sft ), 16 );

   inv_denom = div_s(16384,denom);
   inv_denom = negate( inv_denom );
   exp_inv_denom = sub( 14+15, exp_denom );

  /*-----------------------------------------------------------------*
   *  best_gain[0] = (2.*coeff[2]*coeff[1]-coeff[3]*coeff[4])*tmp ;  *
   *-----------------------------------------------------------------*/
   L_tmp1 = L_mult( g_coeff[2], g_coeff[1] );
   exp1   = add( exp_coeff[2], exp_coeff[1] );
   L_tmp2 = L_mult( g_coeff[3], g_coeff[4] );
   exp2   = add( add( exp_coeff[3], exp_coeff[4] ), 1 );

   if( sub(exp1, exp2)>0 ){
      L_tmp = L_sub( L_shr( L_tmp1, add(sub(exp1,exp2),1 )), L_shr( L_tmp2,1 ) );
      exp = sub(exp2,1);
   }
   else{
      L_tmp = L_sub( L_shr( L_tmp1,1 ), L_shr( L_tmp2, add(sub(exp2,exp1),1 )) );
      exp = sub(exp1,1);
   }
   sft = norm_l( L_tmp );
   nume = extract_h( L_shl(L_tmp, sft) );
   exp_nume = sub( add( exp, sft ), 16 );

   sft = sub( add( exp_nume, exp_inv_denom ), (9+16-1) );
   L_acc = L_shr( L_mult( nume,inv_denom ), sft );
   best_gain[0] = extract_h( L_acc );             /*-- best_gain[0]:Q9 --*/

   if (tameflag == 1){ 
     if(sub(best_gain[0], GPCLIP2) > 0) best_gain[0] = GPCLIP2;
   }

  /*-----------------------------------------------------------------*
   *  best_gain[1] = (2.*coeff[0]*coeff[3]-coeff[1]*coeff[4])*tmp ;  *
   *-----------------------------------------------------------------*/
   L_tmp1 = L_mult( g_coeff[0], g_coeff[3] );
   exp1   = add( exp_coeff[0], exp_coeff[3] ) ;
   L_tmp2 = L_mult( g_coeff[1], g_coeff[4] );
   exp2   = add( add( exp_coeff[1], exp_coeff[4] ), 1 );

   if( sub(exp1, exp2)>0 ){
      L_tmp = L_sub( L_shr( L_tmp1, add(sub(exp1,exp2),1) ), L_shr( L_tmp2,1 ) );
      exp = sub(exp2,1);
   }
   else{
      L_tmp = L_sub( L_shr( L_tmp1,1 ), L_shr( L_tmp2, add(sub(exp2,exp1),1) ) );
      exp = sub(exp1,1);
   }
   sft = norm_l( L_tmp );
   nume = extract_h( L_shl(L_tmp, sft) );
   exp_nume = sub( add( exp, sft ), 16 );

   sft = sub( add( exp_nume, exp_inv_denom ), (2+16-1) );
   L_acc = L_shr( L_mult( nume,inv_denom ), sft );
   best_gain[1] = extract_h( L_acc );             /*-- best_gain[1]:Q2 --*/

   /*--- Change Q-format of gcode0 ( Q[exp_gcode0] -> Q4 ) ---*/
   if( sub(exp_gcode0,4) >= 0 ){
      gcode0_org = shr( gcode0, sub(exp_gcode0,4) );
   }
   else{
      L_acc = L_deposit_l( gcode0 );
      L_acc = L_shl( L_acc, sub( (4+16), exp_gcode0 ) );
      gcode0_org = extract_h( L_acc );              /*-- gcode0_org:Q4 --*/
   }

  /*----------------------------------------------*
   *   - presearch for gain codebook -            *
   *----------------------------------------------*/

   Gbk_presel(best_gain, &cand1, &cand2, gcode0_org );

/*---------------------------------------------------------------------------*
 *                                                                           *
 * Find the best quantizer.                                                  *
 *                                                                           *
 *  dist_min = MAX_32;                                                       *
 *  for ( i=0 ; i<NCAN1 ; i++ ){                                             *
 *    for ( j=0 ; j<NCAN2 ; j++ ){                                           *
 *      g_pitch = gbk1[cand1+i][0] + gbk2[cand2+j][0];                       *

 *      g_code = gcode0 * (gbk1[cand1+i][1] + gbk2[cand2+j][1]);             *
 *      dist = g_pitch*g_pitch * coeff[0]                                    *
 *           + g_pitch         * coeff[1]                                    *
 *           + g_code*g_code   * coeff[2]                                    *
 *           + g_code          * coeff[3]                                    *
 *           + g_pitch*g_code  * coeff[4] ;                                  *
 *                                                                           *
 *      if (dist < dist_min){                                                *
 *        dist_min = dist;                                                   *
 *        indice1 = cand1 + i ;                                              *
 *        indice2 = cand2 + j ;                                              *
 *      }                                                                    *
 *    }                                                                      *
 *  }                                                                        *
 *                                                                           *
 * g_pitch         = Q13                                                     *
 * g_pitch*g_pitch = Q11:(13+13+1-16)                                        *
 * g_code          = Q[exp_gcode0-3]:(exp_gcode0+(13-1)+1-16)                *
 * g_code*g_code   = Q[2*exp_gcode0-21]:(exp_gcode0-3+exp_gcode0-3+1-16)     *
 * g_pitch*g_code  = Q[exp_gcode0-5]:(13+exp_gcode0-3+1-16)                  *
 *                                                                           *
 * term 0: g_pitch*g_pitch*coeff[0] ;exp_min0 = 13             +exp_coeff[0] *
 * term 1: g_pitch        *coeff[1] ;exp_min1 = 14             +exp_coeff[1] *
 * term 2: g_code*g_code  *coeff[2] ;exp_min2 = 2*exp_gcode0-21+exp_coeff[2] *
 * term 3: g_code         *coeff[3] ;exp_min3 = exp_gcode0  - 3+exp_coeff[3] *
 * term 4: g_pitch*g_code *coeff[4] ;exp_min4 = exp_gcode0  - 4+exp_coeff[4] *
 *                                                                           *
 *---------------------------------------------------------------------------*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成av人片一区二区梦乃| 亚洲gay无套男同| 中文字幕第一区综合| 中国色在线观看另类| 国产精品人妖ts系列视频| 亚洲精品一区二区三区福利| 91精品视频网| 久久久久久久久久久久久久久99| 26uuu亚洲综合色欧美| 久久久精品tv| 亚洲欧洲国产专区| 日韩电影免费在线观看网站| 精品一区二区三区在线观看国产| 国产一区日韩二区欧美三区| 91免费版在线看| 欧美日韩精品三区| 国产性色一区二区| 日本三级韩国三级欧美三级| 91一区二区三区在线观看| 日韩欧美久久一区| 亚洲成人你懂的| 一本一道久久a久久精品综合蜜臀| 9191国产精品| 亚洲丝袜自拍清纯另类| 国产精品一区二区久久精品爱涩| 欧美色倩网站大全免费| 国产精品不卡一区二区三区| 久久99国产精品成人| 欧美精品欧美精品系列| 一区二区在线电影| 成人精品视频一区二区三区| 日韩区在线观看| 热久久免费视频| 91福利国产成人精品照片| 中文字幕欧美区| 大美女一区二区三区| 2020国产精品自拍| 国产乱码精品一区二区三区av | 亚洲电影一区二区三区| 国v精品久久久网| 精品精品国产高清一毛片一天堂| 洋洋成人永久网站入口| 99久久国产综合精品色伊| 国产精品视频免费看| 国产成人精品午夜视频免费| 久久久久久免费| 成人激情综合网站| 日本一区二区三区四区在线视频| 久久国产成人午夜av影院| 欧美日产在线观看| 婷婷夜色潮精品综合在线| 欧美亚洲动漫精品| 午夜精品福利视频网站| 69堂成人精品免费视频| 蜜臀av国产精品久久久久 | 毛片av中文字幕一区二区| 678五月天丁香亚洲综合网| 日韩电影一区二区三区| 国产午夜亚洲精品午夜鲁丝片| 成人美女视频在线看| 亚洲综合一区二区精品导航| 91精品麻豆日日躁夜夜躁| 国产在线观看一区二区| 一区二区在线免费| www精品美女久久久tv| 99v久久综合狠狠综合久久| 天堂资源在线中文精品| 国产欧美精品国产国产专区| 日本高清不卡一区| 国产一区二区视频在线播放| 亚洲裸体xxx| 欧美极品少妇xxxxⅹ高跟鞋| 欧美日韩亚洲另类| 成人福利在线看| 国产真实乱子伦精品视频| 亚洲大片一区二区三区| 中文av一区二区| 日本一区二区三区国色天香| 日本韩国欧美国产| 不卡视频免费播放| 国产成人综合精品三级| 另类综合日韩欧美亚洲| 亚洲sss视频在线视频| 中文字幕一区二区三区av| 精品福利视频一区二区三区| 欧美性猛交xxxxxx富婆| 99久久综合狠狠综合久久| 黄一区二区三区| 久久国产剧场电影| 免费看精品久久片| 午夜精品一区二区三区电影天堂 | 宅男噜噜噜66一区二区66| 色诱视频网站一区| 一本久久综合亚洲鲁鲁五月天 | 日日摸夜夜添夜夜添国产精品 | 国产女主播在线一区二区| 欧美va在线播放| 91精品国产色综合久久| 91麻豆精品国产| 91精品在线免费观看| 91美女片黄在线观看91美女| 国产精品久99| 一区二区三区精品视频在线| 亚洲成人自拍网| 一区二区三区日韩| 中文字幕第一区二区| 中文字幕精品三区| 国产欧美一二三区| 久久久久国产精品麻豆ai换脸 | 午夜精品福利在线| 亚洲国产wwwccc36天堂| 一区二区三区中文在线| 久久成人久久爱| 国产中文一区二区三区| 国产不卡一区视频| 不卡一二三区首页| 欧美一区二区在线免费观看| 欧美亚洲国产一区二区三区va| 精品视频999| 日韩欧美一级片| 中文字幕一区二区三区乱码在线| 亚洲欧美一区二区三区国产精品| 亚洲国产一区视频| 国产成人日日夜夜| 欧美挠脚心视频网站| 精品动漫一区二区三区在线观看| 成人黄色国产精品网站大全在线免费观看 | 亚洲精品老司机| 国产精品美女久久福利网站| 久久久久久久一区| 一区二区三区在线视频免费观看| 成人精品一区二区三区四区| 精品国产一区二区亚洲人成毛片| 一区二区三区免费观看| 午夜不卡在线视频| 不卡的电影网站| 色就色 综合激情| 精品1区2区3区| 欧美色网一区二区| 日韩一区国产二区欧美三区| 欧美在线一二三| av电影一区二区| av一二三不卡影片| 99riav久久精品riav| 555夜色666亚洲国产免| xfplay精品久久| 亚洲精品v日韩精品| 麻豆视频一区二区| 欧美性色aⅴ视频一区日韩精品| 亚洲欧美日韩在线不卡| 成人avav在线| 天天综合天天综合色| 91最新地址在线播放| 免费久久99精品国产| 香蕉久久一区二区不卡无毒影院| 91免费国产视频网站| 美女视频黄免费的久久 | 不卡一区二区三区四区| 在线成人小视频| 国产精品午夜久久| 玖玖九九国产精品| 国产精品久久久久久久久搜平片| 91精品国产一区二区三区香蕉| 成人午夜伦理影院| 国产一区二区三区在线看麻豆| 亚洲精品菠萝久久久久久久| 日本一区二区视频在线| 91精品国产91热久久久做人人| 色悠久久久久综合欧美99| 国产又粗又猛又爽又黄91精品| 日韩成人av影视| 136国产福利精品导航| 日本一区二区视频在线| 久久综合九色综合97婷婷| 色天使色偷偷av一区二区| www.亚洲色图| 国产综合色视频| 裸体歌舞表演一区二区| 亚洲制服欧美中文字幕中文字幕| 一区二区在线免费观看| 亚洲欧洲精品一区二区精品久久久 | 欧美精品一区二区三区蜜桃| 色婷婷av一区二区三区大白胸| 国产丶欧美丶日本不卡视频| 亚洲一区二区中文在线| 精品免费国产二区三区| 成人aaaa免费全部观看| 国产在线视频一区二区| 日韩精品欧美精品| 亚洲 欧美综合在线网络| 欧美日韩小视频| 色欧美片视频在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 激情都市一区二区| 欧美写真视频网站| 粉嫩av一区二区三区| 久久精品国产精品亚洲精品| 午夜影院久久久| 天堂蜜桃91精品| 国产欧美精品一区二区三区四区 |