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

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

?? g722.cpp

?? DSP tms320c6713: implementation in C++ G722
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/**********************************************************************
codec_ftns.c - Encoder and Decoder functions. 
***********************************************************************/
#include <math.h>
/********  Function Declarations  ********/
int encode(int,int);
void decode(int);
int filtez(int *bpl,int *dlt);
void upzero(int dlt,int *dlti,int *bli);
int filtep(int rlt1,int al1,int rlt2,int al2);
int quantl(int el,int detl);
int logscl(int il,int nbl);
int scalel(int nbl,int shift_constant);
int uppol2(int al1,int al2,int plt,int plt1,int plt2);
int uppol1(int al1,int apl2,int plt,int plt1);
int logsch(int ih,int nbh);
void reset();

/********  Transmit QMF Variable Declarations  ********/
int tqmf[24];			/* TQMF delay samples */
int h[24] = {           /* TQMF filter coeficients */
    12,   -44,   -44,   212,    48,  -624,   128,  1448,
  -840, -3220,  3804, 15504, 15504,  3804, -3220,  -840,
  1448,   128,  -624,    48,   212,   -44,   -44,    12
};

/********  Receive QMF Variable Declarations  ********/
int accumc[11],accumd[11];  /* Receive QMF Accumulators */
int xout1,xout2;			/* outputs of decode */
int slout, xlout;

/********  Lo and Hi Band Encoder Variable Declarations  ********/
/* Quantizer Lookup Tables */
int decis_levl[30] = {	/* Decision Levels: Pre-multiplied by 8 */
   280,   576,   880,  1200,  1520,  1864,  2208,  2584,
  2960,  3376,  3784,  4240,  4696,  5200,  5712,  6288,
  6864,  7520,  8184,  8968,  9752, 10712, 11664, 12896,
 14120, 15840, 17560, 20456, 23352, 32767
};
int quant26bt_pos[31] = {  /* 6-bit positive quantization values */
    61,    60,    59,    58,    57,    56,    55,    54,
    53,    52,    51,    50,    49,    48,    47,    46,
    45,    44,    43,    42,    41,    40,    39,    38,
    37,    36,    35,    34,    33,    32,    32
};
int quant26bt_neg[31] = {  /* 6-bit negative quantization values */
    63,    62,    31,    30,    29,    28,    27,    26,
    25,    24,    23,    22,    21,    20,    19,    18,
    17,    16,    15,    14,    13,    12,    11,    10,
     9,     8,     7,     6,     5,     4,     4
};

/* Inverse Quantizer Lookup Tables */
int qq4_code4_table[16] = {
     0,  -20456,  -12896,   -8968,   -6288,   -4240,   -2584,   -1200,
 20456,   12896,    8968,    6288,    4240,    2584,    1200,       0
};
int qq5_code5_table[32] = {
  -280,    -280,  -23352,  -17560,  -14120,  -11664,   -9752,   -8184,
 -6864,   -5712,   -4696,   -3784,   -2960,   -2208,   -1520,    -880,
 23352,   17560,   14120,   11664,    9752,    8184,    6864,    5712,
  4696,    3784,    2960,    2208,    1520,     880,     280,    -280
};
int qq6_code6_table[64] = {
  -136,    -136,    -136,    -136,  -24808,  -21904,  -19008,  -16704,
-14984,  -13512,  -12280,  -11192,  -10232,   -9360,   -8576,   -7856,
 -7192,   -6576,   -6000,   -5456,   -4944,   -4464,   -4008,   -3576,
 -3168,   -2776,   -2400,   -2032,   -1688,   -1360,   -1040,    -728,
 24808,   21904,   19008,   16704,   14984,   13512,   12280,   11192,
 10232,    9360,    8576,    7856,    7192,    6576,    6000,    5456,
  4944,    4464,    4008,    3576,    3168,    2776,    2400,    2032,
  1688,    1360,    1040,     728,     432,     136,    -432,    -136
};
int qq2_code2_table[4] = {
  -7408,   -1616,   7408,  1616
};

