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

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

?? coder.c

?? 本源代碼包含了各種聲音
?? C
字號:
/*
**
** File:        "coder.c"
**
** Description:     Top-level source code for G.723 dual-rate coder
**
** Functions:       Init_Coder()
**                  Coder()
**
**
*/
/*
    ITU-T G.723 Speech Coder   ANSI-C Source Code     Version 5.00
    copyright (c) 1995, AudioCodes, DSP Group, France Telecom,
    Universite de Sherbrooke.  All rights reserved.
*/


#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#include "typedef.h"
#include "basop.h"
#include "cst_lbc.h"
#include "tab_lbc.h"
#include "coder.h"
#include "lpc.h"
#include "lsp.h"
#include "exc_lbc.h"
#include "util_lbc.h"
#include "vad.h"
#include "cod_cng.h"
#include "tame.h"
/*
   This file includes the coder main functions
*/

CODSTATDEF  CodStat  ;
/*
**
** Function:        Init_Coder()
**
** Description:     Initializes non-zero state variables
**          for the coder.
**
** Links to text:   Section 2.21
** 
** Arguments:       None
**
** Outputs:     None
** 
** Return value:    None
**
*/
void  Init_Coder( void)
{
    int   i ;

    /* Initialize encoder data structure with zeros */
    memset(&CodStat, 0, sizeof(CODSTATDEF));

    /* Initialize the previously decoded LSP vector to the DC vector */
    for ( i = 0 ; i < LpcOrder ; i ++ )
        CodStat.PrevLsp[i] = LspDcTable[i] ;

    /* Initialize the taming procedure */
    for(i=0; i<SizErr; i++) CodStat.Err[i] = Err0;

    return;
}

