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

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

?? dec_lpc.c

?? Linux 影片撥放解碼 Video DVD
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
 *===================================================================
 *  3GPP AMR Wideband Floating-point Speech Codec
 *===================================================================
 */
#include "typedef.h"
#include "dec_util.h"

#define M            16             /* Order of LP filter                  */
#define MP1          (M + 1)
#define M16k         20
#define NC16k        (M16k / 2)
#define MU           10923          /* Prediction factor (1.0/3.0) in Q15  */
#define L_MEANBUF    3
#define ALPHA        29491          /* 0. 9 in Q15                         */
#define ONE_ALPHA    (32768-ALPHA)  /* (1.0 - ALPHA) in Q15                */
#define ORDER        16             /* order of linear prediction filter   */
#define ISF_GAP      128            /* 50 Hz */
#define INV_LENGTH   2731           /* 1/12                                */

extern const Word16 D_ROM_dico1_isf[];
extern const Word16 D_ROM_dico2_isf[];
extern const Word16 D_ROM_dico21_isf_36b[];
extern const Word16 D_ROM_dico22_isf_36b[];
extern const Word16 D_ROM_dico23_isf_36b[];
extern const Word16 D_ROM_dico21_isf[];
extern const Word16 D_ROM_dico22_isf[];
extern const Word16 D_ROM_dico23_isf[];
extern const Word16 D_ROM_dico24_isf[];
extern const Word16 D_ROM_dico25_isf[];
extern const Word16 D_ROM_dico1_isf_noise[];
extern const Word16 D_ROM_dico2_isf_noise[];
extern const Word16 D_ROM_dico3_isf_noise[];
extern const Word16 D_ROM_dico4_isf_noise[];
extern const Word16 D_ROM_dico5_isf_noise[];
extern const Word16 D_ROM_mean_isf[];
extern const Word16 D_ROM_mean_isf_noise[];
extern const Word16 D_ROM_cos[];


/*
 * D_LPC_isf_reorder
 *
 * Parameters:
 *    isf          I/O: vector of isfs
 *    min_dist       I: quantized ISFs (in frequency domain)
 *    n              I: LPC order
 *
 * Function:
 *    To make sure that the  isfs are properly order and to keep a certain
 *    minimum distance between consecutive isfs.
 *
 * Returns:
 *    void
 */
static void D_LPC_isf_reorder(Word16 *isf, Word16 min_dist, Word16 n)
{
   Word32 i, isf_min;

   isf_min = min_dist;

   for(i = 0; i < n - 1; i++)
   {
      if(isf[i] < isf_min)
      {
         isf[i] = (Word16)isf_min;
      }
      isf_min = isf[i] + min_dist;
   }

   return;
}


/*
 * D_LPC_isf_noise_d
 *
 * Parameters:
 *    indice         I: indices of the selected codebook entries
 *    isf_q          O: quantized ISFs (in frequency domain)
 *
 * Function:
 *    Decoding of ISF parameters
 *
 * Returns:
 *    void
 */
void D_LPC_isf_noise_d(Word16 *indice, Word16 *isf_q)
{
   Word32 i;

   for(i = 0; i < 2; i++)
   {
      isf_q[i] = D_ROM_dico1_isf_noise[indice[0] * 2 + i];
   }

   for(i = 0; i < 3; i++)
   {
      isf_q[i + 2] = D_ROM_dico2_isf_noise[indice[1] * 3 + i];
   }

   for(i = 0; i < 3; i++)
   {
      isf_q[i + 5] = D_ROM_dico3_isf_noise[indice[2] * 3 + i];
   }

   for(i = 0; i < 4; i++)
   {
      isf_q[i + 8] = D_ROM_dico4_isf_noise[indice[3] * 4 + i];
   }

   for(i = 0; i < 4; i++)
   {
      isf_q[i + 12] = D_ROM_dico5_isf_noise[indice[4] * 4 + i];
   }

   for(i = 0; i < ORDER; i++)
   {
      isf_q[i] = (Word16)(isf_q[i]+ D_ROM_mean_isf_noise[i]);
   }

   D_LPC_isf_reorder(isf_q, ISF_GAP, ORDER);

   return;
}