/* Quantizer Adaptation Values */
int wl_code_table[16] = {
   -60,  3042,  1198,   538,   334,   172,    58,   -30,
  3042,  1198,   538,   334,   172,    58,   -30,   -60
};
int wh_code_table[4] = {
   798,   -214,    798,   -214
};
int wl_table[8] = {
   -60,   -30,    58,   172,   334,   538,  1198,  3042
};
int ilb_table[32] = {
  2048,  2093,  2139,  2186,  2233,  2282,  2332,  2383,
  2435,  2489,  2543,  2599,  2656,  2714,  2774,  2834,
  2896,  2960,  3025,  3091,  3158,  3228,  3298,  3371,
  3444,  3520,  3597,  3676,  3756,  3838,  3922,  4008
};

int 	delay_bpl[6];
int		delay_dltx[6];
int     nbl;
int     al1,al2;
int     plt,plt1,plt2;
int     rs;
int     dlt;
int     rlt,rlt1,rlt2;
int     detl;

int     delay_dhx[6];
int     delay_bph[6];
int     nbh;
int     ah1,ah2;
int     ph1,ph2;
int     rh1,rh2;
int     deth;

/********  Lo and Hi Band Decoder Variable Declarations  ********/
int     dec_deth,dec_detl,dec_dlt;
int     dec_del_bpl[6];
int     dec_del_dltx[6];
int		dec_plt,dec_plt1,dec_plt2;
int		dec_szl,dec_spl,dec_sl;
int		dec_rlt1,dec_rlt2,dec_rlt;
int		dec_al1,dec_al2;
int		dec_nbl,dec_yh,dec_dh,dec_nbh;

/********  filtez Variable Declarations  ********/

int     dec_del_bph[6];
int     dec_del_dhx[6];
int     dec_szh;

/********  filtep Variable Declarations  ********/

int     dec_rh1,dec_rh2;
int     dec_ah1,dec_ah2;
int     dec_ph,dec_sph;
int		dec_sh,dec_rh;
int		dec_ph1,dec_ph2;

