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

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

?? consealg728.c

?? G.711,G.723.1,G.726,G.729,GSM CODEC C/C++ code
?? C
字號:
/*/////////////////////////////////////////////////////////////////////////////
//
//                  INTEL CORPORATION PROPRIETARY INFORMATION
//     This software is supplied under the terms of a license agreement or
//     nondisclosure agreement with Intel Corporation and may not be copied
//     or disclosed except in accordance with the terms of that agreement.
//          Copyright(c) 2005 Intel Corporation. All Rights Reserved.
//
//     Intel(R) Integrated Performance Primitives
//     USC - Unified Speech Codec interface library
//
// By downloading and installing USC codec, you hereby agree that the
// accompanying Materials are being provided to you under the terms and
// conditions of the End User License Agreement for the Intel(R) Integrated
// Performance Primitives product previously accepted by you. Please refer
// to the file ipplic.htm located in the root directory of your Intel(R) IPP
// product installation for more information.
//
// A speech coding standards promoted by ITU, ETSI, 3GPP and other
// organizations. Implementations of these standards, or the standard enabled
// platforms may require licenses from various entities, including
// Intel Corporation.
//
//
// Purpose: G.728 speech codec: rame or packed loss concealment function for G728 decoder
//           (Annex I)
//
*/

#include "owng728.h"
#include "g728tables.h"

#define VTH           7022         /* Voicing threshold for frame erasures*/
#define DIMINV       13107         /* Inverse of vector dimentiom (=1/5 = 0.2)*/
#define FEGAINMAX     1024         /* Maximum gain DB increase after frame erasure*/

/* LinToDb constants*/

static __ALIGN32 CONST short c_L[6] = {
-3400, 15758, -10505,
 9338, -9338,   9961};


#define FAC1     24660
#define GOFF_L  -16384
#define THRQTR   24576

/* On my opinion, these values can be divided into two for the best PESQ results (Igor S. Belyakov) */

static __ALIGN32 CONST short voicedfegain[5] = {
   26214, 26214, 19661, 13107, 6554};

static __ALIGN32 CONST short unvoicedfegain[6] = {
   32767, 32767, 26214, 19661, 13107, 6554};

static void LinToDB(Ipp16s x, Ipp16s nlsx, Ipp16s *ret);

static short Rand_G728_16s( short *seed ) /* G.723.1 */
{
   /* initial value 11111*/
   *seed = *seed * 31821 + 13849;
   return ((*seed>>9)+69);
}

static void LinToDB(Ipp16s x, Ipp16s nlsx, Ipp16s *ret) {
   Ipp32s aa0, aa1, p, i;

   aa0 = (x - THRQTR) << 1;
   aa1 = 0;
   for(i=5; i>0; i--) {
      aa1 = aa1 + c_L[i];
      p = aa1 * aa0;
      aa1 = p >> 16;
   }
   aa1 = aa1 + c_L[0];
   aa1 = aa1 >> 3;
   aa0 = 15 - nlsx;
   aa0 = aa0 << 10;
   aa1 = aa1 + aa0;
   aa1 = aa1 * FAC1;

   aa1 = aa1 >> 14;
   aa1 = aa1 - GOFF_L;
   *ret = aa1;

   return;
}

void Set_Flags_and_Scalin_Factor_for_Frame_Erasure(Ipp16s fecount, Ipp16s ptab, Ipp16s kp, Ipp16s* fedelay, Ipp16s* fescale,
                                                   Ipp16s* nlsfescale, Ipp16s* voiced, Ipp16s* etpast, Ipp16s *avmag, Ipp16s *nlsavmag)
{
   Ipp16s n10msec, nls;
   Ipp32s aa0, i;

   n10msec = fecount >> 2;

   if(n10msec == 0) {
      if(ptab > VTH) {
         *fedelay = kp;
         *voiced = G728_TRUE;
      } else {
         *voiced = G728_FALSE;
         aa0 = 0;
         for(i = -40;i < 0; i++)
            aa0 = aa0 + Abs_32s(etpast[i]);
         VscaleOne_Range30_32s(&aa0, &aa0, &nls);
         *avmag = Cnvrt_NR_32s16s(aa0);
         *nlsavmag = nls - 16 + 3;
      }
   }
   if(*voiced == G728_TRUE) {
      if(n10msec < 5) *fescale = voicedfegain[n10msec];
      else *fescale = 0;
   } else {
      if(n10msec < 6) {
         *fescale = unvoicedfegain[n10msec];
         aa0 = (*fescale) * (*avmag);
         VscaleOne_Range30_32s(&aa0, &aa0, nlsfescale);
         *fescale = Cnvrt_NR_32s16s(aa0);
         *nlsfescale = (*nlsfescale)+(*nlsavmag) - 1;
      } else {
         *fescale = 0;
      }
   }

   return;
}