/*
**
** Function:        Coder()
**
** Description:     Implements G.723 dual-rate coder for    a frame
**          of speech
**
** Links to text:   Section 2
**
** Arguments:
**
**  Word16 DataBuff[]   frame (480 bytes)
**

** Outputs:
**
**  Word16 Vout[]       Encoded frame (20/24 bytes)
**
** Return value:
**
**  Flag            Always True
**
*/
Flag  Coder( Word16 *DataBuff, char *Vout )
{
    int     i,j   ;

    /*
      Local variables
    */
    Word16   UnqLpc[SubFrames*LpcOrder] ;
    Word16   QntLpc[SubFrames*LpcOrder] ;
    Word16   PerLpc[2*SubFrames*LpcOrder] ;

    Word16   LspVect[LpcOrder] ;
    LINEDEF  Line  ;
    PWDEF    Pw[SubFrames]  ;

    Word16   ImpResp[SubFrLen] ;

    Word16  *Dpnt  ;

    Word16  Ftyp = 1 ;

    /*
      Coder Start
    */
    Line.Crc = (Word16) 0 ;

    Rem_Dc( DataBuff ) ;

    /* Compute the Unquantized Lpc set for whole frame */
    Comp_Lpc( UnqLpc, CodStat.PrevDat, DataBuff ) ;

    /* Convert to Lsp */
    AtoLsp( LspVect, &UnqLpc[LpcOrder*(SubFrames-1)], CodStat.PrevLsp ) ;

    /* Compute the Vad */
    Ftyp = (Word16) Comp_Vad( DataBuff ) ;

    /* VQ Lsp vector */
    Line.LspId = Lsp_Qnt( LspVect, CodStat.PrevLsp ) ;

    Mem_Shift( CodStat.PrevDat, DataBuff ) ;

    /* Compute Perceptual filter Lpc coefficients */
    Wght_Lpc( PerLpc, UnqLpc ) ;

    /* Apply the perceptual weighting filter */
    Error_Wght( DataBuff, PerLpc ) ;

    /*
    // Compute Open loop pitch estimates
    */
    Dpnt = (Word16 *) malloc( sizeof(Word16)*(PitchMax+Frame) ) ;

    /* Construct the buffer */
    for ( i = 0 ; i < PitchMax ; i ++ )
        Dpnt[i] = CodStat.PrevWgt[i] ;
    for ( i = 0 ; i < Frame ; i ++ )
        Dpnt[PitchMax+i] = DataBuff[i] ;

    Vec_Norm( Dpnt, (Word16) (PitchMax+Frame) ) ;

    j = PitchMax ;
    for ( i = 0 ; i < SubFrames/2 ; i ++ ) {
        Line.Olp[i] = Estim_Pitch( Dpnt, (Word16) j ) ;
        VadStat.Polp[i+2] = Line.Olp[i] ;
        j += 2*SubFrLen ;
    }

    if(Ftyp != 1) {

        /*
        // Case of inactive signal
        */
        free ( (char *) Dpnt ) ;

        /* Save PrevWgt */
        for ( i = 0 ; i < PitchMax ; i ++ )
            CodStat.PrevWgt[i] = DataBuff[i+Frame-PitchMax] ;



        /* CodCng => Ftyp = 0 (untransmitted) or 2 (SID) */
        Cod_Cng(DataBuff, &Ftyp, &Line, QntLpc);

        /* Update the ringing delays */
        Dpnt = DataBuff;
        for( i = 0 ; i < SubFrames; i++ ) {

            /* Update exc_err */
            Update_Err(Line.Olp[i>>1], Line.Sfs[i].AcLg, Line.Sfs[i].AcGn);

            Upd_Ring( Dpnt, &QntLpc[i*LpcOrder], &PerLpc[i*2*LpcOrder],
                                                        CodStat.PrevErr ) ;
            Dpnt += SubFrLen;
        }
    }

    else {

        /*
        // Case of Active signal  (Ftyp=1)
        */

        /* Compute the Hmw */
        j = PitchMax ;
        for ( i = 0 ; i < SubFrames ; i ++ ) {
            Pw[i] = Comp_Pw( Dpnt, (Word16) j, Line.Olp[i>>1] ) ;
            j += SubFrLen ;
        }

        /* Reload the buffer */
        for ( i = 0 ; i < PitchMax ; i ++ )
            Dpnt[i] = CodStat.PrevWgt[i] ;
        for ( i = 0 ; i < Frame ; i ++ )
            Dpnt[PitchMax+i] = DataBuff[i] ;

        /* Save PrevWgt */
        for ( i = 0 ; i < PitchMax ; i ++ )
            CodStat.PrevWgt[i] = Dpnt[Frame+i] ;

        /* Apply the Harmonic filter */
        j = 0 ;
        for ( i = 0 ; i < SubFrames ; i ++ ) {
            Filt_Pw( DataBuff, Dpnt, (Word16) j , Pw[i] ) ;
            j += SubFrLen ;
        }
        free ( (char *) Dpnt ) ;

        /* Inverse quantization of the LSP */
        Lsp_Inq( LspVect, CodStat.PrevLsp, Line.LspId, Line.Crc ) ;

        /* Interpolate the Lsp vectors */
        Lsp_Int( QntLpc, LspVect, CodStat.PrevLsp ) ;

        /* Copy the LSP vector for the next frame */
        for ( i = 0 ; i < LpcOrder ; i ++ )
            CodStat.PrevLsp[i] = LspVect[i] ;

        /*
        // Start the sub frame processing loop
        */
        Dpnt = DataBuff ;

        for ( i = 0 ; i < SubFrames ; i ++ ) {

            /* Compute full impulse response */
            Comp_Ir( ImpResp, &QntLpc[i*LpcOrder],
                                            &PerLpc[i*2*LpcOrder], Pw[i] ) ;

            /* Subtract the ringing of previous sub-frame */
            Sub_Ring( Dpnt, &QntLpc[i*LpcOrder], &PerLpc[i*2*LpcOrder],
                                                   CodStat.PrevErr, Pw[i] ) ;

            /* Compute adaptive code book contribution */
            Find_Acbk( Dpnt, ImpResp, CodStat.PrevExc, &Line, (Word16) i ) ;

            /* Compute fixed code book contribution */
            Find_Fcbk( Dpnt, ImpResp, &Line, (Word16) i ) ;

            /* Reconstruct the excitation */
            Decod_Acbk( ImpResp, CodStat.PrevExc, Line.Olp[i>>1],
                                    Line.Sfs[i].AcLg, Line.Sfs[i].AcGn ) ;

            for ( j = SubFrLen ; j < PitchMax ; j ++ )
                CodStat.PrevExc[j-SubFrLen] = CodStat.PrevExc[j] ;

            for ( j = 0 ; j < SubFrLen ; j ++ ) {
                Dpnt[j] = shl( Dpnt[j], (Word16) 1 ) ;
                Dpnt[j] = add( Dpnt[j], ImpResp[j] ) ;
                CodStat.PrevExc[PitchMax-SubFrLen+j] = Dpnt[j] ;
            }

            /* Update exc_err */
            Update_Err(Line.Olp[i>>1], Line.Sfs[i].AcLg, Line.Sfs[i].AcGn);

            /* Update the ringing delays */
            Upd_Ring( Dpnt, &QntLpc[i*LpcOrder], &PerLpc[i*2*LpcOrder],
                                                       CodStat.PrevErr ) ;

            Dpnt += SubFrLen ;
        }  /* end of subframes loop */

        /*
        // Save Vad information and reset CNG random generator
        */
        CodCng.PastFtyp = 1;
        CodCng.RandSeed = 12345;

    } /* End of active frame case */

    /* Pack the Line structure */
    Line_Pack( &Line, Vout, Ftyp ) ;

    return (Flag) True ;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国产视频在线观看| 精品裸体舞一区二区三区| 色爱区综合激月婷婷| 日韩精品一区二区三区在线观看| 国产精品久久久久影院老司| 日韩精品国产欧美| 91麻豆免费在线观看| 日韩三级在线免费观看| 一卡二卡欧美日韩| 国产成人在线视频免费播放| 欧美一级精品在线| 亚洲黄网站在线观看| 成+人+亚洲+综合天堂| 精品国产亚洲在线| 蜜桃91丨九色丨蝌蚪91桃色| 日本精品一级二级| 日本一区二区成人在线| 国产一区二三区好的| 欧美老肥妇做.爰bbww视频| 亚洲视频资源在线| 成人午夜av电影| 国产欧美一区二区精品久导航| 精品一区二区久久久| 欧美精品久久一区| 性久久久久久久久久久久| 日本精品视频一区二区| 国产精品美女久久久久av爽李琼 | 岛国av在线一区| 欧美成人乱码一区二区三区| 亚洲成人av一区| 欧美伊人精品成人久久综合97| 最近日韩中文字幕| 成人福利视频网站| 欧美一区日韩一区| 性做久久久久久| 欧美日韩免费电影| 亚洲免费av网站| 91小视频在线| 国产精品三级久久久久三级| 欧美在线短视频| 亚洲日本丝袜连裤袜办公室| 国产另类ts人妖一区二区| 日韩久久久精品| 日本不卡中文字幕| 91精品国产综合久久久久久久久久 | 亚洲天堂网中文字| 波多野结衣欧美| 中文字幕在线视频一区| 国产精品99久久久久久久vr| 久久人人爽爽爽人久久久| 亚洲美女电影在线| 99久久精品免费精品国产| 亚洲精选免费视频| 91黄色激情网站| 不卡的av电影在线观看| 国产精品久久久久久久久果冻传媒| 国产精品911| 国产精品素人一区二区| 成人18视频日本| 亚洲同性gay激情无套| 色噜噜夜夜夜综合网| 一区二区高清视频在线观看| 欧美日韩视频专区在线播放| 日韩电影一二三区| 精品国产乱码久久久久久免费 | 91久久精品一区二区| 樱花草国产18久久久久| bt欧美亚洲午夜电影天堂| 亚洲欧美日韩国产手机在线| 欧美福利电影网| 91浏览器入口在线观看| 亚洲二区在线观看| 91精品国产综合久久香蕉的特点| 国产一区二区在线免费观看| 1024亚洲合集| 欧美理论电影在线| 国产精品一区2区| 亚洲男人的天堂在线观看| 91精品国产综合久久久久久漫画 | 丝袜国产日韩另类美女| 精品久久久久久无| 91免费国产在线| 日本不卡一区二区三区 | 91福利小视频| 蜜臀av性久久久久av蜜臀妖精| 亚洲一区二区三区不卡国产欧美 | 国产精品婷婷午夜在线观看| 在线欧美小视频| 国产在线国偷精品免费看| 亚洲天堂成人网| 欧美一级高清片在线观看| 国产伦精一区二区三区| 国产精品天干天干在观线| 欧美日韩亚洲综合在线| 国产呦萝稀缺另类资源| 亚洲黄一区二区三区| 久久久久久久免费视频了| 欧美日韩美少妇| 成人永久免费视频| 日韩va亚洲va欧美va久久| 国产综合色产在线精品| 一区二区在线观看免费| 久久嫩草精品久久久精品一| 欧美午夜在线一二页| 国产成人免费视频网站| 日韩av电影天堂| 亚洲伊人色欲综合网| 国产精品色眯眯| 久久久久久久久蜜桃| 欧美巨大另类极品videosbest| 日韩成人精品在线观看| 亚洲三级小视频| 国产亚洲成年网址在线观看| 欧美美女一区二区三区| 色8久久精品久久久久久蜜| 风间由美一区二区三区在线观看 | www.亚洲人| 国内一区二区在线| 蜜臀精品一区二区三区在线观看| 亚洲乱码日产精品bd| 亚洲国产成人午夜在线一区 | 欧美精品在线一区二区三区| 91毛片在线观看| www.亚洲色图| 9i看片成人免费高清| 成人午夜短视频| 国产成人av电影| 国产不卡视频在线播放| 国产成人免费在线观看不卡| 国产一区二区精品久久91| 精品在线观看免费| 韩国精品久久久| 国产精品白丝av| 欧美日韩色综合| 欧美精品第一页| 4438x成人网最大色成网站| 欧美色综合久久| 欧美日韩免费不卡视频一区二区三区| 在线亚洲高清视频| 欧美高清性hdvideosex| 91精品久久久久久蜜臀| 欧美日韩一区不卡| 色8久久人人97超碰香蕉987| 91久久国产综合久久| 一本大道av一区二区在线播放| 一本一道综合狠狠老| 色88888久久久久久影院按摩| 在线观看精品一区| 欧美久久一区二区| 在线观看不卡一区| 欧美久久高跟鞋激| 久久―日本道色综合久久| 麻豆精品视频在线观看免费| 久久99国产精品尤物| 国产精品888| 在线视频欧美精品| 日韩一区二区免费视频| 日韩欧美亚洲另类制服综合在线| 2023国产精品自拍| 久久久蜜桃精品| 尤物av一区二区| 蜜臀av亚洲一区中文字幕| 国产伦理精品不卡| 91视频在线观看| 欧美一区二区不卡视频| 国产精品丝袜一区| 亚洲网友自拍偷拍| 蜜臀久久99精品久久久久久9| www.一区二区| 欧美大片国产精品| **网站欧美大片在线观看| 婷婷六月综合亚洲| 国产成人精品三级| 欧美激情综合网| 日韩精品视频网站| 97精品久久久久中文字幕| 欧美系列亚洲系列| 国产性天天综合网| 韩国v欧美v亚洲v日本v| 色综合天天综合网天天狠天天| 欧美一区永久视频免费观看| 国产精品嫩草影院av蜜臀| 午夜免费久久看| 99久久久无码国产精品| 日韩视频免费观看高清完整版| 亚洲欧美在线高清| 久久精品二区亚洲w码| 国产91高潮流白浆在线麻豆| 91麻豆精品国产91久久久久 | 国产精品高潮呻吟| 美女视频一区二区三区| 一本久久综合亚洲鲁鲁五月天| 天天av天天翘天天综合网| 成人一区二区三区在线观看| 宅男在线国产精品| 亚洲国产成人高清精品| 成人av网站大全| 国产亚洲女人久久久久毛片| 亚洲国产aⅴ天堂久久| 91麻豆.com|