/*
 * D_LPC_isf_isp_conversion
 *
 * Parameters:
 *    isp            O: (Q15) isp[m] (range: -1<=val<1)
 *    isf            I: (Q15) isf[m] normalized (range: 0.0 <= val <= 0.5)
 *    m              I: LPC order
 *
 * Function:
 *    Transformation isf to isp
 *
 *    ISP are immitance spectral pair in cosine domain (-1 to 1).
 *    ISF are immitance spectral pair in frequency domain (0 to 6400).
 * Returns:
 *    void
 */
void D_LPC_isf_isp_conversion(Word16 isf[], Word16 isp[], Word16 m)
{
   Word32 i, ind, offset, tmp;

   for(i = 0; i < m - 1; i++)
   {
      isp[i] = isf[i];
   }
   isp[m - 1] = (Word16)(isf[m - 1] << 1);

   for(i = 0; i < m; i++)
   {
      ind = isp[i] >> 7;         /* ind = b7-b15 of isf[i]     */
      offset = isp[i] & 0x007f;  /* offset = b0-b6 of isf[i]   */

      /* isp[i] = table[ind]+ ((table[ind+1]-table[ind])*offset) / 128 */
      tmp = (D_ROM_cos[ind + 1] - D_ROM_cos[ind]) * offset;
      isp[i] = (Word16)(D_ROM_cos[ind] + (tmp >> 7));
   }
   return;
}


/*
 * D_LPC_isp_pol_get
 *
 * Parameters:
 *    isp            I: Immitance spectral pairs (cosine domaine)
 *    f              O: the coefficients of F1 or F2
 *    n              I: no of coefficients (m/2)
 *    k16            I: 16k flag
 *
 * Function:
 *    Find the polynomial F1(z) or F2(z) from the ISPs.
 *    This is performed by expanding the product polynomials:
 *
 *    F1(z) =   product   ( 1 - 2 isp_i z^-1 + z^-2 )
 *            i=0,2,4,6,8
 *    F2(z) =   product   ( 1 - 2 isp_i z^-1 + z^-2 )
 *             i=1,3,5,7
 *
 *    where isp_i are the ISPs in the cosine domain.
 *
 * Returns:
 *    void
 */
static void D_LPC_isp_pol_get(Word16 *isp, Word32 *f, Word32 n, Word16 k16)
{
   Word32 i, j, t0, s1, s2;
   Word16 hi, lo;

   s1 = 8388608;
   s2 = 512;

   if(k16)
   {
      s1 >>= 2;
      s2 >>= 2;
   }

   /* All computation in Q23 */
   f[0] = s1;              /* f[0] = 1.0; in Q23         */
   f[1] = isp[0] * (-s2);  /* f[1] = -2.0*isp[0] in Q23  */
   f += 2;                 /* Advance f pointer          */
   isp += 2;               /* Advance isp pointer        */

   for(i = 2; i <= n; i++)
   {
      *f = f[ - 2];

      for(j = 1; j < i; j++, f--)
      {
         D_UTIL_l_extract(f[- 1], &hi, &lo);
         t0 = D_UTIL_mpy_32_16(hi, lo, *isp);   /* t0 = f[-1] * isp */
         t0 = (t0 << 1);
         *f = (*f - t0);         /* *f -= t0    */
         *f = (*f + f[ - 2]);    /* *f += f[-2] */
      }

      *f = *f - (*isp * s2);     /* *f -= isp << 8 */
      f += i;     /* Advance f pointer   */
      isp += 2;   /* Advance isp pointer */
   }

   return;
}


/*
 * D_LPC_isp_a_conversion
 *
 * Parameters:
 *    isp            I: (Q15) Immittance spectral pairs
 *    a              O: (Q12) Predictor coefficients (order = M)
 *    m              I: order of LP filter
 *
 * Function:
 *    Convert ISPs to predictor coefficients a[]
 *
 * Returns:
 *    void
 */
