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

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

?? tame.c

?? g.723.1源代碼
?? C
字號:

/*
**
** File:    tame.c
**
** Description: Functions used to avoid possible explosion of the decoder
**              excitation in case of series of long term unstable filters
**              and when the encoder and the decoder are de-synchronized
**
** Functions:
**
**  Computing excitation error estimation :
**      Update_Err()
**  Test excitation error :
**      Test_Err()
*/

/*
    ITU-T G.723 Speech Coder   ANSI-C Source Code     Version 5.0
    copyright (c) 1995, AudioCodes, DSP Group, France Telecom,
    Universite de Sherbrooke.  All rights reserved.
*/
#include <stdlib.h>
#include <stdio.h>

#include "typedef.h"
#include "basop.h"
#include "cst_lbc.h"
#include "lbccodec.h"
#include "coder.h"
#include "exc_lbc.h"
#include "tame.h"
#include "tab_lbc.h"


/*
**
** Function:        Update_Err()
**
** Description:     Estimation of the excitation error associated
**                  to the excitation signal when it is disturbed at
**                  the decoder, the disturbing signal being filtered
**                  by the long term synthesis filters
**                  one value for (SubFrLen/2) samples
**                  Updates the table CodStat.Err
**
** Links to text:   Section
**
** Arguments:
**
**  Word16 Olp      Center value for pitch delay
**  Word16 AcLg     Offset value for pitch delay
**  Word16 AcGn     Index of Gain LT filter
**
** Outputs: None
**
** Return value:    None
**
*/

void Update_Err(
    Word16 Olp, Word16 AcLg, Word16 AcGn
)
{
    Word16 *ptr_tab;
    Word16 i, iz, temp1, temp2;
    Word16 Lag;
    Word32 Worst1, Worst0, L_temp;
    Word16 beta;

    Lag = Olp - (Word16)Pstep + AcLg;

    /* Select Quantization tables */
    i = 0 ;
    ptr_tab = tabgain85;
    if ( WrkRate == Rate63 ) {
        if ( Olp >= (Word16) (SubFrLen-2) ) ptr_tab = tabgain170;
    }
    else {
        ptr_tab = tabgain170;
    }
    beta = ptr_tab[(int)AcGn]; /* beta = gain * 8192 */


    if(Lag <= (SubFrLen/2)) {
        Worst0 = L_mls(CodStat.Err[0], beta);
        Worst0 = L_shl(Worst0, 2);
        Worst0 = L_add(Err0, Worst0);
        Worst1 = Worst0;
    }

    else {
        iz = mult(Lag, 1092);   /* Lag / 30 */
        temp1 = add(iz, 1);
        temp2 = sub(shl(temp1, 5), shl(temp1, 1));      /* 30 (iz+1) */
        if(temp2 != Lag) {

            if(iz == 1) {
                Worst0 = L_mls(CodStat.Err[0], beta);
                Worst0 = L_shl(Worst0, 2);
                Worst0 = L_add(Err0, Worst0);
                Worst1 = L_mls(CodStat.Err[1], beta);
                Worst1 = L_shl(Worst1, 2);
                Worst1 = L_add(Err0, Worst1);
                if(Worst0 > Worst1) Worst1 = Worst0;
                else Worst0 = Worst1;
            }

            else {
                Worst0 = L_mls(CodStat.Err[iz-2], beta);
                Worst0 = L_shl(Worst0, 2);
                Worst0 = L_add(Err0, Worst0);
                L_temp = L_mls(CodStat.Err[iz-1], beta);
                L_temp = L_shl(L_temp, 2);
                L_temp = L_add(Err0, L_temp);
                if(L_temp > Worst0) Worst0 = L_temp;
                Worst1 = L_mls(CodStat.Err[iz], beta);
                Worst1 = L_shl(Worst1, 2);
                Worst1 = L_add(Err0, Worst1);
                if(L_temp > Worst1) Worst1 = L_temp;
            }
        }
        else {  /* Lag % SubFrLen = 0 */
            Worst0 = L_mls(CodStat.Err[iz-1], beta);
            Worst0 = L_shl(Worst0, 2);
            Worst0 = L_add(Err0, Worst0);
            Worst1 = L_mls(CodStat.Err[iz], beta);
            Worst1 = L_shl(Worst1, 2);
            Worst1 = L_add(Err0, Worst1);
        }
    }

    for(i=4; i>=2; i--) {
        CodStat.Err[i] = CodStat.Err[i-2];
    }
    CodStat.Err[0] = Worst0;
    CodStat.Err[1] = Worst1;

    return;
}

