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

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

?? decgsmfr.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) 2004-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: GSM FR 06.10: decoder API.
//
*/

#include    "ippsc.h"
#include    "owngsmfr.h"

/* Table GSM 06.10 5.5 Normalized inverse mantissa used to compute xM/xmax */
static __ALIGN32 CONST short FAC[8] = { 18431, 20479, 22527, 24575, 26623, 28671, 30719, 32767};

/*short term residual signal == ST RS*/
GSMFR_CODECFUN( APIGSMFR_Status, apiGSMFRDecoder_GetSize,
         (GSMFRDecoder_Obj* decoderObj, unsigned int *pCodecSize))
{
   if(NULL == decoderObj)
      return APIGSMFR_StsBadArgErr;
   if(NULL == pCodecSize)
      return APIGSMFR_StsBadArgErr;
   if(decoderObj->objPrm.key != DEC_KEY)
      return APIGSMFR_StsNotInitialized;

   *pCodecSize = decoderObj->objPrm.objSize;
   return APIGSMFR_StsNoErr;
}
GSMFR_CODECFUN( APIGSMFR_Status, apiGSMFRDecoder_Alloc,
                (int *pSizeTab)) {
   int allocSize=sizeof(GSMFRDecoder_Obj);
   pSizeTab[0] =  allocSize;
   return APIGSMFR_StsNoErr;
}
GSMFR_CODECFUN( APIGSMFR_Status, apiGSMFRDecoder_Init, (GSMFRDecoder_Obj *decoderObj,
                                                        GSMFR_Params_t *params )) {
   if(!decoderObj) return APIGSMFR_StsBadArgErr;
   ippsZero_8u((Ipp8u*)decoderObj,sizeof(GSMFRDecoder_Obj));
   decoderObj->objPrm.cutLTPFlag = params->ltp_f;
   decoderObj->objPrm.key = DEC_KEY;

   return APIGSMFR_StsNoErr;
}
/* Table 5.3b Quantization levels of the LTP gain quantizer
* bc 0 1 2 3
* GSM 06.10 5.3.2. bcr and Ncr parameters were used for
* LT synthesis filtering.  The decoding of bcr needs
* table 5.3b.
* Compute reconstructed ST RS drp
*/
static __ALIGN32 CONST short gsm_QLB[4] = {  3277,    11469,    21299,     32767};
static void GsmLongTSF(GSMFRDecoder_Obj *pObj, short Ncr, short idx, short *erp, /* 40 in */
                short *drp) /*[-120..-1] in, [-120..40] out */
{
  short tmp[40], Nr;
   Nr = (short)(Ncr < 40 || Ncr > 120 ? pObj->nrp : Ncr);
   pObj->nrp = Nr;
   ippsMulC_NR_16s_Sfs( &drp[-Nr],gsm_QLB[idx],tmp,40,15);
   ippsAdd_16s_Sfs(erp,tmp,drp,40,0);
   ippsCopy_16s(&drp[ -80], &drp[ -120],120);
}
static void GsmShortTSF(short *LARpp_j ,
                       const short *LARpp_j_1,
                       const short *LARcr, /* 8 in */
                       const short *wt,    /* 160 in  */
                       short *s,           /* 160 out */
                       short *pMem)
{
   short  LARp[4*8];
   DecCodLAR( LARcr, LARpp_j,8 );
   /* 5.2.9.1 */
   Interpolate_GSMFR_16s( LARpp_j_1, LARpp_j, LARp,8 );
   ippsInterpolate_G729_16s (LARpp_j_1,LARpp_j,LARp+8,8);
   Interpolate_GSMFR_16s( LARpp_j,LARpp_j_1,  LARp+16,8);
   ippsCopy_16s( LARpp_j, LARp+24,8 );

   LARp2RC( LARp, 32 );
   ippsShortTermSynthesisFilter_GSMFR_16s( LARp   , wt     , s     , 13, pMem);
   ippsShortTermSynthesisFilter_GSMFR_16s( LARp+8 , wt + 13, s + 13, 14, pMem);
   ippsShortTermSynthesisFilter_GSMFR_16s( LARp+16, wt + 27, s + 27, 13, pMem);
   ippsShortTermSynthesisFilter_GSMFR_16s( LARp+24, wt + 40, s + 40,120, pMem);
}
static int Gsm_Decoder(GSMFRDecoder_Obj *pObj,
                        short *LARcr,  /*8 in*/
                        short *Ncr,    /*4 in*/
                        short *bcr,    /*4 in*/
                        short *Mcr,    /*4 in*/
                        short *xmaxcr, /*4 in*/
                        short *xMcr,   /*[14*4]in*/
                        short *s) {    /*160 out*/
   int     j;
   short   erp[40], wt[GSMFR_EXT_FRAME_LEN];
   short  *drp = pObj->dp0 + 120;
   for(j=0; j <4; j++, xMcr += 13) {
      GsmRPEDec(xmaxcr[j], Mcr[j], xMcr, erp );
      GsmLongTSF( pObj, Ncr[j], bcr[j], erp, drp );
      ippsCopy_16s(drp,&wt[j*40],40);
   }
   GsmShortTSF(pObj->LARpp[ pObj->idx],pObj->LARpp[ pObj->idx^1],LARcr, wt, s, pObj->v );
   pObj->idx^= 1;
   ippsDeemphasize_GSMFR_16s_I( s,GSMFR_EXT_FRAME_LEN,&pObj->msr);
   return 0;
}
GSMFR_CODECFUN( APIGSMFR_Status, apiGSMFRDecode,
                ( GSMFRDecoder_Obj *pObj,const uchar *c, short *dst)) {
   short  LLARc[8], NNc[4], MMc[4], Bbc[4], Xxmaxc[4], XxMMc[13*4];
   LLARc[0]  =(short)( (c[0] & 0xF) << 2);
   LLARc[0] |=(short)( (c[1] >> 6) & 0x3);
   LLARc[1]  =(short)( c[1] & 0x3F);
   LLARc[2]  =(short)( (c[2] >> 3) & 0x1F);
   LLARc[3]  =(short)( (c[2] & 0x7) << 2);
   LLARc[3] |=(short)( (c[3] >> 6) & 0x3);
   LLARc[4]  =(short)( (c[3] >> 2) & 0xF);
   LLARc[5]  =(short)( (c[3] & 0x3) << 2);
   LLARc[5] |=(short)( (c[4] >> 6) & 0x3);
   LLARc[6]  =(short)( (c[4] >> 3) & 0x7);
   LLARc[7]  =(short)( c[4] & 0x7);
   NNc[0]    =(short)( (c[5] >> 1) & 0x7F);
   NNc[1]     =(short)( (c[12] >> 1) & 0x7F);
   NNc[2]     =(short)( (c[19] >> 1) & 0x7F);
   NNc[3]     =(short)( (c[26] >> 1) & 0x7F);
   Bbc[0]    =(short)( (c[5] & 0x1) << 1);
   Bbc[0]   |=(short)( (c[6] >> 7) & 0x1);
   MMc[0]    =(short)( (c[6] >> 5) & 0x3);
   MMc[1]     =(short)( (c[13] >> 5) & 0x3);
   MMc[2]     =(short)( (c[20] >> 5) & 0x3);
   MMc[3]     =(short)( (c[27] >> 5) & 0x3);
   Xxmaxc[0] =(short)( (c[6] & 0x1F) << 1);
   Xxmaxc[0]|=(short)( (c[7] >> 7) & 0x1);
   XxMMc[0]  =(short)( (c[7] >> 4) & 0x7);
   XxMMc[1]  =(short)( (c[7] >> 1) & 0x7);
   XxMMc[2]  =(short)( (c[7] & 0x1) << 2);
   XxMMc[2] |=(short)( (c[8] >> 6) & 0x3);
   XxMMc[3]  =(short)( (c[8] >> 3) & 0x7);
   XxMMc[4]  =(short)( c[8] & 0x7);
   XxMMc[5]  =(short)( (c[9] >> 5) & 0x7);
   XxMMc[6]  =(short)( (c[9] >> 2) & 0x7);
   XxMMc[7]  =(short)( (c[9] & 0x3) << 1);
   XxMMc[7] |=(short)( (c[10] >> 7) & 0x1);
   XxMMc[8]  =(short)( (c[10] >> 4) & 0x7);
   XxMMc[9]  =(short)( (c[10] >> 1) & 0x7);
   XxMMc[10]  =(short)( (c[10] & 0x1) << 2);
   XxMMc[10] |=(short)( (c[11] >> 6) & 0x3);
   XxMMc[11]  =(short)( (c[11] >> 3) & 0x7);
   XxMMc[12]  =(short)( c[11] & 0x7);
   Bbc[1]     =(short)( (c[12] & 0x1) << 1);
   Bbc[1]    |=(short)( (c[13] >> 7) & 0x1);
   Xxmaxc[1]  =(short)( (c[13] & 0x1F) << 1);
   Xxmaxc[1] |=(short)( (c[14] >> 7) & 0x1);
   XxMMc[13]  =(short)( (c[14] >> 4) & 0x7);
   XxMMc[14]  =(short)( (c[14] >> 1) & 0x7);
   XxMMc[15]  =(short)( (c[14] & 0x1) << 2);
   XxMMc[15] |=(short)( (c[15] >> 6) & 0x3);
   XxMMc[16]  =(short)( (c[15] >> 3) & 0x7);
   XxMMc[17]  =(short)( c[15] & 0x7);
   XxMMc[18]  =(short)( (c[16] >> 5) & 0x7);
   XxMMc[19]  =(short)( (c[16] >> 2) & 0x7);
   XxMMc[20]  =(short)( (c[16] & 0x3) << 1);
   XxMMc[20] |=(short)( (c[17] >> 7) & 0x1);
   XxMMc[21]  =(short)( (c[17] >> 4) & 0x7);
   XxMMc[22]  =(short)( (c[17] >> 1) & 0x7);
   XxMMc[23]  =(short)( (c[17] & 0x1) << 2);
   XxMMc[23] |=(short)( (c[18] >> 6) & 0x3);
   XxMMc[24]  =(short)( (c[18] >> 3) & 0x7);
   XxMMc[25]  =(short)( c[18] & 0x7);
   Bbc[2]     =(short)( (c[19] & 0x1) << 1);
   Bbc[2]    |=(short)( (c[20] >> 7) & 0x1);
   Xxmaxc[2]  =(short)( (c[20] & 0x1F) << 1);
   Xxmaxc[2] |=(short)( (c[21] >> 7) & 0x1);
   XxMMc[26]  =(short)( (c[21] >> 4) & 0x7);
   XxMMc[27]  =(short)( (c[21] >> 1) & 0x7);
   XxMMc[28]  =(short)( (c[21] & 0x1) << 2);
   XxMMc[28] |=(short)( (c[22] >> 6) & 0x3);
   XxMMc[29]  =(short)( (c[22] >> 3) & 0x7);
   XxMMc[30]  =(short)( c[22] & 0x7);
   XxMMc[31]  =(short)( (c[23] >> 5) & 0x7);
   XxMMc[32]  =(short)( (c[23] >> 2) & 0x7);
   XxMMc[33]  =(short)( (c[23] & 0x3) << 1);
   XxMMc[33] |=(short)( (c[24] >> 7) & 0x1);
   XxMMc[34]  =(short)( (c[24] >> 4) & 0x7);
   XxMMc[35]  =(short)( (c[24] >> 1) & 0x7);
   XxMMc[36]  =(short)( (c[24] & 0x1) << 2);
   XxMMc[36] |=(short)( (c[25] >> 6) & 0x3);
   XxMMc[37]  =(short)( (c[25] >> 3) & 0x7);
   XxMMc[38]  =(short)( c[25] & 0x7);
   Bbc[3]     =(short)( (c[26] & 0x1) << 1);
   Bbc[3]    |=(short)( (c[27] >> 7) & 0x1);
   Xxmaxc[3]  =(short)( (c[27] & 0x1F) << 1);
   Xxmaxc[3] |=(short)( (c[28] >> 7) & 0x1);
   XxMMc[39]  =(short)( (c[28] >> 4) & 0x7);
   XxMMc[40]  =(short)( (c[28] >> 1) & 0x7);
   XxMMc[41]  =(short)( (c[28] & 0x1) << 2);
   XxMMc[41] |=(short)( (c[29] >> 6) & 0x3);
   XxMMc[42]  =(short)( (c[29] >> 3) & 0x7);
   XxMMc[43]  =(short)( c[29] & 0x7);
   XxMMc[44]  =(short)( (c[30] >> 5) & 0x7);
   XxMMc[45]  =(short)( (c[30] >> 2) & 0x7);
   XxMMc[46]  =(short)( (c[30] & 0x3) << 1);
   XxMMc[46] |=(short)( (c[31] >> 7) & 0x1);
   XxMMc[47]  =(short)( (c[31] >> 4) & 0x7);
   XxMMc[48]  =(short)( (c[31] >> 1) & 0x7);
   XxMMc[49]  =(short)( (c[31] & 0x1) << 2);
   XxMMc[49] |=(short)( (c[32] >> 6) & 0x3);
   XxMMc[50]  =(short)( (c[32] >> 3) & 0x7);
   XxMMc[51]  =(short)( c[32] & 0x7);
   Gsm_Decoder(pObj, LLARc, NNc, Bbc, MMc, Xxmaxc, XxMMc, dst);
   return APIGSMFR_StsNoErr;
}

