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

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

?? decgsmamr.c

?? G.711,G.723.1,G.726,G.729,GSM CODEC C/C++ code
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*/////////////////////////////////////////////////////////////////////////////
//
//                  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: GSMAMR speech codec: decoder API.
//
*/

#include "owngsmamr.h"

/* filter coefficients (fc = 100 Hz) */

static __ALIGN32 CONST short b100[3] = {7699, -15398, 7699};      /* Q13 */
static __ALIGN32 CONST short a100[3] = {8192, 15836, -7667};      /* Q13 */


GSMAMR_CODECFUN( APIGSMAMR_Status, apiGSMAMRDecoder_GetSize,
         (GSMAMRDecoder_Obj* decoderObj, unsigned int *pCodecSize))
{
   if(NULL == decoderObj)
      return APIGSMAMR_StsBadArgErr;
   if(NULL == pCodecSize)
      return APIGSMAMR_StsBadArgErr;
   if(decoderObj->objPrm.key != DEC_KEY)
      return APIGSMAMR_StsNotInitialized;

   *pCodecSize = decoderObj->objPrm.objSize;
   return APIGSMAMR_StsNoErr;
}


GSMAMR_CODECFUN( APIGSMAMR_Status, apiGSMAMRDecoder_Alloc,
         (const GSMAMRDec_Params *gsm_Params, unsigned int *pSizeTab))
{
   int fltSize;
   int allocSize=sizeof(GSMAMRDecoder_Obj);
   if(GSMAMR_CODEC != gsm_Params->codecType)
      return APIGSMAMR_StsBadCodecType;
   ippsHighPassFilterSize_G729(&fltSize);
   allocSize += fltSize; /* to provide memory for postprocessing high pass filter with upscaling */
   pSizeTab[0] =  allocSize;
   return APIGSMAMR_StsNoErr;
}

int ownDtxDecoderInit_GSMAMR(sDTXDecoderSt* dtxState)
{
   int i;

   dtxState->vLastSidFrame = 0;
   dtxState->vSidPeriodInv = (1 << 13);
   dtxState->vLogEnergy = 3500;
   dtxState->vLogEnergyOld = 3500;
   /* low level noise for better performance in  DTX handover cases*/

   dtxState->vPerfSeedDTX_long = PSEUDO_NOISE_SEED;

   /* Initialize state->a_LSP [] and state->a_LSP_Old [] */
   ippsCopy_16s(TableLSPInitData, &dtxState->a_LSP[0], LP_ORDER_SIZE);
   ippsCopy_16s(TableLSPInitData, &dtxState->a_LSP_Old[0], LP_ORDER_SIZE);
   dtxState->vLogMean = 0;
   dtxState->vLogEnergyHistory = 0;

   /* initialize decoder lsf history */
   ippsCopy_16s(TableMeanLSF_5, &dtxState->a_LSFHistory[0], LP_ORDER_SIZE);

   for (i = 1; i < DTX_HIST_SIZE; i++)
      ippsCopy_16s(&dtxState->a_LSFHistory[0], &dtxState->a_LSFHistory[LP_ORDER_SIZE*i], LP_ORDER_SIZE);

   ippsZero_16s(dtxState->a_LSFHistoryMean, LP_ORDER_SIZE*DTX_HIST_SIZE);

   /* initialize decoder log frame energy */
   ippsSet_16s(dtxState->vLogEnergy, dtxState->a_LogEnergyHistory, DTX_HIST_SIZE);
   dtxState->vLogEnergyCorrect = 0;
   dtxState->vDTXHangoverCt = DTX_HANG_PERIOD;
   dtxState->vDecExpireCt = 32767;
   dtxState->vFlagSidFrame = 0;
   dtxState->vFlagValidData = 0;
   dtxState->vDTXHangAdd = 0;
   dtxState->eDTXPrevState = DTX;
   dtxState->vFlagDataUpdate = 0;
   return 1;
}