/*
**
** Function:        Test_Err()
**
** Description:     Check the error excitation maximum for
**                  the subframe and computes an index iTest used to
**                  calculate the maximum nb of filters (in Find_Acbk) :
**                  Bound = Min(Nmin + iTest x pas, Nmax) , with
**                  AcbkGainTable085 : pas = 2, Nmin = 51, Nmax = 85
**                  AcbkGainTable170 : pas = 4, Nmin = 93, Nmax = 170
**                  iTest depends on the relative difference between
**                  errmax and a fixed threshold
**
** Links to text:   Section
**
** Arguments:
**
**  Word16 Lag1      1st long term Lag of the tested zone
**  Word16 Lag2      2nd long term Lag of the tested zone
**
** Outputs: None
**
** Return value:
**  Word16          index iTest used to compute Acbk number of filters
*/

Word16 Test_Err(
    Word16 Lag1, Word16 Lag2
)
{

    int i, i1, i2;
    Word16 zone1, zone2;
    Word32 Acc, Err_max;
    Word16 iTest;

    i2 = Lag2 + ClPitchOrd/2;
    zone2 = mult( (Word16) i2, (Word16) 1092);

    i1 = - SubFrLen + 1 + Lag1 - ClPitchOrd/2;
    if(i1 <= 0) i1 = 1;
    zone1 = mult( (Word16) i1, (Word16) 1092);

    Err_max = -1L;
    for(i=zone2; i>=zone1; i--) {
        Acc = L_sub(CodStat.Err[i], Err_max);
        if(Acc > 0L) {
                Err_max = CodStat.Err[i];
        }
    }
    Acc = L_sub(Err_max, ThreshErr);
    if((Acc > 0L) || (CodStat.SinDet < 0 ) ) {
        iTest = 0;
    }
    else {
        Acc = L_negate(Acc);
        Acc = L_shr(Acc, DEC);
        iTest = extract_l(Acc);
    }

    return(iTest);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美国十次了思思久久精品导航| eeuss鲁一区二区三区| 国产一区二区三区在线观看免费视频 | 国产91精品一区二区| 97久久久精品综合88久久| 日韩一区二区三区免费看| 日韩理论片在线| 国产高清不卡一区二区| 欧美精品自拍偷拍| 亚洲综合在线第一页| 国产精品中文字幕日韩精品 | 国产精品欧美综合在线| 久久国产精品99久久人人澡| 欧美在线免费观看视频| 国产精品美女一区二区三区| 精品中文av资源站在线观看| 欧美日韩国产系列| 亚洲乱码国产乱码精品精98午夜| 成人一级片在线观看| 欧美精品一区二区三区久久久| 丝瓜av网站精品一区二区| 色婷婷综合久色| 亚洲卡通欧美制服中文| 成av人片一区二区| 国产精品国产自产拍在线| 国产老妇另类xxxxx| 久久综合中文字幕| 国产一区二区三区在线观看免费视频| 日韩一区二区在线看| 日韩成人精品视频| 欧美va天堂va视频va在线| 老色鬼精品视频在线观看播放| 51精品秘密在线观看| 免费av成人在线| 精品伦理精品一区| 国产传媒欧美日韩成人| 中文字幕制服丝袜成人av | 国内精品久久久久影院色| 欧美不卡视频一区| 激情欧美一区二区三区在线观看| 精品久久国产老人久久综合| 国产综合色在线视频区| 亚洲国产精品精华液2区45| 99久久免费视频.com| 亚洲乱码国产乱码精品精小说| 欧美日韩在线直播| 日本成人中文字幕在线视频| 精品久久久久久久久久久久久久久久久| 麻豆国产精品一区二区三区 | 福利一区二区在线| 国产精品传媒入口麻豆| 在线视频国内一区二区| 婷婷夜色潮精品综合在线| 日韩女优av电影在线观看| 国产91精品一区二区麻豆亚洲| 亚洲品质自拍视频| 日韩精品专区在线| 91丨九色丨国产丨porny| 亚洲成人高清在线| 国产午夜亚洲精品不卡| 91在线免费看| 日本成人在线看| 国产精品色噜噜| 欧美精品乱人伦久久久久久| 国产一区二区福利视频| 亚洲免费观看高清在线观看| 欧美裸体一区二区三区| 国产99一区视频免费| 午夜精品久久久久久久99水蜜桃| 日韩欧美你懂的| 91久久线看在观草草青青| 麻豆精品一区二区综合av| 国产精品区一区二区三| 日韩西西人体444www| a亚洲天堂av| 免费人成黄页网站在线一区二区| 国产精品福利电影一区二区三区四区| 欧美精品一二三区| 成人午夜私人影院| 奇米一区二区三区av| 亚洲欧洲日韩女同| 精品99一区二区| 51精品国自产在线| 91成人免费网站| 成人激情校园春色| 国内精品国产三级国产a久久| 一区二区三区日韩欧美| 国产欧美精品一区| 欧美大片一区二区| 欧美精品在欧美一区二区少妇| 99久久99久久精品免费观看| 老色鬼精品视频在线观看播放| 亚洲一二三四久久| 中文字幕第一区第二区| 精品国产髙清在线看国产毛片| 欧美日韩另类一区| 欧美性猛片aaaaaaa做受| 成人动漫av在线| 成人高清视频在线| 国产91精品在线观看| 国产乱子伦一区二区三区国色天香| 亚洲成人av一区二区三区| 亚洲激情网站免费观看| 国产精品三级久久久久三级| 久久综合成人精品亚洲另类欧美| 欧美一二三四区在线| 欧美放荡的少妇| 欧美日韩不卡一区二区| 欧洲国内综合视频| 欧美性大战xxxxx久久久| 91国产成人在线| 在线一区二区三区四区五区| 91国内精品野花午夜精品| 91黄色小视频| 欧洲亚洲国产日韩| 欧美日本在线观看| 日韩一级免费观看| 精品对白一区国产伦| 欧美精品一区二区不卡| 久久精品视频网| 久久精品人人爽人人爽| 国产欧美日韩精品在线| 亚洲欧洲一区二区在线播放| 中文字幕一区二区在线播放| 亚洲三级在线免费观看| 亚洲男人天堂av| 午夜久久久影院| 麻豆91精品91久久久的内涵| 韩国三级电影一区二区| 国产成人啪免费观看软件| 99久久综合狠狠综合久久| 日本电影欧美片| 日韩一卡二卡三卡四卡| 久久婷婷国产综合国色天香| 欧美激情一区二区三区| 亚洲欧洲另类国产综合| 午夜一区二区三区视频| 精品一区二区三区免费播放 | 国产乱码精品一区二区三区五月婷| 国内一区二区视频| www.欧美.com| 欧美精品九九99久久| 精品国产乱码久久| 亚洲欧美福利一区二区| 日本美女一区二区三区视频| 国产一区二区调教| 欧美亚洲国产一区二区三区va| 欧美成人女星排行榜| 亚洲天天做日日做天天谢日日欢| 婷婷综合另类小说色区| 国产91精品入口| 在线91免费看| 亚洲视频中文字幕| 久久国产精品99精品国产 | 亚洲丶国产丶欧美一区二区三区| 老司机精品视频导航| 91网站最新网址| 欧美tickle裸体挠脚心vk| 亚洲精品亚洲人成人网在线播放| 蜜芽一区二区三区| 懂色av噜噜一区二区三区av| 欧美区在线观看| 亚洲少妇30p| 激情五月播播久久久精品| 在线免费观看日本欧美| 国产目拍亚洲精品99久久精品| 亚洲h精品动漫在线观看| 成年人网站91| 26uuu亚洲婷婷狠狠天堂| 午夜精品福利视频网站| 91香蕉视频mp4| 国产情人综合久久777777| 免费观看成人av| 欧美精品乱码久久久久久按摩 | 久久精品一区二区三区四区| 亚洲第一主播视频| 一本大道久久a久久综合婷婷| 久久亚洲一区二区三区明星换脸| 日韩制服丝袜先锋影音| 色悠悠久久综合| 亚洲丝袜精品丝袜在线| 国产98色在线|日韩| 久久久久久久国产精品影院| 蜜臀精品久久久久久蜜臀| 欧美猛男超大videosgay| 亚洲精品你懂的| 成人激情小说网站| 欧美高清在线视频| 国产精品18久久久久久久久久久久| 日韩欧美另类在线| 久久99精品久久久久久动态图 | 欧美另类久久久品| 亚洲香肠在线观看| 欧美亚洲综合在线| 亚洲曰韩产成在线| 欧美视频中文字幕| 亚洲一区二区三区免费视频| 欧美在线|欧美| 亚洲一区二区三区在线播放| 欧美三日本三级三级在线播放|