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

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

?? dtxgsmamr.c

?? G.711,G.723.1,G.726,G.729,GSM CODEC C/C++ code
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*/////////////////////////////////////////////////////////////////////////////
//
//                  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: DTX utilities.
//
*/

#include "owngsmamr.h"

#define  NB_PULSE 10 /* number of random pulses in DTX operation   */

/***************************************************************************
*  Function    : ownDecSidSyncReset_GSMAMR
***************************************************************************/
int ownDecSidSyncReset_GSMAMR(sDTXDecoderSt *dtxState)
{

   dtxState->vSinceLastSid = 0;
   dtxState->vDTXHangCount = DTX_HANG_PERIOD;
   dtxState->vExpireCount = 32767;
   dtxState->vDataUpdated = 0;
   return 0;
}

enum enDTXStateType ownDecSidSync(sDTXDecoderSt *dtxState, RXFrameType frame_type)
{
   enum enDTXStateType newState;
   int d_dtxHangoverAdded=0;

   /* set DTX state to: SPEECH, DTX or DTX_MUTE  */
   if ((frame_type == RX_SID_FIRST)   ||
       (frame_type == RX_SID_UPDATE)  ||
       (frame_type == RX_SID_BAD)     ||
       (((dtxState->eDTXPrevState == DTX) ||
         (dtxState->eDTXPrevState == DTX_MUTE)) &&
        ((frame_type == RX_NO_DATA) ||
         (frame_type == RX_SPEECH_BAD) ||
         (frame_type == RX_ONSET))))
   {
      newState = DTX;

      dtxState->vSinceLastSid++;

      if ((dtxState->eDTXPrevState == DTX_MUTE) &&
          ((frame_type == RX_SID_BAD) ||
           (frame_type == RX_SID_FIRST) ||
           (frame_type == RX_ONSET) ||
           (frame_type == RX_NO_DATA)))
      {
         newState = DTX_MUTE;
      }

      if( (frame_type != RX_SID_UPDATE) && (dtxState->vSinceLastSid > DTX_MAX_EMPTY_THRESH) ) {
         /* DTX_MUTE threshold exceeded*/
         newState = DTX_MUTE;
         dtxState->vSinceLastSid = 0;
      }
   } else {
      newState = SPEECH;
      dtxState->vSinceLastSid = 0;
   }

   if((dtxState->vDataUpdated == 0) && (frame_type == RX_SID_UPDATE))
      dtxState->vExpireCount = 0;

   if (dtxState->vExpireCount != 32767) dtxState->vExpireCount++;

   if ((frame_type == RX_SPEECH_GOOD)  ||
       (frame_type == RX_SPEECH_DEGRADED) ||
       (frame_type == RX_SPEECH_BAD) ||
       ((frame_type == RX_NO_DATA) && (newState == SPEECH)) /*REL-4 Version 4.1.0 */
      )
   {
      dtxState->vDTXHangCount = DTX_HANG_PERIOD;
   } else {

      if (dtxState->vExpireCount > DTX_ELAPSED_FRAMES_THRESH) {
         d_dtxHangoverAdded = 1;
         dtxState->vExpireCount = 0;
         dtxState->vDTXHangCount = 0;
      } else if (dtxState->vDTXHangCount == 0) {
         dtxState->vExpireCount = 0;
      } else {
         dtxState->vDTXHangCount--;
      }
   }

   if (newState != SPEECH) {
     /* DTX or DTX_MUTE */
      if (frame_type == RX_SID_FIRST) {
         dtxState->vSinceLastSid = 0;
         if(d_dtxHangoverAdded != 0)
            dtxState->vDataUpdated = 1;
      } else if (frame_type == RX_SID_UPDATE) {
         dtxState->vSinceLastSid = 0;
         dtxState->vDataUpdated = 1;
      } else if (frame_type == RX_SID_BAD) {
         dtxState->vSinceLastSid = 0;
      }
   }

   if(frame_type == RX_NO_DATA)
       newState = DTX_NODATA;

   return newState;
   /* newState is used by both SPEECH AND DTX synthesis routines */
}

/*************************************************************************
 *   Function: ownGenNoise_GSMAMR
 *************************************************************************/