void ExcitationSignalExtrapolation(Ipp16s voiced, Ipp16s *fedelay, Ipp16s fescale,
         Ipp16s nlsfescale, Ipp16s* etpast, Ipp16s *et, Ipp16s *nlset, Ipp16s *seed) {
   Ipp16s temp, nlstemp,den,nlsden,nls;
   Ipp32s i, aa0, aa1;

   if(voiced == G728_TRUE) {
      temp = fescale;
      nlstemp = 15;
      for(i=0; i<IDIM; i++)
         etpast[i] = etpast[i-(*fedelay)];
     /* nlstemp = 15;*/
   }
   if(voiced == G728_FALSE) {
      *fedelay = Rand_G728_16s(seed);
      aa1 = 0;
      for(i=0; i<IDIM; i++) {
         etpast[i] = etpast[i-(*fedelay)];
         aa1 = aa1 + Abs_32s(etpast[i]);
      }
      if((aa1==0)||(fescale==0)) {
         temp = 0;
         nlstemp = 15;
      } else {
         VscaleOne_Range30_32s(&aa1, &aa1, &nlsden);
         den = Cnvrt_NR_32s16s(aa1);
         nlsden = nlsden - 16;
         Divide_16s(fescale, nlsfescale, den, nlsden, &temp, &nlstemp);
      }
   }
   for(i=0; i<IDIM; i++) {
      aa0 = temp * etpast[i];
      aa0 = aa0 >> nlstemp;
      aa0 = Cnvrt_32s16s(aa0);
      etpast[i] = aa0;
   }
   VscaleFive_16s(etpast, et, 13, &nls);
   *nlset = nls + 2;

   return;
}

void UpdateExcitationSignal(Ipp16s *etpast, Ipp16s *et, Ipp16s nlset) {
   Ipp32s i, aa0;
   Ipp16s scale;

   for(i=-KPMAX; i<-IDIM; i++)
      etpast[i] = etpast[i+IDIM];

   scale = nlset - 2;

   if (scale >= 0) {
      for(i=0; i<IDIM; i++) {
         etpast[i-IDIM] = et[i] >> scale;
      }
   } else {
      scale = -scale;
      for(i=0; i<IDIM; i++) {
         aa0 = et[i];
         aa0 = aa0 << scale;
         etpast[i-IDIM] = Cnvrt_32s16s(aa0);
      }
   }

   return;
}


void UpdateLGPredictorState(Ipp16s *et, Ipp16s *pLGPredictorState) {
   Ipp32s aa0, k;
   Ipp16s nls;
   Ipp16s etrms;      /* Energy in dB of current vector*/
   Ipp16s nlsetrms;   /* NLS for etrms*/

   aa0 = 0;
   for(k=0; k<IDIM; k++)
      aa0 = aa0 + et[k]*et[k];

   VscaleOne_Range30_32s(&aa0, &aa0, &nls);
   etrms = aa0 >> 16;
   nlsetrms = (4 + nls) -  16;
   aa0 = etrms * DIMINV;

   VscaleOne_Range30_32s(&aa0, &aa0, &nls);
   etrms = aa0 >> 16;
   nlsetrms = nlsetrms + nls;
   if(nlsetrms > 14) {
      etrms = 16384;
      nlsetrms = 14;
   }

   LinToDB(etrms, nlsetrms, pLGPredictorState);

   return;
}