int GsmRPEDec(short  xmaxcr, short  Mcr, short *xMcr,  /*13 (3 bits) in*/
               short *erp)/*40 out */
{
   short exp, mant;
   short xMp[ 13 ];

    APCMQuant( xmaxcr, &exp, &mant );
    ippsRPEQuantDecode_GSMFR_16s( xMcr, FAC[mant], (short)(6-exp), xMp );
    ippsZero_16s(erp,40);
    RPEGridPos( xMp, Mcr, erp );
    return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线精品免费| 日韩网站在线看片你懂的| 欧美性淫爽ww久久久久无| 日韩视频中午一区| 亚洲精品大片www| 国产v综合v亚洲欧| 欧美va在线播放| 午夜精品爽啪视频| 91视视频在线观看入口直接观看www| 6080国产精品一区二区| 亚洲激情第一区| 99久久久精品| 国产精品夫妻自拍| 国产成人av电影| 国产午夜亚洲精品不卡| 老司机免费视频一区二区| 欧美怡红院视频| 一区二区日韩电影| a在线欧美一区| 国产精品麻豆视频| 粉嫩一区二区三区在线看| 亚洲精品一区二区三区香蕉| 免费成人小视频| 91精品国产黑色紧身裤美女| 亚洲一区二区在线免费看| 99久久精品国产观看| 欧美精品一区二区三区蜜桃视频| 日韩精品91亚洲二区在线观看| 欧美中文字幕一二三区视频| 亚洲欧美综合另类在线卡通| 丁香另类激情小说| 亚洲国产精品高清| 99久久99久久久精品齐齐| 国产精品污污网站在线观看| 国产福利91精品一区二区三区| 精品免费日韩av| 国产成人免费视频一区| www成人在线观看| 国产99久久久国产精品免费看| 欧美高清一级片在线观看| 成人黄色大片在线观看| 亚洲欧洲日产国码二区| 日本电影欧美片| 天天综合日日夜夜精品| 日韩精品一区二区三区在线观看 | 麻豆一区二区在线| 日韩欧美国产1| 国产不卡免费视频| 亚洲色图在线视频| 欧美日韩一区二区三区高清| 日产国产高清一区二区三区| 欧美电影免费观看高清完整版在线 | 99国产欧美另类久久久精品 | 99这里只有久久精品视频| 亚洲天堂成人在线观看| 欧美日韩视频专区在线播放| 秋霞成人午夜伦在线观看| 2023国产精品| 色综合久久综合网97色综合| 日韩电影在线观看电影| 久久综合色婷婷| 91高清视频在线| 轻轻草成人在线| 国产欧美日韩另类一区| 欧美在线视频日韩| 久久99蜜桃精品| 亚洲精品你懂的| 久久精品水蜜桃av综合天堂| 日本久久一区二区三区| 久草中文综合在线| 亚洲男帅同性gay1069| 日韩亚洲国产中文字幕欧美| www.久久精品| 国产一区久久久| 亚洲大片免费看| 国产精品天干天干在线综合| 欧美伊人久久久久久午夜久久久久| 狠狠色丁香婷综合久久| 一区二区三区在线视频播放| 精品国精品自拍自在线| 欧美影院午夜播放| 岛国一区二区三区| 蜜桃精品视频在线观看| 亚洲一区二区三区免费视频| 国产日韩三级在线| 91精品国产综合久久精品app | 亚洲国产中文字幕在线视频综合| 日韩欧美电影在线| 欧美日韩国产综合视频在线观看 | 国产老女人精品毛片久久| 亚洲制服丝袜在线| 亚洲视频免费观看| 久久久精品免费观看| 日韩写真欧美这视频| 欧美男人的天堂一二区| 91蜜桃视频在线| 成人自拍视频在线观看| 激情深爱一区二区| 免费成人在线观看视频| 亚洲成人手机在线| 亚洲三级小视频| 国产精品的网站| 中文字幕的久久| 国产区在线观看成人精品 | 日韩亚洲电影在线| 欧美日韩精品专区| 在线观看国产91| 一本到三区不卡视频| av激情综合网| 97国产一区二区| 91麻豆文化传媒在线观看| www.激情成人| 97se亚洲国产综合自在线| 成人免费看视频| 国产成人精品免费| 成人在线综合网站| 97久久久精品综合88久久| 色综合欧美在线视频区| 日本精品一区二区三区四区的功能| 成人免费高清在线观看| 99免费精品视频| 日本乱人伦aⅴ精品| 欧美网站一区二区| 欧美日韩不卡视频| 日韩欧美国产午夜精品| 精品国产凹凸成av人网站| 337p日本欧洲亚洲大胆精品| 久久久久国产免费免费| 日韩伦理av电影| 亚洲一区二区高清| 麻豆传媒一区二区三区| 久久99国产精品成人| 国产成人精品免费在线| 色av一区二区| 欧美一区二区三区在| 国产日韩视频一区二区三区| 亚洲人成网站精品片在线观看 | 亚洲美女精品一区| 亚洲第一狼人社区| 精品在线你懂的| 成人av动漫网站| 精品视频一区三区九区| 91麻豆精品国产91久久久久久久久| 久久综合狠狠综合久久综合88| 国产精品国产a| 日韩精品电影在线观看| 国产成人aaa| 欧美日本韩国一区二区三区视频| 2017欧美狠狠色| 亚洲午夜视频在线| 成人永久aaa| 日韩欧美国产精品一区| 亚洲天堂av一区| 久久精品国产成人一区二区三区| 99热国产精品| 久久午夜老司机| 首页亚洲欧美制服丝腿| 成人h动漫精品一区二区| 欧美一区永久视频免费观看| 欧美激情一区三区| 美国av一区二区| 欧美丝袜第三区| 中文字幕精品三区| 久久99热国产| 91麻豆精品91久久久久久清纯| 国产精品女上位| 国产在线精品一区二区不卡了| 欧美系列在线观看| 国产精品网站在线| 精品一区二区免费视频| 欧美日韩一级片在线观看| 国产精品久久久爽爽爽麻豆色哟哟 | 91美女片黄在线观看91美女| 精品国产免费视频| 三级久久三级久久久| 91日韩一区二区三区| 亚洲国产精品二十页| 激情久久五月天| 欧美一区二区免费| 五月天激情综合网| 在线欧美小视频| 亚洲精选视频在线| 91在线观看高清| 最新中文字幕一区二区三区| 国产一区日韩二区欧美三区| 日韩午夜激情av| 久久99久久久欧美国产| 日韩西西人体444www| 青青草97国产精品免费观看| 日本高清成人免费播放| 一区二区三区中文免费| 一本色道a无线码一区v| 亚洲精品第一国产综合野| 色婷婷狠狠综合| 亚洲成人自拍一区| 欧美欧美欧美欧美| 免费观看一级欧美片| 日韩一区二区三区电影在线观看 | 久久久不卡网国产精品一区| 极品少妇一区二区三区精品视频|