short ownGenNoise_GSMAMR (int *pShiftReg, short numBits)
{
   short noise_bits, State, i;

   noise_bits = 0;
   for (i = 0; i < numBits; i++)  {
      /* State n == 31 */
      if ((*pShiftReg & 0x00000001) != 0) State = 1;
      else                                State = 0;
      /* State n == 3 */
      if ((*pShiftReg & 0x10000000) != 0) State = State ^ 1;
      else                                State = State ^ 0;

      noise_bits <<= 1;
      noise_bits = noise_bits | ((short)*pShiftReg & 1);
      *pShiftReg = *pShiftReg >> 1;

      if(State & 1) *pShiftReg = *pShiftReg | 0x40000000;
   }

   return noise_bits;
}

/***************************************************************************
*  Function : ownBuildCNCode_GSMAMR
***************************************************************************/
void ownBuildCNCode_GSMAMR (int *seed, short *pCNVec)
{
   short i, j, k;
   ippsZero_16s(pCNVec, SUBFR_SIZE_GSMAMR);

   for (k = 0; k < NB_PULSE; k++) {
      i = ownGenNoise_GSMAMR(seed, 2);      /* generate pulse position */
      i = i * 10 + k;
      j = ownGenNoise_GSMAMR(seed, 1);      /* generate sign           */
      if (j > 0) pCNVec[i] = 4096;
      else       pCNVec[i] = -4096;
   }
   return;
}

/*************************************************************************
 *   Function: ownBuildCNParam_GSMAMR
 *************************************************************************/
void ownBuildCNParam_GSMAMR(short *seed, const short numParam, const short *pTableSizeParam,
                            short *pCNParam)
{
   short i;
   const short *ptr_wnd;

   *seed = (short)(*seed * 31821 + 13849L);
   ptr_wnd = &TableHammingWindow[*seed & 0x7F];
   for(i=0; i< numParam;i++){
     pCNParam[i] = *ptr_wnd++ & ~(0xFFFF<<pTableSizeParam[i]);
   }
}

/*************************************************************************
 *  Function:   ownDecLSPQuantDTX_GSMAMR()
 *************************************************************************/
void ownDecLSPQuantDTX_GSMAMR(short *a_PastQntPredErr, short *a_PastLSFQnt, short BadFrInd,
                              short *indice, short *lsp1_q)
{
    short i, index;
    short *p_dico, temp;
    IPP_ALIGNED_ARRAY(16, short, lsf1_r, LP_ORDER_SIZE);
    IPP_ALIGNED_ARRAY(16, short, lsf1_q, LP_ORDER_SIZE);

    if (BadFrInd != 0) {  /* if bad frame */
        for(i = 0; i < LP_ORDER_SIZE; i++)
          lsf1_q[i] = ((a_PastLSFQnt[i] * ALPHA_09) >> 15) + ((TableMeanLSF_3[i] * ONE_ALPHA) >> 15);

        for (i = 0; i < LP_ORDER_SIZE; i++) {
          temp = TableMeanLSF_3[i] + a_PastQntPredErr[i];
          a_PastQntPredErr[i] = lsf1_q[i] - temp;
        }
    } else {
       /* MR59, MR67, MR74, MR102, MRDTX */
        index = *indice++;
        p_dico = &TableDecCode1LSF_3[3*index];
        lsf1_r[0] = *p_dico++;
        lsf1_r[1] = *p_dico++;
        lsf1_r[2] = *p_dico++;

        index = *indice++;
        p_dico = &TableDecCode2LSF_3[3*index];
        lsf1_r[3] = *p_dico++;
        lsf1_r[4] = *p_dico++;
        lsf1_r[5] = *p_dico++;

        index = *indice++;
        p_dico = &TableDecCode3LSF_3[index << 2];
        lsf1_r[6] = *p_dico++;
        lsf1_r[7] = *p_dico++;
        lsf1_r[8] = *p_dico++;
        lsf1_r[9] = *p_dico++;

        for (i = 0; i < LP_ORDER_SIZE; i++) {
           temp = TableMeanLSF_3[i] + a_PastQntPredErr[i];
           lsf1_q[i] = lsf1_r[i] + temp;
           a_PastQntPredErr[i] = lsf1_r[i];
        }
    }
    ownReorderLSFVec_GSMAMR(lsf1_q, LSF_GAP, LP_ORDER_SIZE);
    ippsCopy_16s(lsf1_q, a_PastLSFQnt, LP_ORDER_SIZE);
    ippsLSFToLSP_GSMAMR_16s(lsf1_q, lsp1_q);

    return;
}