void D_LPC_isp_a_conversion(Word16 isp[], Word16 a[], Word16 m)
{
   Word32 j, i, nc;
   Word32 f1[NC16k + 1], f2[NC16k];
   Word32 t0;
   Word16 hi, lo;

   nc = m >> 1;

   if(nc > 8)
   {
      D_LPC_isp_pol_get(&isp[0], f1, nc, 1);

      for(i = 0; i <= nc; i++)
      {
         f1[i] = (f1[i] << 2);
      }
   }
   else
   {
      D_LPC_isp_pol_get(&isp[0], f1, nc, 0);
   }

   if(nc > 8)
   {
      D_LPC_isp_pol_get(&isp[1], f2, nc - 1, 1);

      for(i = 0; i <= nc - 1; i++)
      {
         f2[i] = (f2[i] << 2);
      }
   }
   else
   {
      D_LPC_isp_pol_get(&isp[1], f2, nc - 1, 0);
   }

   /*
    *  Multiply F2(z) by (1 - z^-2)
    */
   for(i = nc - 1; i > 1; i--)
   {
      f2[i] = f2[i] - f2[i - 2];   /* f2[i] -= f2[i-2]; */
   }

   /*
    *  Scale F1(z) by (1+isp[m-1]) and F2(z) by (1-isp[m-1])
    */
   for(i = 0; i < nc; i++)
   {
      /* f1[i] *= (1.0 + isp[M-1]); */
      D_UTIL_l_extract(f1[i], &hi, &lo);
      t0 = D_UTIL_mpy_32_16(hi, lo, isp[m - 1]);
      f1[i] = f1[i] + t0;

      /* f2[i] *= (1.0 - isp[M-1]); */
      D_UTIL_l_extract(f2[i], &hi, &lo);
      t0 = D_UTIL_mpy_32_16(hi, lo, isp[m - 1]);
      f2[i] = f2[i] - t0;
   }

   /*
    *  A(z) = (F1(z)+F2(z))/2
    *  F1(z) is symmetric and F2(z) is antisymmetric
    */

   /* a[0] = 1.0; */
   a[0] = 4096;

   for(i = 1, j = m - 1; i < nc; i++, j--)
   {
      /* a[i] = 0.5*(f1[i] + f2[i]); */
      t0 = f1[i] + f2[i];   /* f1[i] + f2[i] */
      a[i] = (Word16)((t0 + 0x800) >> 12);   /* from Q23 to Q12 and * 0.5 */

      /* a[j] = 0.5*(f1[i] - f2[i]); */
      t0 = (f1[i] - f2[i]);   /* f1[i] - f2[i] */
      a[j] = (Word16)((t0 + 0x800) >> 12);   /* from Q23 to Q12 and * 0.5 */
   }

   /* a[NC] = 0.5*f1[NC]*(1.0 + isp[M-1]); */
   D_UTIL_l_extract(f1[nc], &hi, &lo);
   t0 = D_UTIL_mpy_32_16(hi, lo, isp[m - 1]);
   t0 = (f1[nc] + t0);
   a[nc] = (Word16)((t0 + 0x800) >> 12);  /* from Q23 to Q12 and * 0.5 */

   /* a[m] = isp[m-1]; */
   a[m] = (Word16)((isp[m - 1] + 0x4) >> 3); /* from Q15 to Q12 */

   return;
}


/*
 * D_LPC_a_weight
 *
 * Parameters:
 *    a              I: LP filter coefficients
 *    ap             O: weighted LP filter coefficients
 *    gamma          I: weighting factor
 *    m              I: order of LP filter
 *
 * Function:
 *    Weighting of LP filter coefficients, ap[i] = a[i] * (gamma^i).
 *
 * Returns:
 *    void
 */
void D_LPC_a_weight(Word16 a[], Word16 ap[], Word16 gamma, Word16 m)
{
   Word32 i, fac;

   ap[0] = a[0];
   fac = gamma;

   for(i = 1; i < m; i++)
   {
      ap[i] = (Word16)(((a[i] * fac) + 0x4000) >> 15);
      fac = ((fac * gamma)  + 0x4000) >> 15;
   }

   ap[m] = (Word16)(((a[m] * fac) + 0x4000) >> 15);

   return;
}


