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

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

?? dec_ld8a.c

?? g.729匯編手工優化
?? C
字號:
/*
   ITU-T G.729A Speech Coder    ANSI-C Source Code
   Version 1.1    Last modified: September 1996

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

/*-----------------------------------------------------------------*
 *   Functions Init_Decod_ld8a  and Decod_ld8a                     *
 *-----------------------------------------------------------------*/

#include "typedef.h"
#include "basic_op.h"
#include "ld8a.h"

/*---------------------------------------------------------------*
 *   Decoder constant parameters (defined in "ld8a.h")           *
 *---------------------------------------------------------------*
 *   L_FRAME     : Frame size.                                   *
 *   L_SUBFR     : Sub-frame size.                               *
 *   M           : LPC order.                                    *
 *   MP1         : LPC order+1                                   *
 *   PIT_MIN     : Minimum pitch lag.                            *
 *   PIT_MAX     : Maximum pitch lag.                            *
 *   L_INTERPOL  : Length of filter for interpolation            *
 *   PRM_SIZE    : Size of vector containing analysis parameters *
 *---------------------------------------------------------------*/

/*--------------------------------------------------------*
 *         Static memory allocation.                      *
 *--------------------------------------------------------*/
 static Word16  synth_buf[L_FRAME+M]; /* Synthesis                   */
 Word16  *synth; 
        /* Excitation vector */

 static Word16 old_exc[L_FRAME+PIT_MAX+L_INTERPOL];
 static Word16 *exc;

        /* Lsp (Line spectral pairs) */

 static Word16 lsp_old[M]={
             30000, 26000, 21000, 15000, 8000, 0, -8000,-15000,-21000,-26000};
        /* Filter's memory */

 static Word16 mem_syn[M];

 static Word16 sharp;           /* pitch sharpening of previous frame */
 static Word16 old_T0;          /* integer delay of previous frame    */
 static Word16 gain_code;       /* Code gain                          */
 static Word16 gain_pitch;      /* Pitch gain                         */

/*-----------------------------------------------------------------*
 *   Function Init_Decod_ld8a                                      *
 *            ~~~~~~~~~~~~~~~                                      *
 *                                                                 *
 *   ->Initialization of variables for the decoder section.        *
 *                                                                 *
 *-----------------------------------------------------------------*/

void Init_Decod_ld8a(void)
{

  Word16 i;
	
  for (i=0; i<M; i++) synth_buf[i] = 0;
    	synth = synth_buf + M;
  /* Initialize static pointer */

  exc = old_exc + PIT_MAX + L_INTERPOL;

  /* Static vectors to zero */

  Set_zero(old_exc, PIT_MAX+L_INTERPOL);
  Set_zero(mem_syn, M);

  sharp  = SHARPMIN;
  old_T0 = 60;
  gain_code = 0;
  gain_pitch = 0;

  Lsp_decw_reset();
 return;
}


/*-----------------------------------------------------------------*
 *   Function Decod_ld8a                                           *
 *           ~~~~~~~~~~                                            *
 *   ->Main decoder routine.                                       *
 *                                                                 *
 *-----------------------------------------------------------------*/