int ownPhDispInit_GSMAMR(sPhaseDispSt* PhState)
{
   ippsZero_16s(PhState->a_GainMemory, LTP_GAIN_MEM_SIZE);
   PhState->vPrevState = 0;
   PhState->vPrevGain = 0;
   PhState->vFlagLockGain = 0;
   PhState->vOnSetGain = 0;          /* assume no onset in start */

   return 1;
}

int ownPostFilterInit_GSMAMR(sPostFilterSt *PostState)
{
   ippsZero_16s(PostState->a_MemSynPst, LP_ORDER_SIZE);
   ippsZero_16s(PostState->a_SynthBuf, LP_ORDER_SIZE);
   PostState->vPastGainScale = 4096;
   PostState->vMemPrevRes = 0;

  return 1;
}

int ownDecoderInit_GSMAMR(sDecoderState_GSMAMR* decState, GSMAMR_Rate_t rate)
{
   /* Initialize static pointer */
   decState->pExcVec = decState->a_ExcVecOld + PITCH_MAX_LAG + FLT_INTER_SIZE;

   /* Static vectors to zero */
   ippsZero_16s(decState->a_ExcVecOld, PITCH_MAX_LAG + FLT_INTER_SIZE);

   if (rate != GSMAMR_RATE_DTX)
     ippsZero_16s(decState->a_MemorySyn, LP_ORDER_SIZE);

   /* initialize pitch sharpening */
   decState->vFlagSharp = PITCH_SHARP_MIN;
   decState->vPrevPitchLag = 40;

   /* Initialize decState->lsp_old [] */

   if (rate != GSMAMR_RATE_DTX) {
      ippsCopy_16s(TableLSPInitData, &decState->a_LSP_Old[0], LP_ORDER_SIZE);
   }

   /* Initialize memories of bad frame handling */
   decState->vPrevBadFr = 0;
   decState->vPrevDegBadFr = 0;
   decState->vStateMachine = 0;

   decState->vLTPLag = 40;
   decState->vBackgroundNoise = 0;
   ippsZero_16s(decState->a_EnergyHistVector, ENERGY_HIST_SIZE);

   /* Initialize hangover handling */
   decState->vCountHangover = 0;
   decState->vVoiceHangover = 0;
   if (rate != GSMAMR_RATE_DTX) {
      ippsZero_16s(decState->a_EnergyHistSubFr, 9);
   }

   ippsZero_16s(decState->a_LTPGainHistory, 9);
   ippsZero_16s(decState->a_GainHistory, CBGAIN_HIST_SIZE);

   /* Initialize hangover handling */
   decState->vHgAverageVar = 0;
   decState->vHgAverageCount= 0;
   if (rate != GSMAMR_RATE_DTX)
     ippsCopy_16s(TableMeanLSF_5, &decState->a_LSPAveraged[0], LP_ORDER_SIZE);
   ippsZero_16s(decState->a_PastQntPredErr, LP_ORDER_SIZE);             /* Past quantized prediction error */

   /* Past dequantized lsfs */
   ippsCopy_16s(TableMeanLSF_5, &decState->a_PastLSFQnt[0], LP_ORDER_SIZE);
   ippsSet_16s(1640, decState->a_LSFBuffer, 5);
   decState->vPastGainZero = 0;
   decState->vPrevGainZero = 16384;
   ippsSet_16s(1, decState->a_GainBuffer, 5);
   decState->vPastGainCode = 0;
   decState->vPrevGainCode = 1;

   if (rate != GSMAMR_RATE_DTX) {
        ippsSet_16s(MIN_ENERGY, decState->a_PastQntEnergy, NUM_PRED_TAPS);
        ippsSet_16s(MIN_ENERGY_M122, decState->a_PastQntEnergy_M122, NUM_PRED_TAPS);
   }

   decState->vCNGen = 21845;
   ownPhDispInit_GSMAMR(&decState->stPhDispState);
   if (rate != GSMAMR_RATE_DTX)
     ownDtxDecoderInit_GSMAMR(&decState->dtxDecoderState);
   ownDecSidSyncReset_GSMAMR(&decState->dtxDecoderState);

   return 1;
}
/*************************************************************************
* apiGSMAMRDecoder_Init()
*   Initializes the decoder object
**************************************************************************/
GSMAMR_CODECFUN( APIGSMAMR_Status, apiGSMAMRDecoder_Init, (GSMAMRDecoder_Obj* decoderObj, unsigned int mode))
{
   int fltSize;
   IPP_ALIGNED_ARRAY(16, Ipp16s, abDec, 6);
   int obj_size = sizeof(GSMAMRDecoder_Obj);
   ippsZero_16s((short*)decoderObj,sizeof(GSMAMRDecoder_Obj)>>1) ;   /* non-initialized data, bug in debug mode AK27.08.01 */
   decoderObj->objPrm.mode = mode;
   decoderObj->objPrm.key = DEC_KEY;
   decoderObj->postProc = (char*)decoderObj + sizeof(GSMAMRDecoder_Obj);
   ippsHighPassFilterSize_G729(&fltSize);
   decoderObj->objPrm.objSize = obj_size+fltSize;

   abDec[0] = a100[0];
   abDec[1] = a100[1];
   abDec[2] = a100[2];
   abDec[3] = b100[0];
   abDec[4] = b100[1];
   abDec[5] = b100[2];
   ownPostFilterInit_GSMAMR(&decoderObj->stPFiltState);
   ippsHighPassFilterInit_G729(abDec,decoderObj->postProc);
   ownDecoderInit_GSMAMR(&decoderObj->stDecState,decoderObj->rate);
   return APIGSMAMR_StsNoErr;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲中文字幕精品| 国产美女一区二区| 麻豆一区二区99久久久久| 美女被吸乳得到大胸91| 成人免费福利片| 91久久精品一区二区三区| 欧美一区二区三区视频在线观看 | 亚洲欧美偷拍卡通变态| 亚洲国产cao| 国产在线看一区| 色综合久久综合| 精品国产3级a| 亚洲黄色av一区| 韩国成人福利片在线播放| 99久久er热在这里只有精品15| 欧美日韩aaaaaa| 久久精品人人做人人综合 | 91免费视频网| 日韩一区二区三区视频| 最新国产精品久久精品| 麻豆成人久久精品二区三区红| 成人毛片视频在线观看| 欧美喷水一区二区| 国产精品无遮挡| 蜜桃视频第一区免费观看| 91丨九色丨蝌蚪丨老版| 精品国产91乱码一区二区三区 | 欧美日韩国产高清一区二区| 国产亚洲va综合人人澡精品| 午夜精品国产更新| 91美女在线视频| 国产视频一区在线播放| 日本中文一区二区三区| 一本在线高清不卡dvd| 久久综合久久综合久久综合| 亚洲一区二区三区视频在线播放| 成人晚上爱看视频| 欧美成人官网二区| 午夜免费久久看| 91麻豆国产福利精品| 久久精品亚洲精品国产欧美| 日本中文字幕一区| 欧美日韩国产综合久久| 亚洲人成小说网站色在线| 国产精品1区2区3区| 日韩一区二区免费在线观看| 亚洲午夜在线观看视频在线| 91麻豆精品视频| 国产精品无遮挡| 国产久卡久卡久卡久卡视频精品| 91精品国产91久久综合桃花| 亚洲国产日韩a在线播放性色| 99国产欧美久久久精品| 国产欧美中文在线| 国产精品一级在线| 久久久不卡网国产精品一区| 蜜臀av一区二区| 538在线一区二区精品国产| 亚洲一区二区三区四区不卡| 色婷婷国产精品| 亚洲欧洲日产国产综合网| 成人在线视频一区二区| 久久久久久电影| 国产成都精品91一区二区三| 国产亚洲一区二区三区四区| 激情文学综合网| 日韩久久久精品| 国内一区二区视频| 久久综合狠狠综合久久综合88| 麻豆国产精品777777在线| 欧美一区二区三区系列电影| 美女尤物国产一区| 精品对白一区国产伦| 国产一区二区美女| 久久精品亚洲精品国产欧美| 成人看片黄a免费看在线| 国产欧美日韩精品在线| 国产成人av福利| 中文字幕欧美区| 成人av电影免费在线播放| 亚洲天堂精品在线观看| 欧美最猛性xxxxx直播| 亚洲国产成人tv| 欧美精品亚洲一区二区在线播放| 日韩电影免费在线观看网站| 精品乱人伦小说| 国产福利不卡视频| 亚洲欧洲成人自拍| 日本精品一区二区三区四区的功能| 一区二区三区免费网站| 欧美日韩国产精品成人| 精品一区精品二区高清| 国产亚洲人成网站| 99v久久综合狠狠综合久久| 一区二区三区四区中文字幕| 欧美精品高清视频| 久久激情五月婷婷| 中文字幕欧美区| 在线视频国内自拍亚洲视频| 蜜臀久久99精品久久久画质超高清| 精品成人一区二区三区| 99在线视频精品| 亚洲大尺度视频在线观看| 欧美变态tickle挠乳网站| 懂色av中文字幕一区二区三区| 亚洲欧美乱综合| 91精品免费观看| 国产成人综合在线| 一级做a爱片久久| 日韩精品综合一本久道在线视频| 成人禁用看黄a在线| 亚洲一区二区三区小说| 亚洲精品在线免费观看视频| 99久久免费精品| 欧美aⅴ一区二区三区视频| 国产女同互慰高潮91漫画| 在线一区二区三区| 九九在线精品视频| 自拍视频在线观看一区二区| 91精品国产91热久久久做人人| 国产高清一区日本| 午夜久久福利影院| 国产精品蜜臀在线观看| 欧美精品自拍偷拍| av高清久久久| 美女免费视频一区二区| 亚洲色图另类专区| 日韩精品一区在线| 色综合久久久久综合99| 国产一区二三区好的| 亚洲二区在线观看| 国产精品午夜电影| 日韩欧美的一区| 91成人在线免费观看| 国产精品综合在线视频| 亚洲va韩国va欧美va| 国产日韩欧美综合一区| 欧美精品电影在线播放| 一本大道久久a久久综合| 国产综合色视频| 五月天久久比比资源色| 中文字幕视频一区二区三区久| 精品国产乱码久久久久久浪潮| 欧美日韩电影在线播放| av亚洲精华国产精华| 国产精品一区免费在线观看| 婷婷丁香激情综合| 亚洲免费在线视频| 亚洲国产精品v| 精品国产一区二区三区忘忧草| 欧美日韩高清在线| 在线视频你懂得一区二区三区| 播五月开心婷婷综合| 国产成人精品www牛牛影视| 美国十次综合导航| 婷婷成人激情在线网| 亚洲人成伊人成综合网小说| 欧美国产一区视频在线观看| 精品日韩在线观看| 91精品在线麻豆| 欧美亚洲综合色| 在线这里只有精品| 91在线porny国产在线看| 国产成人亚洲综合色影视| 狠狠色丁香婷婷综合久久片| 男女性色大片免费观看一区二区 | 日韩欧美第一区| 欧美一区二区三区视频在线| 在线成人高清不卡| 欧美精品九九99久久| 欧美日韩一区二区三区在线| 在线视频一区二区三区| 日本高清免费不卡视频| 一本大道久久a久久综合| 91免费小视频| 91成人免费网站| 在线观看亚洲专区| 91福利在线看| 欧美视频日韩视频| 欧美亚洲国产一区二区三区va| 欧美在线不卡一区| 欧美三级三级三级爽爽爽| 欧美日韩在线精品一区二区三区激情| 色妞www精品视频| 在线观看日产精品| 欧美午夜寂寞影院| 777a∨成人精品桃花网| 666欧美在线视频| 日韩午夜av一区| 精品国产欧美一区二区| 久久免费视频色| 国产欧美日本一区视频| 国产精品国产自产拍在线| 亚洲人妖av一区二区| 一区二区三区日韩欧美精品| 亚洲一本大道在线| 欧美a级理论片| 国产宾馆实践打屁股91| 99视频精品免费视频| 一本色道久久综合亚洲aⅴ蜜桃|