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

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

?? dec_lpc.c

?? Linux 影片撥放解碼 Video DVD
?? C
?? 第 1 頁 / 共 2 頁
字號:
         isf_q[i + 5] =
            (Word16)(isf_q[i + 5] + D_ROM_dico22_isf_36b[indice[3] * 4 + i]);
      }

      for(i = 0; i < 7; i++)
      {
         isf_q[i + 9] =
            (Word16)(isf_q[i + 9] + D_ROM_dico23_isf_36b[indice[4] * 7 + i]);
      }

      for(i = 0; i < ORDER; i++)
      {
         tmp = isf_q[i];
         isf_q[i] =
            (Word16)((tmp + D_ROM_mean_isf[i]) + ((MU * past_isfq[i]) >> 15));
         past_isfq[i] = tmp;
      }

      for(i = 0; i < M; i++)
      {
         for(j = (L_MEANBUF - 1); j > 0; j--)
         {
            isf_buf[j * M + i] = isf_buf[(j - 1) * M + i];
         }
         isf_buf[i] = isf_q[i];
      }

   }
   else
   {   /* bad frame */

      for(i = 0; i < M; i++)
      {
         L_tmp = D_ROM_mean_isf[i];

         for(j = 0; j < L_MEANBUF; j++)
         {
            L_tmp = L_tmp + isf_buf[j * M + i];
         }
         ref_isf[i] = (L_tmp + 0x1) >> 2;
      }

      /* use the past ISFs slightly shifted towards their mean */
      for(i = 0; i < ORDER; i++)
      {
         isf_q[i] = (Word16)((((ALPHA * isfold[i]) >> 15) +
            ((ONE_ALPHA * ref_isf[i]) >> 15)));
      }

      /* estimate past quantized residual to be used in next frame */
      for(i = 0; i < ORDER; i++)
      {
         /* predicted ISF */
         L_tmp = ref_isf[i] + ((past_isfq[i] * MU) >> 15);
         /* past_isfq[i] *= 0.5 */
         past_isfq[i] = (Word16)((isf_q[i] - L_tmp) >> 1);
      }
   }

   D_LPC_isf_reorder(isf_q, ISF_GAP, ORDER);

   return;
}


/*
 * D_LPC_isf_2s5s_decode
 *
 * Parameters:
 *    indice            I: quantization indices
 *    isf_q             O: quantized ISFs in the cosine domain
 *    past_isfq       I/O: past ISF quantizer
 *    isfold            I: past quantized ISF
 *    isf_buf           O: isf buffer
 *    bfi               I: Bad frame indicator
 *
 * Function:
 *    Decoding of ISF parameters.
 *
 * Returns:
 *    void
 */