void Decod_ld8a(
  Word16  parm[],      /* (i)   : vector of synthesis parameters
                                  parm[0] = bad frame indicator (bfi)  */
  Word16  synth[],     /* (o)   : synthesis speech                     */
  Word16  A_t[],       /* (o)   : decoded LP filter in 2 subframes     */
  Word16  *T2          /* (o)   : decoded pitch lag in 2 subframes     */
)
{
  Word16  *Az;                  /* Pointer on A_t   */
  Word16  lsp_new[M];           /* LSPs             */
  Word16  code[L_SUBFR];        /* ACELP codevector */

  /* Scalars */

  Word16  i, j, i_subfr;
  Word16  T0, T0_frac, index;
  Word16  bfi;
  Word32  L_temp;

  Word16 bad_pitch;             /* bad pitch indicator */
  extern Word16 bad_lsf;        /* bad LSF indicator   */

  /* Test bad frame indicator (bfi) */

  bfi = *parm++;

  /* Decode the LSPs */

  D_lsp(parm, lsp_new, add(bfi, bad_lsf));
  parm += 2;

  /*
  Note: "bad_lsf" is introduce in case the standard is used with
         channel protection.
  */

  /* Interpolation of LPC for the 2 subframes */

  Int_qlpc(lsp_old, lsp_new, A_t);

  /* update the LSFs for the next frame */

  Copy(lsp_new, lsp_old, M);

/*------------------------------------------------------------------------*
 *          Loop for every subframe in the analysis frame                 *
 *------------------------------------------------------------------------*
 * The subframe size is L_SUBFR and the loop is repeated L_FRAME/L_SUBFR  *
 *  times                                                                 *
 *     - decode the pitch delay                                           *
 *     - decode algebraic code                                            *
 *     - decode pitch and codebook gains                                  *
 *     - find the excitation and compute synthesis speech                 *
 *------------------------------------------------------------------------*/

  Az = A_t;            /* pointer to interpolated LPC parameters */

  for (i_subfr = 0; i_subfr < L_FRAME; i_subfr += L_SUBFR)
  {

    index = *parm++;            /* pitch index */

    if(i_subfr == 0)
    {
      i = *parm++;              /* get parity check result */
      bad_pitch = add(bfi, i);
      if( bad_pitch == 0)
      {
        Dec_lag3(index, PIT_MIN, PIT_MAX, i_subfr, &T0, &T0_frac);
        old_T0 = T0;
      }
      else        /* Bad frame, or parity error */
      {
        T0  =  old_T0;
        T0_frac = 0;
        old_T0 = add( old_T0, 1);
        if( sub(old_T0, PIT_MAX) > 0) {
            old_T0 = PIT_MAX;
        }
      }
    }
    else                  /* second subframe */
    {
      if( bfi == 0)
      {
        Dec_lag3(index, PIT_MIN, PIT_MAX, i_subfr, &T0, &T0_frac);
        old_T0 = T0;
      }
      else
      {
        T0  =  old_T0;
        T0_frac = 0;
        old_T0 = add( old_T0, 1);
        if( sub(old_T0, PIT_MAX) > 0) {
            old_T0 = PIT_MAX;
        }
      }
    }
    *T2++ = T0;

   /*-------------------------------------------------*
    * - Find the adaptive codebook vector.            *
    *-------------------------------------------------*/

    Pred_lt_3(&exc[i_subfr], T0, T0_frac, L_SUBFR);

   /*-------------------------------------------------------*
    * - Decode innovative codebook.                         *
    * - Add the fixed-gain pitch contribution to code[].    *
    *-------------------------------------------------------*/

    if(bfi != 0)        /* Bad frame */
    {

      parm[0] = Random() & (Word16)0x1fff;     /* 13 bits random */
      parm[1] = Random() & (Word16)0x000f;     /*  4 bits random */
    }
    Decod_ACELP(parm[1], parm[0], code);
    parm +=2;

    j = shl(sharp, 1);          /* From Q14 to Q15 */
    if(sub(T0, L_SUBFR) <0 ) {
        for (i = T0; i < L_SUBFR; i++) {
          code[i] = add(code[i], mult(code[i-T0], j));
        }
    }

   /*-------------------------------------------------*
    * - Decode pitch and codebook gains.              *
    *-------------------------------------------------*/

    index = *parm++;      /* index of energy VQ */

    Dec_gain(index, code, L_SUBFR, bfi, &gain_pitch, &gain_code);

   /*-------------------------------------------------------------*
    * - Update pitch sharpening "sharp" with quantized gain_pitch *
    *-------------------------------------------------------------*/

    sharp = gain_pitch;
    if (sub(sharp, SHARPMAX) > 0) { sharp = SHARPMAX;  }
    if (sub(sharp, SHARPMIN) < 0) { sharp = SHARPMIN;  }

   /*-------------------------------------------------------*
    * - Find the total excitation.                          *
    * - Find synthesis speech corresponding to exc[].       *
    *-------------------------------------------------------*/

    for (i = 0; i < L_SUBFR;  i++)
    {
       /* exc[i] = gain_pitch*exc[i] + gain_code*code[i]; */
       /* exc[i]  in Q0   gain_pitch in Q14               */
       /* code[i] in Q13  gain_codeode in Q1              */

       L_temp = L_mult(exc[i+i_subfr], gain_pitch);
       L_temp = L_mac(L_temp, code[i], gain_code);
       L_temp = L_shl(L_temp, 1);
       exc[i+i_subfr] = round(L_temp);
    }
  /* 
    Overflow = 0;
    Syn_filt(Az, &exc[i_subfr], &synth[i_subfr], L_SUBFR, mem_syn, 0);
    if(Overflow != 0)
 */
if(Syn_filt(Az, &exc[i_subfr], &synth[i_subfr], L_SUBFR, mem_syn, 0)  != 0)
    {
      /* In case of overflow in the synthesis          */
      /* -> Scale down vector exc[] and redo synthesis */

      for(i=0; i<PIT_MAX+L_INTERPOL+L_FRAME; i++)
        old_exc[i] = shr(old_exc[i], 2);

      Syn_filt(Az, &exc[i_subfr], &synth[i_subfr], L_SUBFR, mem_syn, 1);
    }
    else
      Copy(&synth[i_subfr+L_SUBFR-M], mem_syn, M);

    Az += MP1;    /* interpolated LPC parameters for next subframe */
  }

 /*--------------------------------------------------*
  * Update signal for next frame.                    *
  * -> shift to the left by L_FRAME  exc[]           *
  *--------------------------------------------------*/

  Copy(&old_exc[L_FRAME], &old_exc[0], PIT_MAX+L_INTERPOL);

  return;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av电影免费观看| 欧美一区二区二区| 日韩午夜av一区| 国产精品久久久久国产精品日日| 日韩国产欧美一区二区三区| 亚洲摸摸操操av| 亚洲成人免费影院| 国产91清纯白嫩初高中在线观看| 欧美午夜在线一二页| 国产精品网站在线| 国产成人精品亚洲日本在线桃色| 91精品国产高清一区二区三区 | 亚洲精品伦理在线| 紧缚奴在线一区二区三区| 欧美系列日韩一区| 亚洲精品伦理在线| 一本色道久久综合精品竹菊| 国产欧美精品在线观看| 美女视频第一区二区三区免费观看网站| 99视频一区二区| 国产精品美女www爽爽爽| 韩国在线一区二区| 欧美精品一区二区三区蜜桃 | 2023国产精品视频| 欧美aaa在线| 欧美一二区视频| 另类调教123区| 日韩一区二区精品| 久久精品免费看| 日韩免费高清视频| 黄色精品一二区| 久久久高清一区二区三区| 激情综合色综合久久综合| 日韩视频免费观看高清完整版 | 欧美成人vps| 老司机午夜精品| 精品久久久久av影院 | 91在线观看一区二区| 中文字幕在线观看一区| 91影视在线播放| 亚洲国产综合人成综合网站| 欧美日韩精品久久久| 婷婷综合另类小说色区| 日韩精品中文字幕一区| 国产综合色视频| 亚洲国产精品成人综合 | 一区二区三区蜜桃网| 在线观看视频欧美| 日本vs亚洲vs韩国一区三区二区 | 国产一区二区三区在线观看免费视频| 欧美mv日韩mv国产网站| 国产成人自拍高清视频在线免费播放| 欧美国产亚洲另类动漫| 99国产精品国产精品毛片| 亚洲已满18点击进入久久| 欧美一区2区视频在线观看| 国产一区二区影院| 亚洲老司机在线| 日韩一区二区三区精品视频| 国产呦萝稀缺另类资源| 亚洲欧洲综合另类在线| 7777精品久久久大香线蕉| 国内精品免费在线观看| 亚洲特级片在线| 欧美一级在线免费| av一区二区久久| 久久99国产精品尤物| 亚洲三级电影网站| 欧美mv日韩mv| 欧洲国内综合视频| 国产精品一二三区| 日韩精品五月天| 国产精品久久久久久久浪潮网站| 欧美伊人久久大香线蕉综合69| 久久福利资源站| 一区二区三区自拍| 国产色91在线| 欧美一级片在线| 色婷婷久久99综合精品jk白丝| 日本少妇一区二区| 一区二区在线看| 久久精子c满五个校花| 69堂成人精品免费视频| 92精品国产成人观看免费| 久久99精品久久久久| 亚洲成人在线免费| 成人欧美一区二区三区小说| 亚洲精品一区二区三区香蕉| 欧美久久一二三四区| 一本大道av一区二区在线播放| 激情综合色综合久久综合| 日本不卡一区二区三区高清视频| 亚洲男女一区二区三区| 中文字幕一区二区三区视频| 久久久亚洲精品石原莉奈| 欧美一区二区在线免费观看| 91九色02白丝porn| 99精品热视频| 国产乱子伦视频一区二区三区 | 精品国产乱码久久久久久影片| 欧美主播一区二区三区美女| av资源网一区| 懂色中文一区二区在线播放| 国产一区二区电影| 国产乱码精品一区二区三区五月婷 | 日本一区二区在线不卡| 欧美精品一区二区三区很污很色的| 欧美日韩欧美一区二区| 色婷婷久久久综合中文字幕| 色噜噜狠狠一区二区三区果冻| eeuss鲁一区二区三区| 成人av资源站| www.欧美.com| 99久久综合国产精品| caoporen国产精品视频| 91在线视频18| 91免费看片在线观看| 色素色在线综合| 欧美日韩国产精选| 欧美一区二区三区日韩| 欧美一区二区三区免费大片| 精品久久久久久最新网址| 欧美精品一区二区在线观看| 久久久噜噜噜久久人人看| 欧美国产日韩a欧美在线观看| 国产精品色哟哟| 亚洲欧美另类综合偷拍| 亚洲国产精品自拍| 日本不卡免费在线视频| 国产精品综合在线视频| 成人av资源在线| 色欧美乱欧美15图片| 欧美卡1卡2卡| 久久久99久久| 一区二区三区日韩在线观看| 亚洲chinese男男1069| 久久不见久久见免费视频1| 国产成人综合亚洲网站| 91久久精品一区二区| 欧美一级欧美三级在线观看| 中文字幕欧美三区| 亚洲电影一级黄| 国产在线不卡一卡二卡三卡四卡| 不卡av电影在线播放| 欧美色偷偷大香| 久久众筹精品私拍模特| 国产精品色婷婷久久58| 日韩在线卡一卡二| 成人精品一区二区三区中文字幕| 日本韩国视频一区二区| 欧美成人bangbros| 亚洲免费毛片网站| 国产美女av一区二区三区| 色婷婷亚洲精品| 精品国产乱码久久久久久免费| 亚洲精品欧美二区三区中文字幕| 久久99深爱久久99精品| 91视频com| 久久久国产精品麻豆| 午夜精品福利视频网站| 99精品在线观看视频| 在线91免费看| 亚洲美女屁股眼交3| 国产揄拍国内精品对白| 8v天堂国产在线一区二区| 亚洲欧美日韩国产手机在线| 国产高清不卡一区| 91精品国产色综合久久不卡蜜臀| 中文字幕制服丝袜成人av| 久久99精品国产91久久来源| 欧美日韩国产综合久久| 亚洲人成伊人成综合网小说| 国产一区在线观看麻豆| 69p69国产精品| 亚洲一区二区精品久久av| 91在线免费播放| 亚洲国产精品av| 国产成人午夜精品5599| 欧美大片国产精品| 日韩中文欧美在线| 欧美色偷偷大香| 一区二区三区欧美激情| 一本大道av一区二区在线播放| 国产女人水真多18毛片18精品视频| 久久精品国产精品亚洲综合| 欧美日本在线看| 午夜精品成人在线视频| 欧美亚洲综合色| 亚洲一区在线电影| 91福利在线播放| 亚洲午夜影视影院在线观看| 一本一本久久a久久精品综合麻豆| 国产欧美精品一区二区色综合朱莉| 久久 天天综合| www欧美成人18+| 国产精品一区二区久久不卡| 国产亚洲精品7777| 国产69精品久久777的优势| 国产欧美一区二区精品仙草咪| 国产老女人精品毛片久久|