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

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

?? cod_ld8k.c

?? 這是g.729源碼
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):

/*
   ITU-T G.729 Speech Coder with Annex B    ANSI-C Source Code
   Version 1.3    Last modified: August 1997

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

/*-----------------------------------------------------------------*
 *   Functions Coder_ld8k and Init_Coder_ld8k                      *
 *             ~~~~~~~~~~     ~~~~~~~~~~~~~~~                      *
 *-----------------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>

#include "typedef.h"
#include "basic_op.h"
#include "ld8k.h"
#include "tab_ld8k.h"
#include "oper_32b.h"
#include "vad.h"
#include "dtx.h"
#include "sid.h"

/*-----------------------------------------------------------*
 *    Coder constant parameters (defined in "ld8k.h")        *
 *-----------------------------------------------------------*
 *   L_WINDOW    : LPC analysis window size.                 *
 *   L_NEXT      : Samples of next frame needed for autocor. *
 *   L_FRAME     : Frame size.                               *
 *   L_SUBFR     : Sub-frame size.                           *
 *   M           : LPC order.                                *
 *   MP1         : LPC order+1                               *
 *   L_TOTAL     : Total size of speech buffer.              *
 *   PIT_MIN     : Minimum pitch lag.                        *
 *   PIT_MAX     : Maximum pitch lag.                        *
 *   L_INTERPOL  : Length of filter for interpolation        *
 *-----------------------------------------------------------*/

/*--------------------------------------------------------*
 *         Static memory allocation.                      *
 *--------------------------------------------------------*/

        /* Speech vector */

 static Word16 old_speech[L_TOTAL];
 static Word16 *speech, *p_window;
 Word16 *new_speech;                    /* Global variable */

                /* Weighted speech vector */

 static Word16 old_wsp[L_FRAME+PIT_MAX];
 static Word16 *wsp;

                /* Excitation vector */

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

        /* Zero vector */

 static Word16 ai_zero[L_SUBFR+MP1];
 static Word16 *zero;

                /* Lsp (Line spectral pairs) */

 static Word16 lsp_old[M]={
                          30000, 26000, 21000, 15000, 8000, 0, -8000,-15000,-21000,-26000};
 static Word16 lsp_old_q[M];

        /* Filter's memory */

 static Word16 mem_syn[M], mem_w0[M], mem_w[M];
 static Word16 mem_err[M+L_SUBFR], *error;
 static Word16 sharp;

 /* For G.729B */
 /* DTX variables */
 static Word16 pastVad;   
 static Word16 ppastVad;
 static Word16 seed;


/*-----------------------------------------------------------------*
 *   Function  Init_Coder_ld8k                                     *
 *            ~~~~~~~~~~~~~~~                                      *
 *                                                                 *
 *  Init_Coder_ld8k(void);                                         *
 *                                                                 *
 *   ->Initialization of variables for the coder section.          *
 *       - initialize pointers to speech buffer                    *
 *       - initialize static  pointers                             *
 *       - set static vectors to zero                              *
 *                                                                 *
 *-----------------------------------------------------------------*/

