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

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

?? exc_lbc.c

?? ARM嵌入式應用開發典型實例配書光盤,希望對你有用!
?? C
?? 第 1 頁 / 共 5 頁
字號:
    Exp = norm_l( Acc1 ) ;    for ( i = 0 ; i < 5 ; i ++ ) {        Acc0 = L_shl( Lcr[i], Exp ) ;        Scr[i] = extract_h( Acc0 ) ;    }    /* Select the best pair */    if ( (Bindx != (Word16) 0) && ( Findx == (Word16) 0) )        Pf = Get_Ind( Bindx, Scr[0], Scr[1], Scr[2] ) ;    if ( (Bindx == (Word16) 0) && ( Findx != (Word16) 0) )        Pf = Get_Ind( Findx, Scr[0], Scr[3], Scr[4] ) ;    if ( (Bindx != (Word16) 0) && ( Findx != (Word16) 0) ) {        Exp = mult_r( Scr[1], Scr[1] ) ;        Acc0 = L_mult( Exp, Scr[4] ) ;        Exp = mult_r( Scr[3], Scr[3] ) ;        Acc1 = L_mult( Exp, Scr[2] ) ;        if ( Acc0 > Acc1 )            Pf = Get_Ind( Bindx, Scr[0], Scr[1], Scr[2] ) ;        else            Pf = Get_Ind( Findx, Scr[0], Scr[3], Scr[4] ) ;    }    return Pf ;}/***** Function:        Find_B()**** Description:     Computes best pitch postfilter backward lag by**                  backward cross correlation maximization around the**                  decoded pitch lag**                  of the subframe 0 (for subframes 0 & 1)**                  of the subframe 2 (for subframes 2 & 3)**** Links to text:   Section 3.6**** Arguments:****  Word16 *Buff    decoded excitation**  Word16 Olp      Decoded pitch lag**  Word16 Sfc      Subframe index**** Outputs:     None**** Return value:****  Word16   Pitch postfilter backward lag*/Word16   Find_B( Word16 *Buff, Word16 Olp, Word16 Sfc ){    int   i,j   ;    Word16   Indx = 0 ;    Word32   Acc0,Acc1 ;    if ( Olp > (Word16) (PitchMax-3) )        Olp = (Word16) (PitchMax-3) ;    Acc1 = (Word32) 0 ;    for ( i = (int)Olp-3 ; i <= (int)Olp+3 ; i ++ ) {        Acc0 = (Word32) 0 ;        for ( j = 0 ; j < SubFrLen ; j ++ )            Acc0 = L_mac( Acc0, Buff[PitchMax+(int)Sfc*SubFrLen+j],                                    Buff[PitchMax+(int)Sfc*SubFrLen-i+j] ) ;        if ( Acc0 > Acc1 ) {            Acc1 = Acc0 ;            Indx = -(Word16) i ;        }    }    return Indx ;}/***** Function:        Find_F()**** Description:     Computes best pitch postfilter forward lag by**                  forward cross correlation maximization around the**                  decoded pitch lag**                  of the subframe 0 (for subframes 0 & 1)**                  of the subframe 2 (for subframes 2 & 3)**** Links to text:   Section 3.6**** Arguments:****  Word16 *Buff    decoded excitation**  Word16 Olp      Decoded pitch lag**  Word16 Sfc      Subframe index**** Outputs:     None**** Return value:****  Word16    Pitch postfilter forward lag*/Word16   Find_F( Word16 *Buff, Word16 Olp, Word16 Sfc ){    int   i,j   ;    Word16   Indx = 0 ;    Word32   Acc0,Acc1 ;    if ( Olp > (Word16) (PitchMax-3) )        Olp = (Word16) (PitchMax-3) ;    Acc1 = (Word32) 0 ;    for ( i = Olp-3 ; i <= Olp+3 ; i ++ ) {        Acc0 = (Word32) 0 ;        if ( ((int)Sfc*SubFrLen+SubFrLen+i) <= Frame ) {            for ( j = 0 ; j < SubFrLen ; j ++ )                Acc0 = L_mac( Acc0, Buff[PitchMax+(int)Sfc*SubFrLen+j],                            Buff[PitchMax+(int)Sfc*SubFrLen+i+j] ) ;        }        if ( Acc0 > Acc1 ) {            Acc1 = Acc0 ;            Indx = (Word16) i ;        }    }    return Indx ;}/***** Function:        Get_Ind()**** Description:     Computes gains of the pitch postfilter.**                  The gains are calculated using the cross correlation**                  (forward or backward, the one with the greatest contribution)**                  and the energy of the signal. Also, a test is performed on**                  the prediction gain to see whether the pitch postfilter**                  should be used or not.******** Links to text:   Section 3.6**** Arguments:****  Word16 Ind      Pitch postfilter lag**  Word16 Ten      energy of the current subframe excitation vector**  Word16 Ccr      Crosscorrelation of the excitation**  Word16 Enr      Energy of the (backward or forward) "delayed" excitation**** Outputs:     None**** Return value:****  PFDEF**         Word16   Indx    Pitch postfilter lag**         Word16   Gain    Pitch postfilter gain**         Word16   ScGn    Pitch postfilter scaling gain***/PFDEF Get_Ind( Word16 Ind, Word16 Ten, Word16 Ccr, Word16 Enr ){    Word32   Acc0,Acc1 ;    Word16   Exp   ;    PFDEF Pf ;    Pf.Indx = Ind ;    /* Check valid gain */    Acc0 = L_mult( Ten, Enr ) ;    Acc0 = L_shr( Acc0, (Word16) 2 ) ;    Acc1 = L_mult( Ccr, Ccr ) ;    if ( Acc1 > Acc0 ) {        if ( Ccr >= Enr )            Pf.Gain = LpfConstTable[(int)WrkRate] ;        else {            Pf.Gain = div_s( Ccr, Enr ) ;            Pf.Gain = mult( Pf.Gain, LpfConstTable[(int)WrkRate] ) ;        }        /* Compute scaling gain */        Acc0 = L_deposit_h( Ten ) ;        Acc0 = L_shr( Acc0, (Word16) 1 ) ;        Acc0 = L_mac( Acc0, Ccr, Pf.Gain ) ;        Exp  = mult( Pf.Gain, Pf.Gain ) ;        Acc1 = L_mult( Enr, Exp ) ;        Acc1 = L_shr( Acc1, (Word16) 1 ) ;        Acc0 = L_add( Acc0, Acc1 ) ;        Exp = round( Acc0 ) ;        Acc1 = L_deposit_h( Ten ) ;        Acc0 = L_deposit_h( Exp ) ;        Acc1 = L_shr( Acc1, (Word16) 1 ) ;        if ( Acc1 >= Acc0 )            Exp = (Word16) 0x7fff ;        else            Exp = div_l( Acc1, Exp ) ;        Acc0 = L_deposit_h( Exp ) ;        Pf.ScGn = Sqrt_lbc( Acc0 ) ;    }    else {        Pf.Gain = (Word16) 0 ;        Pf.ScGn = (Word16) 0x7fff ;    }    Pf.Gain = mult( Pf.Gain, Pf.ScGn ) ;    return Pf ;}/***** Function:        Filt_Lpf()**** Description:     Applies the pitch postfilter for each subframe.**** Links to text:   Section 3.6**** Arguments:****  Word16 *Tv      Pitch postfiltered excitation**  Word16 *Buff    decoded excitation**  PFDEF Pf        Pitch postfilter parameters**  Word16 Sfc      Subframe index**** Outputs:****  Word16 *Tv      Pitch postfiltered excitation**** Return value: None***/void  Filt_Lpf( Word16 *Tv, Word16 *Buff, PFDEF Pf, Word16 Sfc ){    int   i  ;    Word32   Acc0 ;    for ( i = 0 ; i < SubFrLen ; i ++ ) {        Acc0 = L_mult( Buff[PitchMax+(int)Sfc*SubFrLen+i], Pf.ScGn ) ;        //2*e(n)*scaleGain        Acc0 = L_mac( Acc0, Buff[PitchMax+(int)Sfc*SubFrLen+(int)Pf.Indx+i],Pf.Gain ) ;//2*e(n)*scaleGain+2*e(n-delay)*gain        Tv[(int)Sfc*SubFrLen+i] = round( Acc0 ) ;                              // extract high 16 bits to output    }    return;}/***** Function:        ACELP_LBC_code()**** Description:     Find Algebraic codebook for low bit rate LBC encoder**** Links to text:   Section 2.16**** Arguments:****   Word16 X[]              Target vector.     (in Q0)**   Word16 h[]              Impulse response.  (in Q12)**   Word16 T0               Pitch period.**   Word16 code[]           Innovative vector.        (in Q12)**   Word16 gain             Innovative vector gain.   (in Q0)**   Word16 sign             Signs of the 4 pulses.**   Word16 shift            Shift of the innovative vector**   Word16 gain_T0          Gain for pitch synchronous fiter**** Inputs :****   Word16 X[]              Target vector.     (in Q0)**   Word16 h[]              Impulse response.  (in Q12)**   Word16 T0               Pitch period.**   Word16 gain_T0          Gain for pitch synchronous fiter**** Outputs:****   Word16 code[]           Innovative vector.        (in Q12)**   Word16 gain             Innovative vector gain.   (in Q0)**   Word16 sign             Signs of the 4 pulses.**   Word16 shift            Shift of the innovative vector.**** Return value:****   Word16 index            Innovative codebook index***/Word16  ACELP_LBC_code(Word16 X[], Word16 h[], Word16 T0, Word16 code[],        Word16 *ind_gain, Word16 *shift, Word16 *sign, Word16 gain_T0){    Word16 i, index, gain_q;    Word16 Dn[SubFrLen2], tmp_code[SubFrLen2];    Word16 rr[DIM_RR]; /*  * Include fixed-gain pitch contribution into impulse resp. h[]  * Find correlations of h[] needed for the codebook search. */    for (i = 0; i < SubFrLen; i++)    /* Q13 -->  Q12*/        h[i] = shr(h[i], 1);    if (T0 < SubFrLen-2) {        for (i = T0; i < SubFrLen; i++)    /* h[i] += gain_T0*h[i-T0] */        h[i] = add(h[i], mult(h[i-T0], gain_T0));    }    Cor_h(h, rr); /*  * Compute correlation of target vector with impulse response.  */    Cor_h_X(h, X, Dn); /*  * Find innovative codebook.  * rr input matrix autocorrelation  *    output filtered codeword  */    index = D4i64_LBC(Dn, rr, h, tmp_code, rr, shift, sign); /*  * Compute innovation vector gain.  * Include fixed-gain pitch contribution into code[].  */    *ind_gain = G_code(X, rr, &gain_q);    for (i = 0; i < SubFrLen; i++)   {        code[i] = i_mult(tmp_code[i], gain_q);    }    if(T0 < SubFrLen-2)        for (i = T0; i < SubFrLen; i++)    /* code[i] += gain_T0*code[i-T0] */            code[i] = add(code[i], mult(code[i-T0], gain_T0));    return index;}/***** Function:        Cor_h()**** Description:     Compute correlations of h[] needed for the codebook search.**** Links to text:   Section 2.16**** Arguments:****  Word16 h[]              Impulse response.**  Word16 rr[]             Correlations.****  Outputs:****  Word16 rr[]             Correlations.****  Return value :          None*/void Cor_h(Word16 *H, Word16 *rr){    Word16 *rri0i0, *rri1i1, *rri2i2, *rri3i3;    Word16 *rri0i1, *rri0i2, *rri0i3;    Word16 *rri1i2, *rri1i3, *rri2i3;    Word16 *p0, *p1, *p2, *p3;    Word16 *ptr_hd, *ptr_hf, *ptr_h1, *ptr_h2;    Word32 cor;    Word16 i, k, ldec, l_fin_sup, l_fin_inf;    Word16 h[SubFrLen2];    /* Scaling for maximum precision */    cor = 0;    for(i=0; i<SubFrLen; i++)        cor = L_mac(cor, H[i], H[i]);    if(extract_h(cor) > 32000 ) {        for(i=0; i<SubFrLen; i++) h[i+4] = shr(H[i], 1);    }    else {        k = norm_l(cor);        k = shr(k, 1);        for(i=0; i<SubFrLen; i++) h[i+4] = shl(H[i], k);    }    for(i=0; i<4; i++) h[i] = 0;    /* Init pointers */    rri0i0 = rr;    rri1i1 = rri0i0 + NB_POS;    rri2i2 = rri1i1 + NB_POS;    rri3i3 = rri2i2 + NB_POS;    rri0i1 = rri3i3 + NB_POS;    rri0i2 = rri0i1 + MSIZE;    rri0i3 = rri0i2 + MSIZE;    rri1i2 = rri0i3 + MSIZE;    rri1i3 = rri1i2 + MSIZE;    rri2i3 = rri1i3 + MSIZE; /*  * Compute rri0i0[], rri1i1[], rri2i2[] and rri3i3[]  */    p0 = rri0i0 + NB_POS-1;   /* Init pointers to last position of rrixix[] */    p1 = rri1i1 + NB_POS-1;    p2 = rri2i2 + NB_POS-1;    p3 = rri3i3 + NB_POS-1;    ptr_h1 = h;    cor    = 0;    for(i=0;  i<NB_POS; i++) {        cor = L_mac(cor, *ptr_h1, *ptr_h1); ptr_h1++;        cor = L_mac(cor, *ptr_h1, *ptr_h1); ptr_h1++;        *p3-- = extract_h(cor);        cor = L_mac(cor, *ptr_h1, *ptr_h1); ptr_h1++;        cor = L_mac(cor, *ptr_h1, *ptr_h1); ptr_h1++;        *p2-- = extract_h(cor);        cor = L_mac(cor, *ptr_h1, *ptr_h1); ptr_h1++;        cor = L_mac(cor, *ptr_h1, *ptr_h1); ptr_h1++;        *p1-- = extract_h(cor);        cor = L_mac(cor, *ptr_h1, *ptr_h1); ptr_h1++;        cor = L_mac(cor, *ptr_h1, *ptr_h1); ptr_h1++;        *p0-- = extract_h(cor);    } /*  * Compute elements of: rri0i1[], rri0i3[], rri1i2[] and rri2i3[]  */    l_fin_sup = MSIZE-1;    l_fin_inf = l_fin_sup-(Word16)1;    ldec = NB_POS+1;    ptr_hd = h;    ptr_hf = ptr_hd + 2;    for(k=0; k<NB_POS; k++) {        p3 = rri2i3 + l_fin_sup;        p2 = rri1i2 + l_fin_sup;        p1 = rri0i1 + l_fin_sup;        p0 = rri0i3 + l_fin_inf;        cor = 0;        ptr_h1 = ptr_hd;        ptr_h2 =  ptr_hf;        for(i=k+(Word16)1; i<NB_POS; i++ ) {            cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;            cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;            *p3 = extract_h(cor);            cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;            cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;            *p2 = extract_h(cor);            cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;            cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;            *p1 = extract_h(cor);            cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;            cor = L_mac(cor, *ptr_h1, *ptr_h2); ptr_h1++; ptr_h2++;            *p0 = extract_h(cor);            p3 -= ldec;            p2 -= ldec;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
3d动漫精品啪啪| 欧美欧美欧美欧美| 日日嗨av一区二区三区四区| 国产午夜精品久久| 欧美日韩一区二区在线观看视频| 国产美女精品一区二区三区| 亚洲一区国产视频| 国产精品国产自产拍在线| 制服丝袜日韩国产| 97国产一区二区| 国产盗摄视频一区二区三区| 麻豆精品一二三| 亚洲123区在线观看| 18成人在线视频| 久久免费视频色| 日韩一区二区三区免费观看| 91福利在线免费观看| 国产精品白丝av| 美洲天堂一区二卡三卡四卡视频| 亚洲乱码日产精品bd| 国产午夜亚洲精品不卡| 91精品麻豆日日躁夜夜躁| 色国产精品一区在线观看| 成人晚上爱看视频| 国产精品自拍网站| 激情综合色综合久久综合| 日韩电影免费在线看| 亚洲一二三区在线观看| 一区二区三区不卡视频在线观看| 日韩网站在线看片你懂的| 欧美日韩一区高清| 日本高清不卡aⅴ免费网站| 99久久精品免费观看| 成人av在线播放网站| 欧美精品三级在线观看| av成人老司机| 亚洲日本中文字幕区| 欧美日韩久久久久久| 久久爱另类一区二区小说| 亚洲欧洲精品天堂一级| 一色桃子久久精品亚洲| 日韩三级高清在线| 色综合久久88色综合天天免费| 国产成人在线视频播放| 国产成人精品网址| 白白色 亚洲乱淫| 一本色道久久综合精品竹菊| 色爱区综合激月婷婷| 色综合久久九月婷婷色综合| 日本韩国欧美国产| 欧美日韩一区二区三区免费看| 欧美α欧美αv大片| 欧美日韩一区成人| 欧美电影在线免费观看| 91麻豆免费在线观看| 成人毛片老司机大片| 久久国产欧美日韩精品| 午夜欧美一区二区三区在线播放| 1024成人网| 国产精品伦理一区二区| 国产精品久久三区| 精品国产精品一区二区夜夜嗨| 亚洲一区二区三区影院| 午夜久久久久久电影| 青青草国产精品亚洲专区无| 免费av网站大全久久| 日韩中文字幕1| 午夜视频一区二区三区| 五月天中文字幕一区二区| 美女精品一区二区| 国产精品自拍一区| 欧美自拍丝袜亚洲| 777久久久精品| 欧美国产亚洲另类动漫| 成人欧美一区二区三区黑人麻豆| 午夜亚洲福利老司机| 毛片一区二区三区| 99久久精品99国产精品| 欧洲国产伦久久久久久久| 日韩精品一区二区三区四区视频 | 美女任你摸久久| 久久99热这里只有精品| 97精品国产97久久久久久久久久久久| 在线影院国内精品| 久久久久国产精品厨房| 亚洲欧美一区二区三区极速播放| 男人的j进女人的j一区| 丁香婷婷综合色啪| 欧美性受极品xxxx喷水| www一区二区| 午夜精品免费在线| 国产精品99久久久久久有的能看| 欧美亚洲动漫另类| 欧美成人午夜电影| 亚洲一区二区欧美激情| 久久爱另类一区二区小说| 91传媒视频在线播放| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 麻豆精品蜜桃视频网站| 久久精品久久综合| 欧美日韩国产小视频在线观看| 欧美色综合影院| 欧美国产精品中文字幕| 亚洲福利视频导航| 国产精品免费aⅴ片在线观看| 亚洲伊人色欲综合网| 国产一区999| 欧美猛男超大videosgay| 国产网站一区二区| 日韩av高清在线观看| 97超碰欧美中文字幕| 国产亚洲欧美在线| 午夜欧美2019年伦理| 色88888久久久久久影院野外| 精品粉嫩aⅴ一区二区三区四区| 午夜在线成人av| www.欧美.com| 国产日韩欧美制服另类| 秋霞电影网一区二区| 欧美日韩国产高清一区二区三区 | 国产在线看一区| 7777精品久久久大香线蕉| 国产精品国产三级国产aⅴ入口 | 欧美无砖砖区免费| 欧美国产视频在线| 国产成人精品免费一区二区| 日本道色综合久久| 欧美国产成人精品| 国产揄拍国内精品对白| 91在线观看高清| 国产日韩精品一区二区三区| 免费在线观看不卡| 欧美精品久久一区| 日日摸夜夜添夜夜添亚洲女人| 91免费看视频| 91视频在线观看| 一区二区三区av电影| 777a∨成人精品桃花网| 日韩av中文在线观看| 亚洲精品一线二线三线无人区| 国产一区二区在线视频| 国产精品视频在线看| 国产1区2区3区精品美女| 亚洲国产成人自拍| 久久国产福利国产秒拍| 欧美日韩国产一区| 久久99精品国产.久久久久久| 国产精品狼人久久影院观看方式| 亚洲欧洲日韩在线| 欧美亚洲动漫精品| 亚洲一区二区在线免费观看视频| 99精品热视频| 久久久久亚洲综合| 国产麻豆视频一区二区| 国产亚洲短视频| 91视视频在线观看入口直接观看www | 日韩欧美国产一区二区三区| 亚洲精品免费在线播放| 欧美日韩卡一卡二| 天涯成人国产亚洲精品一区av| 日韩一区二区三区视频在线观看| 日日夜夜精品视频天天综合网| 91精品欧美久久久久久动漫| 黄色小说综合网站| 国产欧美日本一区二区三区| 91官网在线免费观看| 亚洲欧美福利一区二区| 99久久精品国产网站| 日韩电影在线免费看| 亚洲国产精品成人久久综合一区 | 日韩一本二本av| 激情偷乱视频一区二区三区| 国产精品久久久久久久第一福利 | 色综合天天综合狠狠| 日韩在线一二三区| 日韩精品一区二区三区中文不卡| 成人永久免费视频| 亚洲一区自拍偷拍| 国产日韩一级二级三级| 99久久精品情趣| 精品一区二区免费看| 亚洲欧美日韩在线不卡| 91精品综合久久久久久| 成人性视频免费网站| 一区二区三区四区亚洲| 欧美一卡2卡3卡4卡| 国产伦精一区二区三区| 亚洲免费在线视频| 91精品在线麻豆| 国产乱码精品1区2区3区| 亚洲一区二区三区四区的| 精品裸体舞一区二区三区| 日本电影亚洲天堂一区| 蜜臀av国产精品久久久久 | 久久综合给合久久狠狠狠97色69| 91免费精品国自产拍在线不卡| 免费看欧美女人艹b| 亚洲线精品一区二区三区八戒| 精品av综合导航| 91麻豆精品久久久久蜜臀|