/***************************************************************
encode: input samples in xin1 = first value, xin2 = second value
performs the encoder processing.
returns il and ih stored together
***************************************************************/
int encode(int xin1,int xin2)
{
	int i;						/* tqmf index */
    int *h_ptr;					/* pointer to tqmf coeficients */
    int *tqmf_ptr,*tqmf_ptr1;	/* pointers to tqmf delay values */
    long int xa,xb;				/* odd and even values */
    int xl,xh;					/* low and high bands */
    int decis;
    int sh;         			/* comes from adaptive predictor */
    int eh;						/* hi band error */
    int dh;
    int il,ih;					/* encoder outputs */
    int szh,sph,ph,yh;			/* high band predictor outputs */
    int szl,spl,sl,el;			/* low band predictor outputs */

/*BEGIN: Transmit Quadrature Mirror Filter*/
    h_ptr = h;
    tqmf_ptr = tqmf;
    /* first multiply and accumulate */
    xa = (long)(*tqmf_ptr++) * (*h_ptr++);
    xb = (long)(*tqmf_ptr++) * (*h_ptr++);
	/* multiply and accumulate loop */
    for(i=0 ; i<10 ; i++) {
        xa += (long)(*tqmf_ptr++) * (*h_ptr++);
        xb += (long)(*tqmf_ptr++) * (*h_ptr++);
    }
	/* final multiply and accumulate */
    xa += (long)(*tqmf_ptr++) * (*h_ptr++);
    xb += (long)(*tqmf_ptr) * (*h_ptr++);
	/* update delay line tqmf with new samples */
    tqmf_ptr1 = tqmf_ptr - 2;
    for(i = 0 ; i < 22 ; i++) *tqmf_ptr-- = *tqmf_ptr1--;
    *tqmf_ptr-- = xin1;
    *tqmf_ptr = xin2;
    /* combine filter outputs to produce hi/lo sub-bands */
    xl = (xa + xb) >> 15;
    xh = (xa - xb) >> 15;
    xlout = xl;
/*END: Transmit Quadrature Mirror Filter*/

/*BEGIN: Lo Sub-Band Encoder*/
	/* compute the predictor output zero section */
	szl = filtez(delay_bpl, delay_dltx);
	/* compute the predictor output pole section */
    spl = filtep(rlt1,al1,rlt2,al2);
	/* compute the predictor output value */
	sl = szl + spl;
	slout = sl;
	/* compute the error signal el(n) */
	el = xl - sl;
	/* adaptive quantizer qmplementation */
	il = quantl(el,detl);
	/* inverse adaptive quantizer implementation */
	dlt = ((long)detl*qq4_code4_table[il >> 2]) >> 15;
	/* quantizer adaptation implementation */
	/* first compute the log scaling factor nbl */
	nbl = logscl(il, nbl);
	/* then compute the linear scaling factor detl */
	/* 8 is a scale factor so that scalel can be used */
	/* for the hi-band encoder */
	detl = scalel(nbl,8);
	/* adaptive prediction implementation */
	/* compute the partial reconstructed signal */
    plt = dlt + szl;
	/* update the zero section predictor coefficients */
    upzero(dlt,delay_dltx,delay_bpl);
	/* update second pole section predictor coefficient */
    al2 = uppol2(al1,al2,plt,plt1,plt2);
	/* update first pole section predictor coefficient */    
    al1 = uppol1(al1,al2,plt,plt1);
	/* compute the quantized recontructed signal for adaptive predic */
    rlt = sl + dlt;
	/* implement delays for next time */
    rlt2 = rlt1;
    rlt1 = rlt;
    plt2 = plt1;
    plt1 = plt;
/*END: Lo Sub-Band Encoder*/
           
/*BEGIN: Hi Sub-Band Encoder*/ 
	/* compute the predictor output zero section */
    szh = filtez(delay_bph,delay_dhx);
    /* compute the predictor output pole section */
    sph = filtep(rh1,ah1,rh2,ah2);
    /* compute the predictor output value */
    sh = sph + szh;
	/* compute the error signal eh(n) */
    eh = xh - sh;
	/* adaptive quantizer qmplementation */
    if(eh >= 0) {
        ih = 3;     /* 2,3 are pos codes */
    }
    else {
        ih = 1;     /* 0,1 are neg codes */
    }
    decis = (564L*(long)deth) >> 12L;
    if(abs(eh) > decis) ih--;     /* mih = 2 case */
	/* inverse adaptive quantizer implementation */
	dh = ((long)deth*qq2_code2_table[ih]) >> 15L ;
    /* quantizer adaptation implementation */
	/* first compute the log scaling factor nbh */
    nbh = logsch(ih,nbh);
    /* then compute the linear scaling factor deth */ 
    deth = scalel(nbh,10);
	/* adaptive prediction implementation */
	/* compute the partial reconstructed signal */
    ph = dh + szh;
     /* update the zero section predictor coefficients */
    upzero(dh,delay_dhx,delay_bph);
     /* update second pole section predictor coefficient */
    ah2 = uppol2(ah1,ah2,ph,ph1,ph2);
	/* update first pole section predictor coefficient */
    ah1 = uppol1(ah1,ah2,ph,ph1);
    /* compute the quantized recontructed signal for adaptive predic */
    yh = sh + dh;
	/* implement delays for next time */
    rh2 = rh1;
    rh1 = yh;
    ph2 = ph1;
    ph1 = ph;
/*END: Hi Sub-Band Encoder*/

/*Multiplex ih and il to get 8-bit signal*/
    return(il | (ih << 6));
}