void Init_Coder_ld8k(void)
{

  /*----------------------------------------------------------------------*
  *      Initialize pointers to speech vector.                            *
  *                                                                       *
  *                                                                       *
  *   |--------------------|-------------|-------------|------------|     *
  *     previous speech           sf1           sf2         L_NEXT        *
  *                                                                       *
  *   <----------------  Total speech vector (L_TOTAL)   ----------->     *
  *   <----------------  LPC analysis window (L_WINDOW)  ----------->     *
  *   |                   <-- present frame (L_FRAME) -->                 *
  * old_speech            |              <-- new speech (L_FRAME) -->     *
  * p_window              |              |                                *
  *                     speech           |                                *
  *                             new_speech                                *
  *-----------------------------------------------------------------------*/

  new_speech = old_speech + L_TOTAL - L_FRAME;         /* New speech     */
  speech     = new_speech - L_NEXT;                    /* Present frame  */
  p_window   = old_speech + L_TOTAL - L_WINDOW;        /* For LPC window */

  /* Initialize static pointers */

  wsp    = old_wsp + PIT_MAX;
  exc    = old_exc + PIT_MAX + L_INTERPOL;
  zero   = ai_zero + MP1;
  error  = mem_err + M;

  /* Static vectors to zero */

  Set_zero(old_speech, L_TOTAL);
  Set_zero(old_exc, PIT_MAX+L_INTERPOL);
  Set_zero(old_wsp, PIT_MAX);
  Set_zero(mem_syn, M);
  Set_zero(mem_w,   M);
  Set_zero(mem_w0,  M);
  Set_zero(mem_err, M);
  Set_zero(zero, L_SUBFR);
  sharp = SHARPMIN;

  /* Initialize lsp_old_q[] */
  Copy(lsp_old, lsp_old_q, M);
  Lsp_encw_reset();
  Init_exc_err();

  /* For G.729B */
  /* Initialize VAD/DTX parameters */
  pastVad = 1;
  ppastVad = 1;
  seed = INIT_SEED;
  vad_init();
  Init_lsfq_noise();

 return;
}

/*-----------------------------------------------------------------*
 *   Functions Coder_ld8k                                          *
 *            ~~~~~~~~~~                                           *
 *  Coder_ld8k(Word16 ana[], Word16 synth[]);                      *
 *                                                                 *
 *   ->Main coder function.                                        *
 *                                                                 *
 *                                                                 *
 *  Input:                                                         *
 *                                                                 *
 *   80 speech data should have been copied to vector new_speech[].*
 *   This vector is global and is declared in this function.       *
 *                                                                 *
 *  Ouputs:                                                        *
 *                                                                 *
 *    ana[]      ->analysis parameters.                            *
 *    synth[]    ->Local synthesis (for debug purpose)             *
 *                                                                 *
 *-----------------------------------------------------------------*/

