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

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

?? dec_ld8k.c

?? g.729解碼算法在VC++6.0環境下調試通過的可執行文件。
?? C
字號:
/* ITU-T G.729 Software Package Release 2 (November 2006) */
/* ITU-T G.729 - Reference C code for fixed point implementation */
/* Version 3.3    Last modified: December 26, 1995 */

/*-----------------------------------------------------------------*
 *   Functions Init_Decod_ld8k  and Decod_ld8k                     *
 *-----------------------------------------------------------------*/

#include "typedef.h"
#include "basic_op.h"
#include "ld8k.h"

/*---------------------------------------------------------------*
 *   Decoder constant parameters (defined in "ld8k.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.                      *
 *--------------------------------------------------------*/

        /* 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_ld8k                                      *
 *            ~~~~~~~~~~~~~~~                                      *
 *                                                                 *
 *   ->Initialization of variables for the decoder section.        *
 *                                                                 *
 *-----------------------------------------------------------------*/

void Init_Decod_ld8k(void)
{

  /* 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_ld8k                                           *
 *           ~~~~~~~~~~                                            *
 *   ->Main decoder routine.                                       *
 *                                                                 *
 *-----------------------------------------------------------------*/

void Decod_ld8k(
  Word16  parm[],      /* (i)   : vector of synthesis parameters
                                  parm[0] = bad frame indicator (bfi)  */
  Word16  voicing,     /* (i)   : voicing decision from previous frame */
  Word16  synth[],     /* (o)   : synthesis speech                     */
  Word16  A_t[],       /* (o)   : decoded LP filter in 2 subframes     */
  Word16  *T0_first    /* (o)   : decoded pitch lag in first subframe  */
)
{
  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 g_p, g_c;              /* fixed and adaptive codebook gain */

  Word16 bad_pitch;             /* bad pitch indicator */
  extern Flag Overflow;

  /* Test bad frame indicator (bfi) */

  bfi = *parm++;

  /* Decode the LSPs */

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

  /* 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;
        }
      }
       *T0_first = T0;         /* If first frame */
    }
    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;
        }
      }
    }

   /*-------------------------------------------------*
    * - 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[].       *
    *-------------------------------------------------------*/

    if(bfi != 0)        /* Bad frame */
    {
       if (voicing == 0 ) {
          g_p = 0;
          g_c = gain_code;
       } else {
          g_p = gain_pitch;
          g_c = 0;
       }
    } else {
       g_p = gain_pitch;
       g_c = gain_code;
    }
    for (i = 0; i < L_SUBFR;  i++)
    {
       /* exc[i] = g_p*exc[i] + g_c*code[i]; */
       /* exc[i]  in Q0   g_p in Q14         */
       /* code[i] in Q13  g_code in Q1       */

       L_temp = L_mult(exc[i+i_subfr], g_p);
       L_temp = L_mac(L_temp, code[i], g_c);
       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)
    {
      /* 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一区二区三区免费野_久草精品视频
欧美tickle裸体挠脚心vk| 久久精品水蜜桃av综合天堂| 91精品久久久久久蜜臀| 国产欧美一区二区在线| 婷婷久久综合九色综合伊人色| 国产黄色91视频| 制服丝袜中文字幕一区| 一区二区欧美精品| 粉嫩av亚洲一区二区图片| 91精品国产欧美一区二区成人 | 极品少妇xxxx精品少妇| 色综合久久综合网欧美综合网| 久久精品人人做人人爽97| 婷婷综合久久一区二区三区| 色综合一区二区三区| 国产欧美日韩一区二区三区在线观看 | 国内精品嫩模私拍在线| 欧美日韩另类一区| 亚洲精品乱码久久久久久黑人| 国产宾馆实践打屁股91| 精品成人一区二区| 精彩视频一区二区| 欧美成人精品福利| 日韩制服丝袜av| 欧美日韩国产综合一区二区三区 | 欧美电视剧在线看免费| 午夜国产不卡在线观看视频| 色婷婷精品久久二区二区蜜臂av | 午夜日韩在线电影| 国产成人自拍网| 欧美成人一区二区| 美女免费视频一区二区| 5858s免费视频成人| 亚洲成av人片一区二区三区| 欧美午夜宅男影院| 亚洲五码中文字幕| 欧美裸体一区二区三区| 亚洲va韩国va欧美va精品 | av在线播放一区二区三区| 国产午夜精品久久久久久久 | 欧美一区二区三区免费在线看| 一区二区三区电影在线播| 色婷婷久久久综合中文字幕| 亚洲精品伦理在线| 国产一区二区视频在线| 成人免费在线视频| 成人综合婷婷国产精品久久免费| 国产农村妇女精品| 91丨porny丨在线| 亚洲成人黄色影院| 日韩一级视频免费观看在线| 韩国午夜理伦三级不卡影院| 欧美极品aⅴ影院| 91色.com| 热久久免费视频| 久久久久久97三级| 91美女片黄在线观看| 亚洲午夜在线视频| 日韩欧美在线一区二区三区| 国产成人在线视频播放| 亚洲欧美日韩在线播放| 欧美妇女性影城| 国产成人亚洲精品青草天美| 亚洲精品成人悠悠色影视| 欧美一区在线视频| 成人短视频下载| 午夜精品一区二区三区电影天堂 | 婷婷久久综合九色综合绿巨人| 精品国产网站在线观看| 91丨九色丨尤物| 热久久国产精品| 国产精品成人免费在线| 日韩一级片在线观看| 91丨porny丨最新| 九九精品一区二区| 一区二区三区不卡视频在线观看| 日韩精品一区二区在线| 在线免费视频一区二区| 国产一区二区三区| 午夜私人影院久久久久| 亚洲国产精品精华液ab| 欧美一二三区在线| 色就色 综合激情| 国产成人免费在线观看| 秋霞影院一区二区| 亚洲一区二区欧美| 国产精品色呦呦| 欧美成人a∨高清免费观看| 日本丶国产丶欧美色综合| 国产乱子伦一区二区三区国色天香| 夜夜嗨av一区二区三区中文字幕| 久久久久一区二区三区四区| 欧美久久久久久久久| 日本精品一区二区三区高清 | 成人黄色免费短视频| 久久99国产精品免费网站| 亚洲国产一区二区三区| 亚洲女厕所小便bbb| 国产日韩欧美精品电影三级在线| 日韩欧美国产一区在线观看| 欧美视频在线一区二区三区 | 欧美三级三级三级爽爽爽| www.亚洲色图.com| 国产传媒欧美日韩成人| 国精产品一区一区三区mba视频| 婷婷亚洲久悠悠色悠在线播放| 亚洲人成网站在线| 亚洲欧洲精品成人久久奇米网| 国产三区在线成人av| 久久嫩草精品久久久精品一| 亚洲日本成人在线观看| 欧美高清在线一区| 中文字幕第一页久久| 久久久久亚洲蜜桃| 久久精品亚洲国产奇米99 | 欧美日韩国产区一| 欧美性生活影院| 欧美日韩免费观看一区二区三区| 欧美影片第一页| 欧美日韩激情一区| 日韩一区二区电影| 久久美女高清视频| 国产精品色眯眯| 亚洲天堂av一区| 亚洲尤物视频在线| 视频一区二区三区入口| 久久精品国产一区二区三区免费看| 日韩高清在线电影| 国产一二精品视频| 粉嫩久久99精品久久久久久夜| 成人激情开心网| 色婷婷一区二区三区四区| 欧美午夜片在线看| 91精品国产乱码久久蜜臀| 日韩精品一区二区三区swag | 欧美哺乳videos| 国产亚洲欧美一级| 亚洲色图在线看| 亚洲成人资源网| 久久av资源站| 99vv1com这只有精品| 欧美三级三级三级| 久久综合色8888| 国产综合成人久久大片91| 国产乱码字幕精品高清av | 欧美精品一二三| 欧美videossexotv100| 国产精品国产a| 偷窥国产亚洲免费视频| 国产成人综合在线播放| 在线观看视频欧美| 精品电影一区二区三区| 亚洲精品一卡二卡| 开心九九激情九九欧美日韩精美视频电影| 国产激情一区二区三区| 91福利精品视频| 日韩视频一区二区在线观看| 欧美在线一区二区三区| 日韩亚洲欧美综合| 国产亚洲1区2区3区| 亚洲黄色小视频| 精品一区二区久久久| 色先锋久久av资源部| 欧美电影免费观看高清完整版在线| 国产精品福利在线播放| 老司机精品视频线观看86| 99麻豆久久久国产精品免费 | 一区二区三区视频在线看| 久久成人综合网| 91福利区一区二区三区| 国产欧美va欧美不卡在线| 免费成人深夜小野草| 91碰在线视频| 国产色婷婷亚洲99精品小说| 日本怡春院一区二区| 91久久精品网| 国产精品欧美一级免费| 精品一区二区三区免费毛片爱| 欧美性感一类影片在线播放| 国产精品视频免费看| 欧美男人的天堂一二区| 精品久久人人做人人爰| 午夜精品久久久久| 91丨porny丨最新| 欧美激情在线一区二区三区| 久久不见久久见中文字幕免费| 欧美撒尿777hd撒尿| 亚洲另类在线制服丝袜| 国产91精品在线观看| 2022国产精品视频| 韩日av一区二区| 日韩精品中文字幕在线不卡尤物 | 久久精品国产精品亚洲红杏| 在线精品视频免费播放| 亚洲日本在线看| 91麻豆国产香蕉久久精品| 中文字幕欧美一| 99久久免费视频.com| 亚洲丝袜另类动漫二区| av影院午夜一区|