/***************************************************************
decode: Input is the output of the encoder
performs the decoder processing.
result in xout1 and xout2
***************************************************************/
void decode(int input)
{
    int i;						/* rqmf filter index */
    int xa1,xa2;    			/* qmf accumulators */
    int *h_ptr;					/* qmf coeficient pointer */
    int *ac_ptr,*ac_ptr1;		/* delay buffer pointers */
    int *ad_ptr,*ad_ptr1;
    int ilr,ih;					/* encoded error */
    int xs,xd;
    int rl,rh;
    int dl;

/*Split Received Word into Lo-Band and Hi-Band */
    ilr = input & 0x3f;
    ih = input >> 6;

/*BEGIN: Lo Sub-Band Decoder*/
	/* compute predictor output for zero section */
    dec_szl = filtez(dec_del_bpl,dec_del_dltx);
	/* compute predictor output signal for pole section */
    dec_spl = filtep(dec_rlt1,dec_al1,dec_rlt2,dec_al2);
    /* compute the predictor output value */
    dec_sl = dec_spl + dec_szl;
	/* compute quantized difference signal for adaptive predic */
    dec_dlt = ((long)dec_detl*qq4_code4_table[ilr >> 2]) >> 15;
	/* compute quantized difference signal for decoder output */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色视频一区| 亚洲欧美日韩国产综合| 国产欧美一区二区精品婷婷| 中文字幕在线一区二区三区| 日韩av一级片| 9色porny自拍视频一区二区| 日韩精品自拍偷拍| 亚洲资源中文字幕| 99久久国产综合精品麻豆 | 国产成人精品免费一区二区| 欧美综合久久久| 国产精品不卡一区| 国产一区欧美一区| 日韩免费在线观看| 亚洲亚洲精品在线观看| 99久久伊人网影院| 久久久久久电影| 精品一区二区三区免费毛片爱| 国产东北露脸精品视频| 日韩午夜精品视频| 日韩在线观看一区二区| 在线亚洲人成电影网站色www| 国产精品入口麻豆九色| 国产一区二区不卡在线| 日韩欧美激情在线| 日本一不卡视频| 欧美福利电影网| 亚洲国产精品影院| 欧美视频在线不卡| 亚洲综合免费观看高清完整版 | 亚洲观看高清完整版在线观看 | 久久精品国产99国产精品| 91国产精品成人| 亚洲理论在线观看| 色94色欧美sute亚洲线路一久| 国产嫩草影院久久久久| 国产成人精品在线看| 久久婷婷成人综合色| 免费在线看成人av| 欧美精品一二三四| 蜜臀av一区二区| 精品成人一区二区三区| 国内精品国产成人国产三级粉色| 精品国产91久久久久久久妲己| 久久不见久久见免费视频7 | 欧美性生活影院| 亚洲大片在线观看| 欧美一级黄色片| 国产在线播精品第三| 国产午夜精品久久久久久免费视 | 亚洲午夜羞羞片| 欧美高清hd18日本| 韩国三级在线一区| 欧美激情一区二区三区全黄| 波多野结衣中文一区| 国产欧美日韩三区| av日韩在线网站| 亚洲国产视频在线| 欧美va亚洲va香蕉在线| 国产成人无遮挡在线视频| 国产嫩草影院久久久久| 色狠狠色噜噜噜综合网| 日本欧美大码aⅴ在线播放| 精品捆绑美女sm三区| 久久精品国产秦先生| 国产精品卡一卡二卡三| 欧美羞羞免费网站| 国产一区二区三区免费观看| 中文字幕一区二区不卡 | 99精品热视频| 亚洲第一久久影院| 国产欧美一区二区精品忘忧草| 色狠狠色狠狠综合| 久久精品二区亚洲w码| 国产精品素人一区二区| 7777精品伊人久久久大香线蕉超级流畅 | 91精品国产综合久久精品性色| 国产一区二区精品久久| 亚洲综合激情小说| 久久久久综合网| 欧美日韩国产经典色站一区二区三区| 紧缚捆绑精品一区二区| 亚洲一区二区三区美女| 久久久久久久综合狠狠综合| 欧美视频一区二| 成人少妇影院yyyy| 麻豆精品在线看| 一区二区三区在线高清| 中文字幕av一区二区三区| 91麻豆精品国产自产在线观看一区 | 丰满放荡岳乱妇91ww| 日本aⅴ精品一区二区三区| 中文字幕五月欧美| 久久久久久免费毛片精品| 欧美天堂亚洲电影院在线播放| 国产aⅴ综合色| 韩国女主播一区| 日韩电影免费一区| 亚洲第一av色| 一区二区三区丝袜| 国产精品九色蝌蚪自拍| 国产视频一区在线播放| 欧美zozo另类异族| 日韩三级视频在线观看| 欧美三级视频在线观看| 欧洲av一区二区嗯嗯嗯啊| 成人中文字幕合集| 风间由美一区二区av101| 国产一区美女在线| 青青草国产精品97视觉盛宴| 婷婷夜色潮精品综合在线| 一区二区国产视频| 亚洲一级二级三级| 亚洲与欧洲av电影| 一区二区欧美在线观看| 一区二区三区四区在线免费观看| 国产精品久久网站| 国产精品不卡在线| 亚洲精品大片www| 一区二区三区高清在线| 亚洲乱码中文字幕综合| 一区二区三区中文字幕电影 | 2023国产精品| 久久久精品人体av艺术| 国产亚洲精品中文字幕| 日本一区二区成人在线| 国产精品免费av| 亚洲免费在线看| 亚洲mv大片欧洲mv大片精品| 日韩精品久久久久久| 免费人成黄页网站在线一区二区| 毛片av中文字幕一区二区| 久久精品国产亚洲高清剧情介绍| 国模娜娜一区二区三区| 成人h版在线观看| 日本乱码高清不卡字幕| 在线不卡欧美精品一区二区三区| 日韩一区二区在线看片| 久久精品一区二区| 亚洲人成在线观看一区二区| 亚洲一区av在线| 久久电影国产免费久久电影| 成人午夜视频免费看| 欧美视频在线一区二区三区| 日韩一级片网站| 国产精品美女一区二区在线观看| 亚洲男人天堂一区| 青青草原综合久久大伊人精品 | kk眼镜猥琐国模调教系列一区二区| 99re成人精品视频| 日韩一区二区三区视频在线观看| 欧美韩国日本一区| 亚洲国产精品一区二区久久 | 亚洲精品欧美综合四区| 人人精品人人爱| av动漫一区二区| 欧美一区二区三区免费视频| 欧美国产精品一区二区| 性久久久久久久久| 国产成人免费高清| 制服丝袜一区二区三区| 国产精品久久久久毛片软件| 婷婷亚洲久悠悠色悠在线播放 | 七七婷婷婷婷精品国产| 丰满少妇久久久久久久| 欧美高清视频不卡网| 国产精品人成在线观看免费| 日韩激情在线观看| 91麻豆精品在线观看| 欧美成人性福生活免费看| 一区二区三区免费观看| 粉嫩久久99精品久久久久久夜| 欧美日韩aaaaaa| 亚洲欧洲综合另类在线| 国产精品一区二区免费不卡| 欧美精品免费视频| 亚洲人吸女人奶水| 懂色av噜噜一区二区三区av| 欧美不卡一区二区三区| 天天射综合影视| 色88888久久久久久影院野外| 欧美极品aⅴ影院| 国产毛片精品视频| 欧美成人aa大片| 天天射综合影视| 欧美美女网站色| 亚洲综合小说图片| 91日韩精品一区| 亚洲免费av观看| 91久久精品日日躁夜夜躁欧美| 国产区在线观看成人精品| 国内精品伊人久久久久av影院| 在线不卡一区二区| 午夜av一区二区| 欧美日韩一区二区三区免费看 | 99国产精品久久久久久久久久久| 国产亚洲一区二区三区四区 | 国产欧美综合在线| 国产mv日韩mv欧美| 欧美激情综合网|