/*
 * D_LPC_isf_2s3s_decode
 *
 * Parameters:
 *    indice            I: quantisation indices
 *    isf_q             O: quantised ISFs in the cosine domain
 *    past_isfq       I/O: past ISF quantizer
 *    isfold            I: past quantised ISF
 *    isf_buf           O: isf buffer
 *    bfi               I: Bad frame indicator
 *
 * Function:
 *    Decoding of ISF parameters.
 *
 * Returns:
 *    void
 */
void D_LPC_isf_2s3s_decode(Word16 *indice, Word16 *isf_q, Word16 *past_isfq,
                           Word16 *isfold, Word16 *isf_buf, Word16 bfi)
{

   Word32 ref_isf[M];
   Word32 L_tmp, i, j;
   Word16 tmp;

   if(bfi == 0) /* Good frame */
   {
      for(i = 0; i < 9; i++)
      {
         isf_q[i] = D_ROM_dico1_isf[indice[0] * 9 + i];
      }

      for(i = 0; i < 7; i++)
      {
         isf_q[i + 9] = D_ROM_dico2_isf[indice[1] * 7 + i];
      }

      for(i = 0; i < 5; i++)
      {
         isf_q[i] =
            (Word16)(isf_q[i] + D_ROM_dico21_isf_36b[indice[2] * 5 + i]);
      }

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情在线观看视频免费| 中文字幕av一区二区三区高| 日本一区二区高清| 亚洲综合清纯丝袜自拍| 久久久久久久综合日本| 国产午夜精品理论片a级大结局| 精品美女被调教视频大全网站| 欧美片在线播放| 亚洲视频你懂的| 91麻豆精品91久久久久久清纯 | 久久国产精品第一页| 免费国产亚洲视频| 成人久久18免费网站麻豆| 色综合天天狠狠| 欧美少妇bbb| 精品一区二区久久久| 欧美精品三级在线观看| 国产精品乱码妇女bbbb| 亚洲成av人**亚洲成av**| 亚洲精品videosex极品| 99精品久久只有精品| 日韩一二三区不卡| 婷婷国产在线综合| 欧洲亚洲精品在线| 亚洲欧洲美洲综合色网| 成人高清免费观看| 国产精品久久午夜| 色综合色狠狠综合色| 欧美一卡二卡三卡| 日韩电影在线免费看| 在线综合亚洲欧美在线视频| 午夜国产不卡在线观看视频| 色欧美片视频在线观看在线视频| 26uuu国产日韩综合| 国产在线一区二区| 色婷婷久久久综合中文字幕| 一区二区三区中文免费| 成人一区二区视频| 国产三级精品三级在线专区| 色综合激情久久| 亚瑟在线精品视频| 久久精子c满五个校花| 国产成a人亚洲| 国产传媒日韩欧美成人| 精品一区二区三区在线观看国产 | 视频一区二区中文字幕| 欧美色倩网站大全免费| 洋洋av久久久久久久一区| 懂色av一区二区夜夜嗨| 日本不卡一二三| 欧美一区二区三区人| 97国产一区二区| 香蕉影视欧美成人| 精品日韩99亚洲| 激情欧美一区二区| 最新热久久免费视频| 色偷偷久久一区二区三区| 午夜精品久久久久久久99樱桃| 欧美老人xxxx18| 成人av在线播放网站| 偷拍日韩校园综合在线| 一区二区三区四区激情| 4438成人网| 在线精品视频小说1| 亚洲一区二区三区精品在线| 久久久一区二区三区捆绑**| 久久久精品国产免费观看同学| 91久久久免费一区二区| 免费在线成人网| 粉嫩av亚洲一区二区图片| 激情综合网天天干| 婷婷国产在线综合| 亚洲视频在线一区| 国产精品家庭影院| 久久综合九色综合欧美就去吻| 26uuu国产在线精品一区二区| 精品国产精品网麻豆系列| 国产日本一区二区| 久久亚洲一级片| 欧美福利视频一区| 欧美亚洲动漫精品| 精品视频在线看| 欧美色精品天天在线观看视频| 视频一区视频二区中文字幕| 一区二区三区在线影院| 亚洲视频 欧洲视频| 中文字幕在线观看不卡| 国产精品理论在线观看| 国产精品欧美综合在线| 国产精品色眯眯| 一区二区三区日韩欧美| 欧美激情中文字幕| 亚洲一级二级三级| 亚洲一区二区三区精品在线| 国产精品一区二区x88av| 精品国产污污免费网站入口| 亚洲国产精品久久久久秋霞影院| 狠狠色丁香久久婷婷综合丁香| 国产激情视频一区二区三区欧美 | 亚洲成av人片在线| 视频一区二区中文字幕| 激情另类小说区图片区视频区| 波多野结衣在线aⅴ中文字幕不卡| 在线欧美日韩国产| 欧美日韩视频不卡| 一区二区三区在线观看欧美| 91网站黄www| 久久久亚洲精品石原莉奈| 亚洲一区二区视频在线| 色悠悠久久综合| 成人免费一区二区三区视频 | 国产精品一区二区在线播放| 91视视频在线观看入口直接观看www| 久久久久久久一区| 免费观看成人鲁鲁鲁鲁鲁视频| 国产成人综合在线观看| 日韩欧美一区在线观看| 欧美激情在线看| 日韩制服丝袜av| 欧美日韩亚洲不卡| 亚洲va韩国va欧美va精品| 久久99久久99| 91精品福利视频| 亚洲午夜免费福利视频| 日本福利一区二区| 国产精品福利一区二区三区| 成人午夜视频免费看| 7799精品视频| 毛片av中文字幕一区二区| 色天使色偷偷av一区二区 | 精品在线免费观看| 91老师国产黑色丝袜在线| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 国产人伦精品一区二区| 国产二区国产一区在线观看| 亚洲男人的天堂在线aⅴ视频 | 欧美乱妇23p| 国产精品久久久久永久免费观看| 国产一区二区在线电影| 精品国产乱码久久久久久牛牛 | 亚洲影院免费观看| 欧美电影免费观看高清完整版| 国产91精品露脸国语对白| 欧美—级在线免费片| 欧美午夜寂寞影院| 久久成人麻豆午夜电影| 亚洲午夜精品在线| 26uuu另类欧美亚洲曰本| 国产精品18久久久久| 一区二区免费在线| 欧美片在线播放| 国产成人av电影免费在线观看| 麻豆国产欧美日韩综合精品二区 | 亚洲一区二区三区四区在线免费观看 | 99久久精品免费看国产 | 91精品国产综合久久久久久漫画 | 夜夜精品浪潮av一区二区三区| 欧美日韩精品是欧美日韩精品| 一区二区三区高清在线| 亚洲影院免费观看| 国产精品福利影院| 国产精品短视频| 国产精品成人在线观看| www国产成人免费观看视频 深夜成人网| 欧美久久一区二区| 91在线视频免费91| 成人午夜av在线| av电影在线不卡| 高清久久久久久| 丝袜诱惑亚洲看片| 午夜精品久久久久久久久久久| 一区二区在线观看视频| 日韩专区在线视频| 亚洲成人先锋电影| 亚洲国产成人av网| 亚洲123区在线观看| 天涯成人国产亚洲精品一区av| 麻豆91精品视频| 91捆绑美女网站| 久久综合九色综合97婷婷女人| 国产日韩欧美一区二区三区乱码 | 国产精品视频一二三| 欧美国产日产图区| 亚洲人123区| 国产黄人亚洲片| 7878成人国产在线观看| 亚洲国产精品t66y| 国产麻豆一精品一av一免费 | 欧美日韩1区2区| 久久久国产一区二区三区四区小说| 欧美久久一二三四区| 26uuu精品一区二区三区四区在线| 欧美一区二区网站| 亚洲精品国产精品乱码不99| 日精品一区二区| 成人福利视频网站| 91精品国产色综合久久久蜜香臀| 国产欧美一区二区三区沐欲 | 一区二区三区加勒比av| av在线不卡网|