void D_LPC_isf_2s5s_decode(Word16 *indice, Word16 *isf_q, Word16 *past_isfq,
                           Word16 *isfold, Word16 *isf_buf, Word16 bfi)
{
   Word32 ref_isf[M];
   Word32 i, j, L_tmp;
   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 < 3; i++)
      {
         isf_q[i] = (Word16)(isf_q[i] + D_ROM_dico21_isf[indice[2] * 3 + i]);
      }

      for(i = 0; i < 3; i++)
      {
         isf_q[i + 3] =
            (Word16)(isf_q[i + 3] + D_ROM_dico22_isf[indice[3] * 3 + i]);
      }

      for(i = 0; i < 3; i++)
      {
         isf_q[i + 6] =
            (Word16)(isf_q[i + 6] + D_ROM_dico23_isf[indice[4] * 3 + i]);
      }

      for(i = 0; i < 3; i++)
      {
         isf_q[i + 9] =
            (Word16)(isf_q[i + 9] + D_ROM_dico24_isf[indice[5] * 3 + i]);
      }

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

      for(i = 0; i < ORDER; i++)
      {
         tmp = isf_q[i];
         isf_q[i] =
            (Word16)((tmp + D_ROM_mean_isf[i]) + ((MU * past_isfq[i]) >> 15));
         past_isfq[i] = tmp;
      }


      for(i = 0; i < M; i++)
      {
         for(j = (L_MEANBUF - 1); j > 0; j--)
         {
            isf_buf[j * M + i] = isf_buf[(j - 1) * M + i];
         }
         isf_buf[i] = isf_q[i];
      }

   }
   else
   {   /* bad frame */

      for(i = 0; i < M; i++)
      {
         L_tmp = D_ROM_mean_isf[i];

         for(j = 0; j < L_MEANBUF; j++)
         {
            L_tmp = L_tmp + isf_buf[j * M + i];
         }

         ref_isf[i] = (L_tmp + 0x1) >> 2;
      }

      /* use the past ISFs slightly shifted towards their mean */
      for(i = 0; i < ORDER; i++)
      {
         isf_q[i] = (Word16)(((ALPHA * isfold[i]) >> 15) +
            ((ONE_ALPHA * ref_isf[i]) >> 15));
      }

      /* estimate past quantized residual to be used in next frame */
      for(i = 0; i < ORDER; i++)
      {
         /* predicted ISF */
         L_tmp = ref_isf[i] + ((past_isfq[i] * MU) >> 15);
         /* past_isfq[i] *= 0.5 */
         past_isfq[i] = (Word16)((isf_q[i] - L_tmp) >> 1);
      }
   }

   D_LPC_isf_reorder(isf_q, ISF_GAP, ORDER);

   return;
}


/*
 * D_LPC_int_isp_find
 *
 * Parameters:
 *    isp_old           I: isps from past frame
 *    isp_new           I: isps from present frame
 *    frac              I: (Q15) fraction for 3 first subfr
 *    Az                O: LP coefficients in 4 subframes
 *
 * Function:
 *    Find the interpolated ISP parameters for all subframes.
 *
 * Returns:
 *    void
 */
void D_LPC_int_isp_find(Word16 isp_old[], Word16 isp_new[],
                        const Word16 frac[], Word16 Az[])
{
   Word32 tmp, i, k, fac_old, fac_new;
   Word16 isp[M];

   for(k = 0; k < 3; k++)
   {
      fac_new = frac[k];
      fac_old = (32767 - fac_new) + 1;   /* 1.0 - fac_new */

      for(i = 0; i < M; i++)
      {
         tmp = isp_old[i] * fac_old;
         tmp += isp_new[i] * fac_new;
         isp[i] = (Word16)((tmp + 0x4000) >> 15);
      }

      D_LPC_isp_a_conversion(isp, Az, M);
      Az += MP1;
   }

   /* 4th subframe: isp_new (frac=1.0) */
   D_LPC_isp_a_conversion(isp_new, Az, M);

   return;
}


/*
 * D_LPC_isf_extrapolation
 *
 * Parameters:
 *    HfIsf          I/O: ISF vector
 *
 * Function:
 *    Conversion of 16th-order 12.8kHz ISF vector
 *    into 20th-order 16kHz ISF vector
 *
 * Returns:
 *    void
 */