static __ALIGN32 CONST short lsf_hist_mean_scale[LP_ORDER_SIZE] = {
   20000, 20000, 20000, 20000, 20000, 18000, 16384, 8192,  0,  0
};
static __ALIGN32 CONST short dtx_log_en_adjust[9] =
{

/* MR475  MR515   MR59   MR67   MR74  MR795  MR102  MR122  MRDTX */
  -1023,   -878,  -732,  -586,  -440,  -294,  -148,     0,     0
};

/***************************************************************************
*  Function    : ownDTXDecoder_GSMAMR
***************************************************************************/
int ownDTXDecoder_GSMAMR(sDTXDecoderSt *dtxState, short *a_MemorySyn, short *a_PastQntPredErr,
                         short *a_PastLSFQnt, short *a_PastQntEnergy, short *a_PastQntEnergy_M122,
                         short *vHgAverageVar, short *vHgAverageCount, enum enDTXStateType newState,
                         GSMAMR_Rate_t rate, short *pParmVec, short *pSynthSpeechVec, short *pA_LP)
{
   short logEnergyIdx;
   short i, j;
   short int_fac;
   int logEnergy_long;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产色蜜蜜麻豆| 国产精品2024| 国产成人在线看| 欧美日韩一区二区电影| 国产亚洲短视频| 日韩中文字幕不卡| 91看片淫黄大片一级| 欧美一区二区三区思思人| 国产精品国产自产拍高清av王其| 秋霞午夜鲁丝一区二区老狼| 96av麻豆蜜桃一区二区| 26uuu国产日韩综合| 午夜免费久久看| 色系网站成人免费| 国产精品妹子av| 国产一区二区三区四区五区美女 | 精品无人区卡一卡二卡三乱码免费卡| yourporn久久国产精品| 精品国产电影一区二区| 丝袜亚洲另类丝袜在线| 欧美中文字幕不卡| 亚洲精品国产一区二区精华液| 国产不卡高清在线观看视频| 日韩欧美一二三四区| 亚洲高清免费视频| 在线视频你懂得一区| 国产精品电影一区二区三区| 国产成人午夜视频| 久久久99免费| 国产精一品亚洲二区在线视频| 日韩欧美色综合网站| 天天操天天干天天综合网| 欧美性xxxxx极品少妇| 亚洲精品va在线观看| 色8久久精品久久久久久蜜| 1区2区3区国产精品| jlzzjlzz亚洲女人18| 国产精品久久久99| 色综合久久久网| 一区二区三区四区乱视频| 色综合激情五月| 亚洲国产成人va在线观看天堂| 欧美日韩国产首页| 日精品一区二区三区| 日韩一区二区三免费高清| 狠狠色丁香婷婷综合| 久久精品一二三| 99在线视频精品| 亚洲午夜久久久久久久久电影网| 欧美日韩国产免费一区二区| 毛片一区二区三区| 国产亚洲精品bt天堂精选| 91香蕉视频在线| 图片区小说区国产精品视频| 日韩精品一区二区三区中文不卡| 国产一区二区在线免费观看| 国产精品麻豆视频| 欧美三片在线视频观看| 久久精品久久精品| 国产欧美日韩三级| 日本高清不卡aⅴ免费网站| 天天综合天天做天天综合| 日韩午夜在线播放| 成人精品国产免费网站| 亚洲国产人成综合网站| 欧美电影免费观看高清完整版在| 国产99久久久精品| 亚洲成精国产精品女| 亚洲精品一线二线三线| 94色蜜桃网一区二区三区| 蜜臀91精品一区二区三区| 中文字幕免费一区| 91精品国产免费| www.亚洲在线| 日本不卡一二三| 亚洲精品欧美二区三区中文字幕| 日韩精品专区在线影院观看| 91丨九色丨蝌蚪丨老版| 狠狠色丁香婷婷综合| 亚洲第一成年网| 国产精品美女久久久久久久| 日韩视频国产视频| 色综合久久88色综合天天免费| 蜜桃精品视频在线观看| 亚洲综合色丁香婷婷六月图片| 精品91自产拍在线观看一区| 欧美日韩综合在线免费观看| 成人免费观看男女羞羞视频| 免费在线观看日韩欧美| 亚洲精品伦理在线| 日本一区二区免费在线| 日韩一级精品视频在线观看| 欧美亚洲日本国产| 99国产精品一区| 国产剧情一区在线| 另类人妖一区二区av| 亚洲国产日韩一区二区| 国产精品久99| 国产精品日韩精品欧美在线| 久久女同精品一区二区| 日韩一级二级三级| 777午夜精品视频在线播放| 色8久久人人97超碰香蕉987| a美女胸又www黄视频久久| 国产精品一区二区男女羞羞无遮挡| 日韩国产成人精品| 午夜视频在线观看一区二区三区| 亚洲男同1069视频| 亚洲天堂av一区| 国产精品久久久久精k8| 中文字幕在线一区| 国产精品久久一卡二卡| 国产亚洲美州欧州综合国| www国产成人| 国产欧美一区视频| 国产精品久久久久桃色tv| 国产精品丝袜在线| 亚洲丝袜自拍清纯另类| 一区二区三区中文字幕| 亚洲午夜私人影院| 五月天一区二区| 手机精品视频在线观看| 久久97超碰色| 国产很黄免费观看久久| 国产91在线看| 色噜噜狠狠成人中文综合| 在线亚洲欧美专区二区| 欧美色网一区二区| 日韩欧美一级二级| 久久九九久精品国产免费直播| 国产免费久久精品| 亚洲四区在线观看| 婷婷综合在线观看| 美女一区二区在线观看| 处破女av一区二区| 色呦呦网站一区| 91麻豆精品国产| 国产亚洲欧美日韩日本| 自拍偷拍亚洲激情| 亚洲不卡一区二区三区| 卡一卡二国产精品| www.亚洲在线| 欧美一区二区二区| 国产精品色眯眯| 日韩av电影免费观看高清完整版在线观看| 欧美一级日韩一级| 国产欧美一区二区三区沐欲| 亚洲欧洲中文日韩久久av乱码| 亚洲国产一区二区三区| 韩国一区二区三区| 在线视频国内自拍亚洲视频| 精品国产凹凸成av人导航| 国产精品色在线观看| 亚洲人成小说网站色在线| 日本少妇一区二区| 99精品欧美一区二区蜜桃免费| 欧美二区在线观看| 国产精品成人免费在线| 午夜电影久久久| av网站免费线看精品| 日韩女同互慰一区二区| 亚洲免费观看高清完整版在线观看熊| 日韩成人伦理电影在线观看| 97精品久久久午夜一区二区三区| 欧美一区二区人人喊爽| 综合亚洲深深色噜噜狠狠网站| 美腿丝袜亚洲一区| 欧美性色综合网| 国产精品亲子伦对白| 美女视频一区在线观看| 91福利区一区二区三区| 中日韩av电影| 九色|91porny| 欧美卡1卡2卡| 一个色在线综合| 972aa.com艺术欧美| 国产片一区二区| 韩国中文字幕2020精品| 538prom精品视频线放| 亚洲欧美电影一区二区| 国产精品99久久久久久久女警| 91精品国产91久久综合桃花| 亚洲美女少妇撒尿| 成人免费电影视频| 国产日韩欧美麻豆| 国产伦精一区二区三区| 日韩欧美国产麻豆| 日韩精品视频网站| 欧美四级电影网| 亚洲国产美女搞黄色| 一本色道久久综合亚洲精品按摩| 中文字幕欧美三区| 国产精品一二三| 国产日韩精品一区| 丰满岳乱妇一区二区三区| 久久久久久久久久久久久夜| 久草中文综合在线| 精品成人免费观看| 国产一区二区免费在线| 久久午夜老司机|