void Coder_ld8k(
     Word16 ana[],      /* output  : Analysis parameters */
     Word16 synth[],    /* output  : Local synthesis     */
     Word16 frame,      /* input   : frame counter       */
     Word16 vad_enable  /* input   : VAD enable flag     */         
)
{

  /* LPC analysis */

  Word16 r_l[NP+1], r_h[NP+1];     /* Autocorrelations low and hi          */
  Word16 rc[M];                    /* Reflection coefficients.             */
  Word16 A_t[(MP1)*2];             /* A(z) unquantized for the 2 subframes */
  Word16 Aq_t[(MP1)*2];            /* A(z)   quantized for the 2 subframes */
  Word16 Ap1[MP1];                 /* A(z) with spectral expansion         */
  Word16 Ap2[MP1];                 /* A(z) with spectral expansion         */
  Word16 *A, *Aq;                  /* Pointer on A_t and Aq_t              */
  Word16 lsp_new[M], lsp_new_q[M]; /* LSPs at 2th subframe                 */
  Word16 lsf_int[M];               /* Interpolated LSF 1st subframe.       */
  Word16 lsf_new[M];
  Word16 gamma1[2], gamma2[2];     /* Weighting factor for the 2 subframes */

  /* Other vectors */

  Word16 h1[L_SUBFR];            /* Impulse response h1[]              */
  Word16 xn[L_SUBFR];            /* Target vector for pitch search     */
  Word16 xn2[L_SUBFR];           /* Target vector for codebook search  */
  Word16 code[L_SUBFR];          /* Fixed codebook excitation          */
  Word16 y1[L_SUBFR];            /* Filtered adaptive excitation       */
  Word16 y2[L_SUBFR];            /* Filtered fixed codebook excitation */
  Word16 g_coeff[4];             /* Correlations between xn & y1       */

  Word16 g_coeff_cs[5];
  Word16 exp_g_coeff_cs[5];      /* Correlations between xn, y1, & y2
                                     <y1,y1>, -2<xn,y1>,
                                          <y2,y2>, -2<xn,y2>, 2<y1,y2> */
  /* Scalars */

  Word16 i, j, k, i_subfr, i_gamma;
  Word16 T_op, T0, T0_min, T0_max, T0_frac;
  Word16 gain_pit, gain_code, index;
  Word16 temp;
  Word32 L_temp;

  /* For G.729B */
  Word16 rh_nbe[MP1];             
  Word16 lsfq_mem[MA_NP][M];
  Word16 exp_R0, Vad;
  
/*------------------------------------------------------------------------*
 *  - Perform LPC analysis:                                               *
 *       * autocorrelation + lag windowing                                *
 *       * Levinson-durbin algorithm to find a[]                          *
 *       * convert a[] to lsp[]                                           *
 *       * quantize and code the LSPs                                     *
 *       * find the interpolated LSPs and convert to a[] for the 2        *
 *         subframes (both quantized and unquantized)                     *
 *------------------------------------------------------------------------*/

  /* LP analysis */
  Autocorr(p_window, NP, r_h, r_l, &exp_R0);    /* Autocorrelations */
  Copy(r_h, rh_nbe, MP1);
  Lag_window(NP, r_h, r_l);                     /* Lag windowing    */
  Levinson(r_h, r_l, &A_t[MP1], rc, &temp);     /* Levinson Durbin  */
  Az_lsp(&A_t[MP1], lsp_new, lsp_old);          /* From A(z) to lsp */

  /* For G.729B */
  /* ------ VAD ------- */
  Lsp_lsf(lsp_new, lsf_new, M);
  vad(rc[1], lsf_new, r_h, r_l, exp_R0, p_window, frame, 
      pastVad, ppastVad, &Vad);
  Update_cng(rh_nbe, exp_R0, Vad);

  /*--------------------------------------------------------------------*
   * Find interpolated LPC parameters in all subframes (unquantized)    *
   * The interpolated parameters are in array A_t[] of size (M+1)*4     *
   *--------------------------------------------------------------------*/
  Int_lpc(lsp_old, lsp_new, lsf_int, lsf_new,  A_t);
  for (i=0; i<M; i++) lsp_old[i] = lsp_new[i];

  /*----------------------------------------------------------------------*
  * - Find the weighting factors                                         *
  *----------------------------------------------------------------------*/
  perc_var(gamma1, gamma2, lsf_int, lsf_new, rc);

 /*----------------------------------------------------------------------*
  * - Find the weighted input speech w_sp[] for the whole speech frame   *
  *----------------------------------------------------------------------*/
  Weight_Az(&A_t[0], gamma1[0], M, Ap1);
  Weight_Az(&A_t[0], gamma2[0], M, Ap2);
  Residu(Ap1, &speech[0], &wsp[0], L_SUBFR);
  Syn_filt(Ap2, &wsp[0], &wsp[0], L_SUBFR, mem_w, 1);

  Weight_Az(&A_t[MP1], gamma1[1], M, Ap1);
  Weight_Az(&A_t[MP1], gamma2[1], M, Ap2);
  Residu(Ap1, &speech[L_SUBFR], &wsp[L_SUBFR], L_SUBFR);
  Syn_filt(Ap2, &wsp[L_SUBFR], &wsp[L_SUBFR], L_SUBFR, mem_w, 1);

  /* ---------------------- */
  /* Case of Inactive frame */
  /* ---------------------- */
  
  if ((Vad == 0) && (vad_enable == 1)){
    Get_freq_prev(lsfq_mem);
    Cod_cng(exc, pastVad, lsp_old_q, Aq_t, ana, lsfq_mem, &seed);
    Update_freq_prev(lsfq_mem);
    ppastVad = pastVad;
    pastVad = Vad;

    /* UPDATE wsp, mem_w, mem_syn, mem_err, and mem_w0 */
    A  = A_t;     /* pointer to interpolated LPC parameters           */
    Aq = Aq_t;    /* pointer to interpolated quantized LPC parameters */
    i_gamma = 0;
    for(i_subfr=0; i_subfr < L_FRAME; i_subfr += L_SUBFR) {
      Weight_Az(A, gamma1[i_gamma], M, Ap1);
      Weight_Az(A, gamma2[i_gamma], M, Ap2);
      i_gamma = add(i_gamma,1);

      /* update mem_syn */
      Syn_filt(Aq, &exc[i_subfr], &synth[i_subfr], L_SUBFR, mem_syn, 1);

      /* update mem_w0 */
      for (i=0; i<L_SUBFR; i++)
        error[i] = sub(speech[i_subfr+i], synth[i_subfr+i]);
      Residu(Ap1, error, xn, L_SUBFR);
      Syn_filt(Ap2, xn, xn, L_SUBFR, mem_w0, 1);

      /* update mem_err */
      for (i = L_SUBFR-M, j = 0; i < L_SUBFR; i++, j++)
        mem_err[j] = error[i];
       
      A  += MP1;
      Aq += MP1;
    }
    
    sharp = SHARPMIN;
    
    /* Update memories for next frames */
    Copy(&old_speech[L_FRAME], &old_speech[0], L_TOTAL-L_FRAME);
    Copy(&old_wsp[L_FRAME], &old_wsp[0], PIT_MAX);
    Copy(&old_exc[L_FRAME], &old_exc[0], PIT_MAX+L_INTERPOL);
    
    return;

  }  /* End of inactive frame case */
    
  /* -------------------- */
  /* Case of Active frame */
  /* -------------------- */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久久久久久| 欧美一级久久久| 蜜臀久久久99精品久久久久久| 中文字幕色av一区二区三区| 久久久久久久久97黄色工厂| 久久综合九色综合97婷婷女人| 精品美女在线播放| 欧美va亚洲va国产综合| 精品奇米国产一区二区三区| 欧美成人一级视频| 久久色在线视频| 国产欧美一区二区三区在线看蜜臀| 久久免费看少妇高潮| 国产农村妇女精品| 最新久久zyz资源站| 最新国产精品久久精品| 亚洲综合小说图片| 男女男精品网站| 国产精品白丝av| 成人高清免费观看| 欧美午夜精品免费| 欧美成人video| 中文字幕av资源一区| 一区二区三区成人| 毛片av一区二区| 国产91清纯白嫩初高中在线观看| 成人高清免费在线播放| 欧美无人高清视频在线观看| 日韩亚洲欧美中文三级| 日本一区二区三区四区在线视频 | 中文字幕在线一区二区三区| 国产精品成人免费| 三级一区在线视频先锋| 国产成人综合精品三级| 欧美午夜寂寞影院| 久久久久久亚洲综合影院红桃| 亚洲女与黑人做爰| 捆绑紧缚一区二区三区视频| 99国产精品久| 欧美成人综合网站| 亚洲综合色视频| 激情小说欧美图片| 在线观看日韩精品| 国产女人18水真多18精品一级做 | 欧美一区二区视频免费观看| 国产日韩欧美麻豆| 日韩不卡一二三区| 97久久精品人人做人人爽 | www激情久久| 亚洲一区二区三区不卡国产欧美| 国产一区二区福利| 欧美欧美欧美欧美首页| 亚洲欧美在线高清| 国产精品一级片| 欧美一级理论片| 亚洲最快最全在线视频| 不卡欧美aaaaa| 久久美女艺术照精彩视频福利播放 | 久久精子c满五个校花| 午夜精品久久久久久久蜜桃app| 懂色av一区二区夜夜嗨| 日韩精品影音先锋| 五月婷婷激情综合网| 色综合激情久久| 国产精品的网站| 成人深夜视频在线观看| 久久综合色婷婷| 麻豆精品久久久| 欧美一级久久久久久久大片| 午夜精品福利视频网站| 欧美日韩一区二区不卡| 亚洲一区免费观看| 欧美私人免费视频| 尤物av一区二区| 一本久久精品一区二区| 亚洲视频在线一区| 一本到一区二区三区| 亚洲欧美日韩一区| 色综合色狠狠天天综合色| 国产精品福利一区| 99re视频这里只有精品| 亚洲人成在线观看一区二区| 91视频在线观看| 亚洲永久免费av| 欧美日韩国产综合久久| 天堂va蜜桃一区二区三区| 久久久精品日韩欧美| 国产专区欧美精品| 中文字幕av一区二区三区高| 成人激情校园春色| 亚洲黄色小视频| 884aa四虎影成人精品一区| 天堂在线亚洲视频| 欧美xingq一区二区| 成人免费黄色在线| 亚洲精品ww久久久久久p站| 欧洲av一区二区嗯嗯嗯啊| 日日夜夜免费精品视频| 精品sm在线观看| 99视频热这里只有精品免费| 亚洲国产精品久久艾草纯爱| 日韩一区二区三区视频在线观看| 精品一区二区在线播放| 国产精品白丝在线| 欧美性大战久久| 激情伊人五月天久久综合| 日韩理论片中文av| 欧美一级淫片007| 高清在线成人网| 亚洲va韩国va欧美va精品| 国产亚洲自拍一区| 色狠狠色狠狠综合| 久久av中文字幕片| 亚洲色图第一区| 亚洲精品在线网站| 欧美午夜寂寞影院| 国产99久久久国产精品| 亚洲成va人在线观看| 久久久久久久综合色一本| 欧洲国内综合视频| 国产成人在线色| 视频一区中文字幕| 亚洲精品视频一区二区| 精品嫩草影院久久| 在线精品视频免费播放| 国产精品一区免费视频| 日韩高清国产一区在线| 亚洲欧洲成人自拍| 久久人人97超碰com| 欧美另类高清zo欧美| 99久久精品免费看| 国产一区视频导航| 五月激情综合网| 亚洲欧美色图小说| 中文字幕电影一区| 欧美精品一区视频| 欧美一区二区三区在线观看| 91国产免费看| 91香蕉视频污| 成人网男人的天堂| 国产精品1区2区| 国产综合色精品一区二区三区| 午夜精品久久久久久久99樱桃| 亚洲色大成网站www久久九九| 久久噜噜亚洲综合| 欧美草草影院在线视频| 欧美日本高清视频在线观看| 欧洲av在线精品| 欧美日韩国产高清一区| 欧美亚洲综合在线| 在线观看三级视频欧美| 在线观看欧美日本| 欧美在线色视频| 欧日韩精品视频| 在线观看免费一区| 欧美三级蜜桃2在线观看| 欧美午夜电影网| 欧美日韩国产123区| 91精品国产综合久久国产大片| 欧美人狂配大交3d怪物一区| 欧美精品久久久久久久多人混战| 欧美日韩一区精品| 欧美国产日韩亚洲一区| 国产日韩欧美精品一区| 国产亲近乱来精品视频| 国产精品无圣光一区二区| 中文字幕一区二| 亚洲精品中文在线| 天使萌一区二区三区免费观看| 三级一区在线视频先锋 | 国产成人av电影在线观看| 国产精品99久久久久久有的能看| 国产成人亚洲综合a∨婷婷| 成人一区二区三区视频在线观看| 不卡一区在线观看| 欧美日韩一二区| 精品国产免费人成电影在线观看四季| 精品国产乱码久久久久久蜜臀| 国产日韩av一区| 悠悠色在线精品| 精品一区二区三区免费观看| 国产高清视频一区| 91福利国产成人精品照片| 日韩亚洲欧美一区二区三区| 国产日韩av一区二区| 亚洲国产综合在线| 国产一区二区免费看| 色伊人久久综合中文字幕| 欧美一区二区视频在线观看 | 在线观看欧美黄色| 日韩欧美精品在线视频| 国产精品三级av| 天堂久久久久va久久久久| 国产成人免费网站| 欧美在线啊v一区| 国产视频911| 五月激情六月综合| 99久久久久久99| 精品国产一二三| 香蕉乱码成人久久天堂爱免费|