void D_LPC_isf_extrapolation(Word16 HfIsf[])
{
   Word32 IsfDiff[M - 2];
   Word32 IsfCorr[3];
   Word32 tmp, tmp2, tmp3, mean, i;
   Word32 MaxCorr, exp, exp2, coeff;
   Word16 hi, lo;

   HfIsf[M16k - 1] = HfIsf[M - 1];

   /* Difference vector */
   for(i = 1; i < M - 1; i++)
   {
      IsfDiff[i - 1] = HfIsf[i] - HfIsf[i - 1];
   }

   tmp = 0;

   /* Mean of difference vector */
   for(i = 3; i < (M - 1); i++)
   {
      tmp = tmp + (IsfDiff[i - 1] * INV_LENGTH);
   }

   mean = (tmp + 0x4000) >> 15;
   IsfCorr[0] = 0;
   IsfCorr[1] = 0;
   IsfCorr[2] = 0;
   tmp = 0;

   for(i = 0; i < M - 2; i++)
   {
      if(IsfDiff[i] > tmp)
      {
         tmp = IsfDiff[i];
      }
   }

   exp = D_UTIL_norm_s((Word16)tmp);

   for(i = 0; i < M - 2; i++)
   {
      IsfDiff[i] = IsfDiff[i] << exp;
   }

   mean = mean << exp;

   for(i = 7; i < M - 2; i++)
   {
      tmp2 = IsfDiff[i] - mean;
      tmp3 = IsfDiff[i - 2] - mean;
      tmp = (tmp2 * tmp3) << 1;
      D_UTIL_l_extract(tmp, &hi, &lo);
      tmp = D_UTIL_mpy_32(hi, lo, hi, lo);
      IsfCorr[0] = (IsfCorr[0] + tmp);
   }

   for(i = 7; i < M - 2; i++)
   {
      tmp2 = IsfDiff[i] - mean;
      tmp3 = IsfDiff[i - 3] - mean;
      tmp = (tmp2 * tmp3) << 1;
      D_UTIL_l_extract(tmp, &hi, &lo);
      tmp = D_UTIL_mpy_32(hi, lo, hi, lo);
      IsfCorr[1] = (IsfCorr[1] + tmp);
   }

   for(i = 7; i < M - 2; i++)
   {
      tmp2 = IsfDiff[i] - mean;
      tmp3 = IsfDiff[i - 4] - mean;
      tmp = (tmp2 * tmp3) << 1;
      D_UTIL_l_extract(tmp, &hi, &lo);
      tmp = D_UTIL_mpy_32(hi, lo, hi, lo);
      IsfCorr[2] = (IsfCorr[2] + tmp);
   }

   if(IsfCorr[0] > IsfCorr[1])
   {
      MaxCorr = 0;
   }
   else
   {
      MaxCorr = 1;
   }

   if(IsfCorr[2] > IsfCorr[MaxCorr])
   {
      MaxCorr = 2;
   }

   MaxCorr = MaxCorr + 1;   /* Maximum correlation of difference vector */

   for(i = M - 1; i < (M16k - 1); i++)
   {
      tmp = (HfIsf[i - 1 - MaxCorr] - HfIsf[i - 2 - MaxCorr]);
      HfIsf[i] = (Word16)(HfIsf[i - 1] + tmp);
   }

   /* tmp=7965+(HfIsf[2]-HfIsf[3]-HfIsf[4])/6; */
   tmp = HfIsf[4] + HfIsf[3];
   tmp = HfIsf[2] - tmp;
   tmp = (tmp * 5461) >> 15;
   tmp = tmp + 20390;

   if(tmp > 19456)
   {   /* Maximum value of ISF should be at most 7600 Hz */
      tmp = 19456;
   }

   tmp = tmp - HfIsf[M - 2];
   tmp2 = HfIsf[M16k - 2] - HfIsf[M - 2];
   exp2 = D_UTIL_norm_s((Word16)tmp2);
   exp = D_UTIL_norm_s((Word16)tmp);
   exp = exp - 1;
   tmp = tmp << exp;
   tmp2 = tmp2 << exp2;
   coeff = (tmp << 15) / tmp2;   /* Coefficient for stretching the ISF vector */
   exp = exp2 - exp;

   if(exp >= 0)
   {
      for(i = M - 1; i < M16k - 1; i++)
      {
         tmp = ((HfIsf[i] - HfIsf[i - 1]) * coeff) >> 15;
         IsfDiff[i - (M - 1)] = tmp << exp;
      }
   }
   else
   {
      exp = 15 - exp;

      for(i = M - 1; i < M16k - 1; i++)
      {
         IsfDiff[i - (M - 1)] = ((HfIsf[i] - HfIsf[i - 1]) * coeff) >> exp;
      }
   }

   for(i = M; i < (M16k - 1); i++)
   {
      /* The difference between ISF(n) and ISF(n-2) should be at least 500 Hz */
      tmp = ((IsfDiff[i - (M - 1)] + IsfDiff[i - M]) - 1280);

      if(tmp < 0)
      {
         if(IsfDiff[i - (M - 1)] > IsfDiff[i - M])
         {
            IsfDiff[i - M] = (1280 - IsfDiff[i - (M - 1)]);
         }
         else
         {
            IsfDiff[i - (M - 1)] = (1280 - IsfDiff[i - M]);
         }
      }
   }

   for(i = M - 1; i < M16k - 1; i++)
   {
      HfIsf[i] = (Word16)(HfIsf[i - 1] + IsfDiff[i - (M - 1)]);
   }

   for(i = 0; i < M16k - 1; i++)
   {
      HfIsf[i] = (Word16)((HfIsf[i] * 13107) >> 14);
      /* Scale the ISF vector correctly for 16000 kHz */
   }

   D_LPC_isf_isp_conversion(HfIsf, HfIsf, M16k);

   return;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线电影院国产精品| 精品一区二区免费视频| 久久精品免视看| 久久国产人妖系列| 久久色视频免费观看| 国产成人av网站| 亚洲欧洲精品一区二区精品久久久| 成人av高清在线| 亚洲乱码国产乱码精品精小说| 色综合久久中文字幕| 亚洲一区二区美女| 精品少妇一区二区三区在线播放| 九九九久久久精品| 中文字幕一区在线观看视频| 色天天综合色天天久久| 日韩av一二三| 日本一区二区综合亚洲| 97久久精品人人澡人人爽| 亚洲福利视频一区二区| 日韩一级片网站| 高潮精品一区videoshd| 一区二区免费在线| 精品伦理精品一区| 91一区二区在线观看| 视频一区在线播放| 国产婷婷一区二区| 欧美日韩国产不卡| 丁香激情综合五月| 色综合婷婷久久| 麻豆国产精品777777在线| 国产性做久久久久久| 在线亚洲精品福利网址导航| 蜜臀a∨国产成人精品| 国产精品午夜在线观看| 欧美一区二区在线观看| 暴力调教一区二区三区| 日本成人在线电影网| 中文字幕一区二区三区四区不卡| 欧美日韩在线直播| 99视频有精品| 国产一区二区美女诱惑| 亚洲成人高清在线| 国产精品剧情在线亚洲| 欧美大白屁股肥臀xxxxxx| 在线亚洲精品福利网址导航| 国产精品中文欧美| 日本vs亚洲vs韩国一区三区 | 亚洲三级在线免费观看| 欧美va亚洲va| 在线成人av网站| 97精品超碰一区二区三区| 国产精品中文有码| 麻豆一区二区三区| 亚洲va欧美va人人爽午夜| 国产精品欧美一区二区三区| 精品日韩欧美一区二区| 欧美美女一区二区三区| 色综合色综合色综合| 波多野结衣在线aⅴ中文字幕不卡| 久久精品国产亚洲一区二区三区| 亚洲精品高清视频在线观看| 日本一区二区视频在线观看| 日韩一级视频免费观看在线| 欧美精品久久99| 欧美性大战久久| 99vv1com这只有精品| 国产成人无遮挡在线视频| 美女爽到高潮91| 日韩高清电影一区| 午夜精品久久久久久久久久久 | 欧美色窝79yyyycom| 成人成人成人在线视频| 成人一区在线观看| 国产精品白丝jk黑袜喷水| 久久成人免费日本黄色| 毛片一区二区三区| 免费成人小视频| 美女视频黄 久久| 久久国产三级精品| 国产一区二区在线观看视频| 国产在线不卡一区| 国产成人无遮挡在线视频| 国产不卡在线一区| www.在线成人| 色哟哟亚洲精品| 欧美又粗又大又爽| 一二三四区精品视频| 亚洲综合丁香婷婷六月香| 亚洲一二三四区| 婷婷中文字幕一区三区| 日韩成人av影视| 国产一区二区剧情av在线| 国产精品77777竹菊影视小说| 国产馆精品极品| 色综合久久综合网| 91精品国产色综合久久不卡电影| 91精品国产91久久久久久一区二区| 日韩欧美国产一区在线观看| 精品999在线播放| 中文字幕亚洲不卡| 亚洲成人精品影院| 精品一二三四区| 99麻豆久久久国产精品免费| 在线观看国产日韩| 欧美电影精品一区二区| 亚洲国产经典视频| 亚洲va欧美va人人爽| 麻豆91在线播放| 成人激情电影免费在线观看| 色天使色偷偷av一区二区| 日韩欧美专区在线| 亚洲天堂a在线| 日韩精品一级二级 | 成人免费福利片| 欧美综合色免费| 久久奇米777| 亚洲国产精品欧美一二99| 久久爱www久久做| 91丨porny丨国产入口| 日韩女优电影在线观看| 国产精品女主播av| 免费三级欧美电影| 91麻豆国产自产在线观看| 日韩美女主播在线视频一区二区三区 | 五月婷婷综合在线| 国产福利一区二区三区在线视频| 在线亚洲欧美专区二区| 久久精品夜色噜噜亚洲a∨| 亚洲大片免费看| 成人永久免费视频| 欧美成人精品福利| 亚洲午夜国产一区99re久久| 成人一级片网址| 日韩精品一区二区三区四区| 亚洲一区二区三区四区五区中文| 国产精品资源在线| 欧美一区二区三区免费大片| 亚洲欧美激情一区二区| 国产精品88av| 欧美变态口味重另类| 亚洲国产视频一区| 99国内精品久久| 久久精品欧美一区二区三区不卡| 婷婷综合五月天| 欧美中文字幕一区二区三区| 国产精品欧美一区二区三区| 国产一区二区不卡| 91麻豆精品国产91久久久久久| 亚洲男人都懂的| 99久久婷婷国产综合精品| 欧美精品一区二区蜜臀亚洲| 婷婷成人激情在线网| 色天使色偷偷av一区二区| 国产精品免费看片| 风流少妇一区二区| 久久综合久久99| 狠狠色丁香久久婷婷综| 欧美一区二区私人影院日本| 亚洲一区成人在线| 一区在线观看免费| 97精品久久久午夜一区二区三区| 国产人久久人人人人爽| 国产一区不卡精品| 久久久亚洲精品一区二区三区| 天天色天天爱天天射综合| 欧美日本一道本| 日韩高清在线观看| 69堂亚洲精品首页| 蜜桃精品在线观看| 久久女同性恋中文字幕| 国产美女一区二区三区| 久久久午夜精品| 国产成人午夜片在线观看高清观看| 久久亚洲春色中文字幕久久久| 激情五月播播久久久精品| 精品久久久久香蕉网| 国产真实乱子伦精品视频| 久久婷婷国产综合精品青草| 国产精品1区2区| 欧美激情资源网| 99精品在线观看视频| 亚洲黄色小视频| 欧美日韩日日摸| 日本三级韩国三级欧美三级| 日韩欧美在线123| 国产福利一区二区三区视频| 中文字幕精品在线不卡| 一本色道久久综合精品竹菊| 亚洲成人777| 欧美变态tickle挠乳网站| 国产很黄免费观看久久| 亚洲人成电影网站色mp4| 欧美色成人综合| 久久精品国产亚洲5555| 国产日韩欧美综合在线| 99在线热播精品免费| 天天综合色天天综合| 久久九九久久九九| 91麻豆国产自产在线观看| 日本三级韩国三级欧美三级|