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

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

?? dec_main.c

?? Linux 影片撥放解碼 Video DVD
?? C
?? 第 1 頁 / 共 2 頁
字號:
            if(index < ((PIT_FR2 - PIT_MIN) * 4))
            {
               T0 = PIT_MIN + (index >> 2);
               T0_frac = index - ((T0 - PIT_MIN) << 2);
            }
            else if(index <
               ((((PIT_FR2 - PIT_MIN) * 4) + ((PIT_FR1_9b - PIT_FR2) * 2))))
            {
               index = (Word16)((index - ((PIT_FR2 - PIT_MIN) * 4)));
               T0 = PIT_FR2 + (index >> 1);
               T0_frac = index - ((T0 - PIT_FR2) << 1);
               T0_frac = T0_frac << 1;
            }
            else
            {
               T0 = index + (PIT_FR1_9b - ((PIT_FR2 - PIT_MIN) * 4) -
                  ((PIT_FR1_9b - PIT_FR2) * 2));
               T0_frac = 0;
            }
         }

         /* find T0_min and T0_max for subframe 2 and 4 */
         T0_min = T0 - 8;

         if(T0_min < PIT_MIN)
         {
            T0_min = PIT_MIN;
         }

         T0_max = T0_min + 15;

         if(T0_max > PIT_MAX)
         {
            T0_max = PIT_MAX;
            T0_min = T0_max - 15;
         }
      }
      else
      {   /* if subframe 2 or 4 */

         if(mode <= MODE_9k)
         {
            index = *prms++;
            T0 = T0_min + (index >> 1);
            T0_frac = index - ((T0 - T0_min) << 1);
            T0_frac = T0_frac << 1;
         }
         else
         {
            index = *prms++;
            T0 = T0_min + (index >> 2);
            T0_frac = index - ((T0 - T0_min) << 2);
         }
      }

      /* check BFI after pitch lag decoding */
      if(bfi != 0) /* if frame erasure */
      {
         D_GAIN_lag_concealment(&(st->mem_gain[17]), st->mem_lag, &T0,
            &(st->mem_T0), &(st->mem_seed3), unusable_frame);
         T0_frac = 0;
      }

      /*
       * Find the pitch gain, the interpolation filter
       * and the adaptive codebook vector.
       */

      D_GAIN_adaptive_codebook_excitation(&exc[i_subfr], T0, T0_frac);

      if(unusable_frame)
      {
         select = 1;
      }
      else
      {
         if(mode <= MODE_9k)
         {
            select = 0;
         }
         else
         {
            select = *prms++;
         }
      }

      if(select == 0)
      {
         /* find pitch excitation with lp filter */
         for(i = 0; i < L_SUBFR; i++)
         {
            L_tmp = 2949 * exc[i - 1 + i_subfr];
            L_tmp = L_tmp + (10486 * exc[i + i_subfr]);
            L_tmp = L_tmp + (2949 * exc[i + 1 + i_subfr]);
            code[i] = (Word16)((L_tmp + 0x2000) >> 14);
         }

         memcpy(&exc[i_subfr], code, L_SUBFR * sizeof(Word16));
      }

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

      if(unusable_frame != 0)
      {
         /* the innovative code doesn't need to be scaled (see Q_gain2) */
         for(i = 0; i < L_SUBFR; i++)
         {
            code[i] = (Word16)(D_UTIL_random(&(st->mem_seed)) >> 3);
         }
      }
      else if(mode <= MODE_7k)
      {
         ind[0] = *prms++;
         D_ACELP_decode_2t(ind[0], code);
      }
      else if(mode <= MODE_9k)
      {
         memcpy(ind, prms, 4 * sizeof(Word16));
         prms += 4;
         D_ACELP_decode_4t(ind, 20, code);
      }
      else if(mode <= MODE_12k)
      {
         memcpy(ind, prms, 4 * sizeof(Word16));
         prms += 4;
         D_ACELP_decode_4t(ind, 36, code);
      }
      else if(mode <= MODE_14k)
      {
         memcpy(ind, prms, 4 * sizeof(Word16));
         prms += 4;
         D_ACELP_decode_4t(ind, 44, code);
      }
      else if(mode <= MODE_16k)
      {
         memcpy(ind, prms, 4 * sizeof(Word16));
         prms += 4;
         D_ACELP_decode_4t(ind, 52, code);
      }
      else if(mode <= MODE_18k)
      {
         memcpy(ind, prms, 8 * sizeof(Word16));
         prms += 8;
         D_ACELP_decode_4t(ind, 64, code);
      }
      else if(mode <= MODE_20k)
      {
         memcpy(ind, prms, 8 * sizeof(Word16));
         prms += 8;
         D_ACELP_decode_4t(ind, 72, code);
      }
      else
      {
         memcpy(ind, prms, 8 * sizeof(Word16));
         prms += 8;
         D_ACELP_decode_4t(ind, 88, code);
      }

      tmp = 0;
      D_UTIL_preemph(code, st->mem_tilt_code, L_SUBFR, &tmp);

      L_tmp = T0;

      if(T0_frac > 2)
      {
         L_tmp = L_tmp + 1;
      }

      D_GAIN_pitch_sharpening(code, L_tmp, PIT_SHARP);

      /*
       * Decode codebooks gains.
       */
      index = *prms++;   /* codebook gain index */

      if(mode <= MODE_9k)
      {
         D_GAIN_decode(index, 6, code, &gain_pit, &L_gain_code, bfi,
            st->mem_bfi, st->mem_state, unusable_frame, st->mem_vad_hist,
            st->mem_gain);
      }
      else
      {
         D_GAIN_decode(index, 7, code, &gain_pit, &L_gain_code, bfi,
            st->mem_bfi, st->mem_state, unusable_frame, st->mem_vad_hist,
            st->mem_gain);
      }

      /* find best scaling to perform on excitation (Q_new) */
      tmp = st->mem_subfr_q[0];

      for(i = 1; i < 4; i++)
      {
         if(st->mem_subfr_q[i] < tmp)
         {
            tmp = st->mem_subfr_q[i];
         }
      }

      /* limit scaling (Q_new) to Q_MAX */
      if(tmp > Q_MAX)
      {
         tmp = Q_MAX;
      }

      Q_new = 0;
      L_tmp = L_gain_code;   /* L_gain_code in Q16 */

      while((L_tmp < 0x08000000L) && (Q_new < tmp))
      {
         L_tmp = (L_tmp << 1);
         Q_new = (Word16)((Q_new + 1));
      }

      if(L_tmp < 0x7FFF7FFF)
      {
         gain_code = (Word16)((L_tmp + 0x8000) >> 16);
         /* scaled gain_code with Qnew */
      }
      else
      {
         gain_code = 32767;
      }

      if(Q_new > st->mem_q)
      {
         D_UTIL_signal_up_scale(exc + i_subfr - (PIT_MAX + L_INTERPOL),
            PIT_MAX + L_INTERPOL + L_SUBFR, (Word16)(Q_new - st->mem_q));
      }
      else
      {
         D_UTIL_signal_down_scale(exc + i_subfr - (PIT_MAX + L_INTERPOL),
            PIT_MAX + L_INTERPOL + L_SUBFR, (Word16)(st->mem_q - Q_new));
      }

      st->mem_q = Q_new;

      /*
       * Update parameters for the next subframe.
       * - tilt of code: 0.0 (unvoiced) to 0.5 (voiced)
       */
      if(bfi == 0)
      {
         /* LTP-Lag history update */
         for(i = 4; i > 0; i--)
         {
            st->mem_lag[i] = st->mem_lag[i - 1];
         }
         st->mem_lag[0] = (Word16)T0;
         st->mem_T0 = (Word16)T0;
         st->mem_T0_frac = 0;   /* Remove fraction in case of BFI */
      }

      /* find voice factor in Q15 (1=voiced, -1=unvoiced) */
      memcpy(exc2, &exc[i_subfr], L_SUBFR * sizeof(Word16));
      D_UTIL_signal_down_scale(exc2, L_SUBFR, 3);

      /* post processing of excitation elements */
      if(mode <= MODE_9k)
      {
         pit_sharp = (Word16)(gain_pit << 1);

         if(pit_sharp > 16384)
         {
            if(pit_sharp > 32767)
            {
               pit_sharp = 32767;
            }

            for(i = 0; i < L_SUBFR; i++)
            {
               L_tmp = (exc2[i] * pit_sharp) >> 15;
               L_tmp = L_tmp * gain_pit;
               excp[i] = (Word16)((L_tmp + 0x8000) >> 16);
            }
         }
      }

      voice_fac = D_GAIN_find_voice_factor(exc2, -3, gain_pit, code, gain_code,
         L_SUBFR);

      /* tilt of code for next subframe: 0.5=voiced, 0=unvoiced */
      st->mem_tilt_code = (Word16)((voice_fac >> 2) + 8192);

      /*
       * Find the total excitation.
       * Find synthesis speech corresponding to exc[].
       * Find maximum value of excitation for next scaling
       */
      memcpy(exc2, &exc[i_subfr], L_SUBFR * sizeof(Word16));
      max = 1;

      for(i = 0; i < L_SUBFR; i++)
      {
         L_tmp = (code[i] * gain_code) << 5;
         L_tmp = L_tmp + (exc[i + i_subfr] * gain_pit);
         L_tmp = (L_tmp + 0x2000) >> 14;

         if((L_tmp > MIN_16) & (L_tmp < 32768))
         {
            exc[i + i_subfr] = (Word16)L_tmp;
            tmp = (Word16)(abs(L_tmp));

            if(tmp > max)
            {
               max = tmp;
            }
         }
         else if(L_tmp > MAX_16)
         {
            exc[i + i_subfr] = MAX_16;
            max = MAX_16;
         }
         else
         {
            exc[i + i_subfr] = MIN_16;
            max = MAX_16;
         }
      }

      /* tmp = scaling possible according to max value of excitation */
      tmp = (Word16)((D_UTIL_norm_s(max) + Q_new) - 1);
      st->mem_subfr_q[3] = st->mem_subfr_q[2];
      st->mem_subfr_q[2] = st->mem_subfr_q[1];
      st->mem_subfr_q[1] = st->mem_subfr_q[0];
      st->mem_subfr_q[0] = tmp;

      /*
       * phase dispersion to enhance noise in low bit rate
       */

      /* L_gain_code in Q16 */
      D_UTIL_l_extract(L_gain_code, &gain_code, &gain_code_lo);

      if(mode <= MODE_7k)
      {
         j = 0;   /* high dispersion for rate <= 7.5 kbit/s */
      }
      else if(mode <= MODE_9k)
      {
         j = 1;   /* low dispersion for rate <= 9.6 kbit/s */
      }
      else
      {
         j = 2;   /* no dispersion for rate > 9.6 kbit/s */
      }

      D_ACELP_phase_dispersion(gain_code, gain_pit, code, (Word16)j,
         st->mem_ph_disp);

      /*
       * noise enhancer
       * - Enhance excitation on noise. (modify gain of code)
       *   If signal is noisy and LPC filter is stable, move gain
       *   of code 1.5 dB toward gain of code threshold.
       *   This decrease by 3 dB noise energy variation.
       */
      L_tmp = 16384 - (voice_fac >> 1);   /* 1=unvoiced, 0=voiced */
      fac = (Word16)((L_stab_fac * L_tmp) >> 15);
      L_tmp = L_gain_code;

      if(L_tmp < st->mem_gc_thres)
      {
         L_tmp = (L_tmp + D_UTIL_mpy_32_16(gain_code, gain_code_lo, 6226));

         if(L_tmp > st->mem_gc_thres)
         {
            L_tmp = st->mem_gc_thres;
         }
      }
      else
      {
         L_tmp = D_UTIL_mpy_32_16(gain_code, gain_code_lo, 27536);

         if(L_tmp < st->mem_gc_thres)
         {
            L_tmp = st->mem_gc_thres;
         }
      }
      st->mem_gc_thres = L_tmp;
      L_gain_code =
         D_UTIL_mpy_32_16(gain_code, gain_code_lo, (Word16)(32767 - fac));
      D_UTIL_l_extract(L_tmp, &gain_code, &gain_code_lo);
      L_gain_code =
         L_gain_code + D_UTIL_mpy_32_16(gain_code, gain_code_lo, fac);

      /*
       * pitch enhancer
       * - Enhance excitation on voice. (HP filtering of code)
       *   On voiced signal, filtering of code by a smooth fir HP
       *   filter to decrease energy of code in low frequency.
       */

      L_tmp2 = (voice_fac >> 3) + 4096;   /* 0.25=voiced, 0=unvoiced */
      L_tmp = (code[0] << 15) - (code[1] * L_tmp2);
      code2[0] = (L_tmp + 0x4000) >> 15;

      for(i = 1; i < L_SUBFR - 1; i++)
      {
         L_tmp = code[i] << 15;
         L_tmp = L_tmp - (code[i + 1] * L_tmp2);
         L_tmp = L_tmp - (code[i - 1] * L_tmp2);
         code2[i] = (L_tmp + 0x4000) >> 15;
      }

      L_tmp = code[L_SUBFR - 1] << 15;
      L_tmp = L_tmp - (code[L_SUBFR - 2] * L_tmp2);
      code2[L_SUBFR - 1] = (L_tmp + 0x4000) >> 15;

      /* build excitation */
      gain_code = (Word16)(((L_gain_code << Q_new) + 0x8000) >> 16);

      for(i = 0; i < L_SUBFR; i++)
      {
         L_tmp = (code2[i] * gain_code) << 5;
         L_tmp = L_tmp + (exc2[i] * gain_pit);
         L_tmp = (L_tmp + 0x2000) >> 14;

         exc2[i] = D_UTIL_saturate(L_tmp);
      }

      if(mode <= MODE_9k)
      {
         if(pit_sharp > 16384)
         {
            for(i = 0; i < L_SUBFR; i++)
            {
               L_tmp = (excp[i] + exc2[i]);
               excp[i] = D_UTIL_saturate(L_tmp);
            }

            D_GAIN_adaptive_control(exc2, excp, L_SUBFR);
            memcpy(exc2, excp, L_SUBFR * sizeof(Word16));
         }
      }

      if(mode <= MODE_7k)
      {
         j = (i_subfr >> 6);

         for(i = 0; i < M; i++)
         {
            L_tmp = isf_tmp[i] * (32767 - D_ROM_interpol_frac[j]);
            L_tmp = L_tmp + (isf[i] * D_ROM_interpol_frac[j]);
            HfIsf[i] = (Word16)((L_tmp + 0x4000) >> 15);
         }
      }
      else
      {
         memset(st->mem_syn_hf, 0, (M16k - M) * sizeof(Word16));
      }

      if(mode >= MODE_24k)
      {
         corr_gain = *prms++;
         D_UTIL_dec_synthesis(p_Aq, exc2, Q_new, &synth16k[i_subfr * 5 / 4],
            corr_gain, HfIsf, mode, newDTXState, bfi, st);
      }
      else
      {
         D_UTIL_dec_synthesis(p_Aq, exc2, Q_new, &synth16k[i_subfr * 5 / 4], 0,
            HfIsf, mode, newDTXState, bfi, st);
      }

      p_Aq += (M + 1);   /* interpolated LPC parameters for next subframe */
   }

   /*
    * Update signal for next frame
    * -> save past of exc[]
    * -> save pitch parameters.
    */

   memmove(st->mem_exc, &st->mem_exc[L_FRAME], (PIT_MAX + L_INTERPOL) * sizeof(Word16));
   D_UTIL_signal_down_scale(exc, L_FRAME, Q_new);
   D_DTX_activity_update(st->dtx_decSt, isf, exc);
   st->dtx_decSt->mem_dtx_global_state = (UWord8)newDTXState;
   st->mem_bfi = bfi;

   return(0);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费国产亚洲视频| 久久久精品日韩欧美| 亚洲最大的成人av| 日本高清不卡在线观看| 亚洲与欧洲av电影| 在线播放国产精品二区一二区四区| 一区二区高清在线| 91精品国产全国免费观看| 青青草97国产精品免费观看 | 精品国产一区久久| 国产一区二区三区av电影| 国产午夜精品在线观看| 粉嫩欧美一区二区三区高清影视| 国产午夜亚洲精品理论片色戒 | 成人妖精视频yjsp地址| 亚洲色图在线视频| 欧美日韩视频在线观看一区二区三区| 青青国产91久久久久久| 久久先锋资源网| 91精品办公室少妇高潮对白| 亚洲成人动漫在线免费观看| 日韩美一区二区三区| 成人免费毛片嘿嘿连载视频| 一区二区在线观看免费 | 精品裸体舞一区二区三区| 成人性生交大片免费看视频在线 | 国产欧美一区二区三区鸳鸯浴 | 精品日产卡一卡二卡麻豆| 国产成人午夜电影网| 亚洲国产视频网站| 久久久久久亚洲综合| 在线亚洲高清视频| 国产伦精品一区二区三区视频青涩 | 色综合一区二区| 麻豆精品在线看| 洋洋成人永久网站入口| 精品美女被调教视频大全网站| 91免费精品国自产拍在线不卡| 蜜臀av一区二区| 一区二区三区在线视频观看58| 精品不卡在线视频| 欧美三级视频在线| 99精品视频一区| 国内成+人亚洲+欧美+综合在线| 亚洲日穴在线视频| 久久精品视频一区| 欧美一区二区三区电影| 色一区在线观看| 大胆亚洲人体视频| 狠狠色丁香婷婷综合| 亚洲国产视频a| 亚洲精品自拍动漫在线| 国产丝袜欧美中文另类| 欧美一区二区在线免费观看| 色网综合在线观看| 成人午夜视频免费看| 精品一区二区三区免费| 五月激情六月综合| 亚洲h在线观看| 一区二区三区精品视频在线| 国产日产欧美精品一区二区三区| 91精品国产一区二区三区香蕉| 色欧美日韩亚洲| 91丨porny丨国产| 成人黄色软件下载| 风间由美一区二区三区在线观看 | 久久精品国产99国产| 亚洲444eee在线观看| 亚洲男人电影天堂| 国产精品高潮呻吟| 亚洲欧洲无码一区二区三区| 亚洲国产精品黑人久久久| 久久久精品tv| 国产日韩欧美不卡在线| 久久精品人人做人人综合 | 另类小说一区二区三区| 午夜激情一区二区三区| 亚洲h动漫在线| 免费在线观看精品| 黄色精品一二区| 国产伦精一区二区三区| 丰满少妇在线播放bd日韩电影| 国产69精品久久久久777| 国产精品夜夜嗨| 91在线观看一区二区| 91丨九色丨蝌蚪富婆spa| 日本韩国欧美一区| 欧美日本高清视频在线观看| 欧美日韩国产精品成人| 日韩一级片在线播放| 精品国产成人系列| 中文字幕免费不卡| 亚洲精品免费在线| 日日夜夜一区二区| 精品一区二区久久久| 国产成人免费视频网站| 不卡的电视剧免费网站有什么| 91香蕉视频mp4| 欧美日韩久久不卡| 久久色在线视频| 中文字幕一区三区| 午夜伊人狠狠久久| 国内成人精品2018免费看| 波多野结衣一区二区三区 | 另类成人小视频在线| 国产一区二区看久久| www.av亚洲| 在线成人午夜影院| 国产精品色在线| 亚洲成人免费看| 国产精品88888| 欧美性猛片aaaaaaa做受| 日韩西西人体444www| 亚洲国产精华液网站w| 亚洲成人动漫在线观看| 国产精品一区二区男女羞羞无遮挡 | 亚洲精品久久久久久国产精华液| 偷窥少妇高潮呻吟av久久免费| 精品无人区卡一卡二卡三乱码免费卡 | 色国产综合视频| 精品第一国产综合精品aⅴ| 亚洲免费观看高清完整版在线 | 亚洲欧美精品午睡沙发| 青青草国产成人99久久| eeuss鲁一区二区三区| 欧美日韩精品欧美日韩精品| 精品噜噜噜噜久久久久久久久试看| 国产精品伦一区| 免费黄网站欧美| 欧美性猛交xxxx乱大交退制版| 国产欧美日本一区视频| 三级久久三级久久| 日本电影欧美片| 久久精品欧美一区二区三区麻豆| 亚洲va国产va欧美va观看| 不卡av在线网| 日韩精品中午字幕| 亚洲午夜精品久久久久久久久| 成人久久18免费网站麻豆| 日韩一卡二卡三卡| 午夜久久电影网| 在线中文字幕一区二区| 国产精品麻豆99久久久久久| 国模套图日韩精品一区二区 | 综合av第一页| 国产·精品毛片| 精品卡一卡二卡三卡四在线| 亚洲一区二区三区四区五区中文| 成人丝袜高跟foot| 久久欧美中文字幕| 国产在线精品不卡| 日韩欧美亚洲国产精品字幕久久久| 一区二区三区四区高清精品免费观看 | 免费在线观看成人| 在线免费观看一区| 亚洲综合小说图片| 91色婷婷久久久久合中文| 欧美国产综合一区二区| 国产一区二区三区四| 欧美mv日韩mv国产| 久久69国产一区二区蜜臀| 日韩欧美一区二区三区在线| 天天射综合影视| 91精品国产欧美一区二区| 日本美女视频一区二区| 日韩一区二区精品葵司在线| 日本成人在线看| 欧美成人一区二区三区片免费| 奇米影视一区二区三区小说| 欧美二区在线观看| 丝袜亚洲另类丝袜在线| 欧美猛男男办公室激情| 男男gaygay亚洲| 亚洲精品一区二区在线观看| 看电视剧不卡顿的网站| 精品精品欲导航| 国产成人av电影在线| 中文字幕中文字幕中文字幕亚洲无线| 成人免费高清在线观看| 亚洲人成7777| 欧美蜜桃一区二区三区| 麻豆视频一区二区| 国产欧美久久久精品影院| 岛国精品一区二区| 亚洲人成精品久久久久久| 欧美日韩黄色影视| 美女一区二区久久| 国产精品欧美一级免费| 色综合网色综合| 日本大胆欧美人术艺术动态| 26uuu另类欧美| 99精品偷自拍| 日本不卡在线视频| 国产欧美日本一区视频| 欧美曰成人黄网| 国产主播一区二区三区| 国产精品区一区二区三| 欧美性做爰猛烈叫床潮| 精品亚洲porn| 亚洲影视在线观看|