void Log_gain_Limiter_after_erasure(Ipp32s *pGainLog, Ipp32s ogaindb, Ipp16s afterfe)
{
   Ipp32s tmp;

   if(*pGainLog > 14336) *pGainLog = 14336;
   if(*pGainLog < -16384) *pGainLog = -16384;

   tmp = (*pGainLog) - ogaindb;
   if((afterfe > 0)&&(tmp > FEGAINMAX))
      *pGainLog = ogaindb + FEGAINMAX;

   return;
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲国内综合视频| 一二三区精品视频| 日韩欧美一区二区久久婷婷| 欧美日韩中文一区| 欧美日韩电影在线播放| 欧美日韩中文精品| 欧美男人的天堂一二区| 欧美日韩国产系列| 在线综合亚洲欧美在线视频| 在线播放欧美女士性生活| 91精品免费在线观看| 91麻豆精品国产91久久久久久久久| 欧美在线免费播放| 制服丝袜中文字幕亚洲| 日韩欧美自拍偷拍| 久久久99精品免费观看不卡| 国产色一区二区| 亚洲天堂久久久久久久| 一区二区三区四区在线播放 | 亚洲电影一级黄| 亚洲国产一区在线观看| 午夜影院在线观看欧美| 蜜桃精品在线观看| 国产精品中文欧美| 粉嫩av一区二区三区| 波多野结衣欧美| 91亚洲精品乱码久久久久久蜜桃 | 欧美一区国产二区| 久久伊99综合婷婷久久伊| 国产三区在线成人av| 国产精品久久久久久久久快鸭| 亚洲激情在线播放| 日韩avvvv在线播放| 国产美女视频91| 91欧美一区二区| 91精品国产综合久久精品| 亚洲精品一线二线三线无人区| 国产精品青草综合久久久久99| 亚洲综合自拍偷拍| 狠狠色狠狠色综合日日91app| 成人免费观看男女羞羞视频| 欧美手机在线视频| wwww国产精品欧美| 亚洲精品免费一二三区| 免费三级欧美电影| 91在线国产福利| 欧美一区二区在线免费观看| 欧美韩日一区二区三区| 性久久久久久久| 成人禁用看黄a在线| 欧美老年两性高潮| 中文字幕中文字幕在线一区| 天天操天天干天天综合网| 国产成人亚洲综合a∨婷婷| 欧美丝袜丝nylons| 中文字幕视频一区| 另类专区欧美蜜桃臀第一页| 色综合视频在线观看| 精品美女被调教视频大全网站| 亚洲美女精品一区| 国产毛片精品一区| 555夜色666亚洲国产免| 中文字幕在线免费不卡| 毛片av一区二区三区| 色综合色综合色综合 | 三级久久三级久久| 成人国产精品免费网站| 日韩欧美一级在线播放| 一区二区三区中文字幕精品精品| 国产一区二区影院| 51久久夜色精品国产麻豆| 综合久久久久综合| 国产成人在线视频免费播放| 91精品国产色综合久久ai换脸 | 国产一区啦啦啦在线观看| 在线观看不卡视频| 中文字幕在线一区免费| 欧美日韩一区高清| 1024成人网色www| 国产suv精品一区二区6| 精品成人免费观看| 亚洲成人手机在线| 在线观看欧美精品| 亚洲男人的天堂一区二区| 福利一区在线观看| 国产天堂亚洲国产碰碰| 韩国精品久久久| 日韩精品中文字幕一区| 日日夜夜精品免费视频| 欧美日韩成人在线一区| 一区二区三区在线视频观看| jiyouzz国产精品久久| 中文字幕不卡的av| 成人精品国产免费网站| 欧美激情综合五月色丁香小说| 国产一区在线视频| 久久综合久色欧美综合狠狠| 免费成人性网站| 日韩精品中文字幕一区| 免费在线成人网| 51精品久久久久久久蜜臀| 丝袜美腿亚洲一区二区图片| 欧美日韩黄色影视| 日韩制服丝袜先锋影音| 91精品久久久久久久久99蜜臂 | 91国在线观看| 一区二区三区视频在线观看| 一本一道久久a久久精品 | 久久国产精品色| 欧美成人女星排名| 麻豆精品久久精品色综合| 精品理论电影在线| 国产综合色视频| 国产精品不卡在线观看| 91在线一区二区三区| 亚洲欧美日韩国产成人精品影院| 91视频一区二区| 亚洲自拍偷拍欧美| 7777精品伊人久久久大香线蕉超级流畅 | 日韩精品电影在线观看| 91精品国产综合久久蜜臀| 日韩二区三区在线观看| www日韩大片| 国产成人午夜精品影院观看视频 | 日韩一区二区高清| 国产精品亚洲成人| 亚洲色图制服丝袜| 欧美日韩的一区二区| 久久福利视频一区二区| 日本一区二区三区久久久久久久久不| 成人伦理片在线| 一区二区三区在线免费播放| 欧美人与z0zoxxxx视频| 麻豆精品一区二区| 中文av一区二区| 一本大道久久精品懂色aⅴ| 爽好多水快深点欧美视频| 欧美精品一区二区三区四区| 白白色 亚洲乱淫| 亚州成人在线电影| 久久久亚洲国产美女国产盗摄 | 欧美a级一区二区| 久久久综合精品| 色94色欧美sute亚洲线路一ni| 午夜国产不卡在线观看视频| 久久蜜臀中文字幕| 欧美午夜精品理论片a级按摩| 日韩成人一区二区三区在线观看| 国产视频不卡一区| 欧美日韩国产影片| 高清久久久久久| 午夜电影网一区| 国产精品系列在线| 欧美夫妻性生活| 成人av第一页| 久久精品久久精品| 一区二区三区中文字幕电影| 精品电影一区二区三区| 在线免费不卡视频| 成人午夜视频免费看| 青椒成人免费视频| 亚洲美女精品一区| 国产丝袜美腿一区二区三区| 欧美肥胖老妇做爰| 色哟哟一区二区三区| 国产一区二区三区电影在线观看 | 免费观看在线综合色| 亚洲视频在线一区观看| 日韩精品一区二区三区视频| 日本黄色一区二区| 国产99久久久国产精品潘金| 美女任你摸久久| 午夜精品久久久久影视| 亚洲欧美偷拍三级| 久久久五月婷婷| 日韩女优av电影在线观看| 色婷婷精品久久二区二区蜜臂av| 国模无码大尺度一区二区三区| 亚洲午夜免费福利视频| 中文字幕日本不卡| 欧美精彩视频一区二区三区| 日韩欧美黄色影院| 一区二区欧美精品| 色系网站成人免费| eeuss鲁片一区二区三区| 国产自产v一区二区三区c| 婷婷成人激情在线网| 一区二区三区不卡视频| 亚洲欧洲精品天堂一级 | 亚洲高清不卡在线观看| 亚洲女人****多毛耸耸8| 国产精品免费网站在线观看| 久久蜜桃av一区精品变态类天堂| 欧美电影精品一区二区| 91精品欧美福利在线观看| 欧美日本一区二区三区| 91久久精品国产91性色tv| 91免费视频大全| 97久久超碰精品国产| 91原创在线视频|