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

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

?? encg729.c

?? G.711,G.723.1,G.726,G.729,GSM CODEC C/C++ code
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*/////////////////////////////////////////////////////////////////////////////
//
//                  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.729/A/B/D/E speech codec: encoder API functions.
//
*/

#include <stdio.h>
#include <stdlib.h>
#include <ippsc.h>
#include <ipps.h>
#include "owng729.h"

static __ALIGN32 CONST short LUT1_6k[CDBK1_DIM_6K] = { 0, 4,
 6, 5,
 2, 1,
 7, 3};
static __ALIGN32 CONST short LUT2_6k[CDBK2_DIM_6K] = { 0, 4,
 3, 7,
 5, 1,
 6, 2};

static __ALIGN32 CONST short tab1[3] = {
 (1<<10)+875,
 -3798,
 (1<<10)+875
};
static __ALIGN32 CONST short tab2[3] = {
 (1<<12),
 (1<<12)+3711,
 -3733
};

static __ALIGN32 CONST short hammingWin[LP_WINDOW_DIM] = {
    (1<<11)+573,  (1<<11)+575,(1<<11)+581,  2638,  2651,
    2668,  2689,
    2713,  2741,  2772,
    2808,  2847,  2890,
    2936,  2986,
    3040,  3097,  3158,  3223,  3291,  3363,  3438,  3517,  3599,  3685,  3774,  3867, 3963,
    4063,  4166,  4272,  4382,  4495,  4611,  4731,  4853,  4979,
    5108,  5240,  5376,  5514,  5655,  5800,  5947,
    6097,  6250,  6406,  6565,  6726,  6890,
    7057,  7227,  7399,  7573,  7750,  7930,
    8112,  8296,  8483,  8672,  8863,
    9057,  9252,  9450,  9650,  9852,
    10055, 10261, 10468, 10677, 10888,
    11101, 11315, 11531, 11748, 11967,
    12187, 12409, 12632, 12856,
    13082, 13308, 13536, 13764, 13994,
    14225, 14456, 14688, 14921,
    15155, 15389, 15624, 15859,
    16095, 16331, 16568, 16805,
    17042, 17279, 17516, 17754, 17991,
    18228, 18465, 18702, 18939,
    19175, 19411, 19647, 19882,
    20117, 20350, 20584, 20816, 21048,
    21279, 21509, 21738, 21967,
    22194, 22420, 22644, 22868,
    23090, 23311, 23531, 23749, 23965,
    24181, 24394, 24606, 24816,
    25024, 25231, 25435, 25638, 25839,
    26037, 26234, 26428, 26621, 26811, 26999,
    27184, 27368, 27548, 27727, 27903,
    28076, 28247, 28415, 28581, 28743, 28903,
    29061, 29215, 29367, 29515, 29661, 29804, 29944,
    30081, 30214, 30345, 30472, 30597, 30718, 30836, 30950,
    31062, 31170, 31274, 31376, 31474, 31568, 31659, 31747, 31831, 31911, 31988,
    32062, 32132, 32198, 32261, 32320, 32376, 32428, 32476, 32521, 32561, 32599,
    32632, 32662, 32688, 32711, 32729, 32744, 32755, 32763, IPP_MAX_16S, IPP_MAX_16S,
    32741, 32665, 32537, 32359, 32129,
    31850, 31521, 31143,
    30716, 30242,
    29720, 29151,
    28538,
    27879, 27177,
    26433,
    25647,
    24821,
    23957, 23055,
    22117,
    21145,
    20139,
    19102,
    18036,
    16941,
    15820,
    14674,
    13505,
    12315,
    11106,
    9879,
    8637,
    7381,
    6114,
    4838,
    3554,
    2264,
    971
};

static __ALIGN32 CONST short CodecTypeToRate[5] = {
 3,
 3,
 2,
 4,
 0
};

static __ALIGN32 CONST short prevRCpreset[2]={
 0,
 0
};

static void ACFsumUpd(short *ACFsum,short *ACFsumSfs,short *pACF,short *ACFsfs, int* pSumMem);

static int EncoderObjSize(void) {
    int fltSize;
    int objSize=sizeof(G729Encoder_Obj);
    ippsHighPassFilterSize_G729(&fltSize);
    objSize += fltSize;
    SynthesisFilterSize_G729(&fltSize);
    objSize += 2 * fltSize;
    VoiceActivityDetectSize_G729(&fltSize);
    objSize += fltSize;
    objSize += 4*32;
    return objSize;
}

G729_CODECFUN( APIG729_Status, apiG729Codec_ScratchMemoryAlloc,(int *pCodecSize)) {
    if(NULL==pCodecSize)
        return APIG729_StsBadArgErr;
    *pCodecSize = G729_ENCODER_SCRATCH_MEMORY_SIZE;
    return APIG729_StsNoErr;
}
G729_CODECFUN( APIG729_Status, apiG729Encoder_Alloc,
               (G729Codec_Type codecType, int *pCodecSize)) {
    if((codecType != G729_CODEC)&&(codecType != G729A_CODEC)
       &&(codecType != G729D_CODEC)&&(codecType != G729E_CODEC)&&(codecType != G729I_CODEC)) {
        return APIG729_StsBadCodecType;
    }
    *pCodecSize =  EncoderObjSize();
    return APIG729_StsNoErr;
}

G729_CODECFUN( APIG729_Status, apiG729Encoder_Mode,
               (G729Encoder_Obj* encoderObj, G729Encode_Mode mode)) {
    if(G729Encode_VAD_Enabled != mode && G729Encode_VAD_Disabled != mode) {
        return APIG729_StsBadArgErr;
    }
    encoderObj->objPrm.mode = mode;
    return APIG729_StsNoErr;
}

G729_CODECFUN( APIG729_Status, apiG729Encoder_Init,
               (G729Encoder_Obj* encoderObj, G729Codec_Type codecType, G729Encode_Mode mode)) {
    int i,fltSize;
    Ipp16s abEnc[6];

    if(NULL==encoderObj)
        return APIG729_StsBadArgErr;

    if((codecType != G729_CODEC)&&(codecType != G729A_CODEC)
       &&(codecType != G729D_CODEC)&&(codecType != G729E_CODEC)&&(codecType != G729I_CODEC)) {
        return APIG729_StsBadCodecType;
    }

    ippsZero_16s((short*)encoderObj,sizeof(*encoderObj)>>1) ;

    encoderObj->objPrm.objSize = EncoderObjSize();
    encoderObj->objPrm.mode = mode;
    encoderObj->objPrm.key = ENC_KEY;
    encoderObj->objPrm.codecType=codecType;


    encoderObj->mode = mode;
    encoderObj->preProc = (char*)encoderObj + sizeof(G729Encoder_Obj);
    encoderObj->preProc = IPP_ALIGNED_PTR(encoderObj->preProc, 16);
    ippsHighPassFilterSize_G729(&fltSize);
    encoderObj->synFltw = (char*)encoderObj->preProc + fltSize;
    encoderObj->synFltw = IPP_ALIGNED_PTR(encoderObj->synFltw, 16);
    SynthesisFilterSize_G729(&fltSize);
    encoderObj->synFltw0 = (char*)encoderObj->synFltw + fltSize;
    encoderObj->synFltw0 = IPP_ALIGNED_PTR(encoderObj->synFltw0, 16);
    encoderObj->vadMem  = (char*)encoderObj->synFltw0 + fltSize;
    encoderObj->vadMem = IPP_ALIGNED_PTR(encoderObj->vadMem, 16);
    abEnc[0] = tab2[0]; abEnc[1] = tab2[1]; abEnc[2] = tab2[2];
    abEnc[3] = tab1[0]; abEnc[4] = tab1[1]; abEnc[5] = tab1[2];
    for(i=0;i<4;i++) encoderObj->prevFrameQuantEn[i]=-14336;
    VoiceActivityDetectInit_G729(encoderObj->vadMem);
    ippsHighPassFilterInit_G729(abEnc,encoderObj->preProc);
    SynthesisFilterInit_G729(encoderObj->synFltw);
    SynthesisFilterInit_G729(encoderObj->synFltw0);


    ippsZero_16s(encoderObj->speechHistory,SPEECH_BUF_DIM);
    ippsZero_16s(encoderObj->prevExcitat, L_prevExcitat);
    ippsZero_16s(encoderObj->prevWgtSpeech, MAX_PITCH_LAG);
    ippsZero_16s(encoderObj->resFilMem0,  BWLPCF_DIM);
    encoderObj->betaPreFilter = PITCH_SHARP_MIN;
    ippsCopy_16s(presetOldA, encoderObj->prevSubfrLPC, LPF_DIM+1);
    encoderObj->prevRC[0] = prevRCpreset[0];
    encoderObj->prevRC[1] = prevRCpreset[1];

    ippsCopy_16s(presetLSP, encoderObj->prevSubfrLSP, LPF_DIM);
    ippsCopy_16s(presetLSP, encoderObj->prevSubfrLSPquant, LPF_DIM);
    ippsZero_16s(encoderObj->zeroPostFiltVec1 + BWLPCF_DIM+1, LP_SUBFRAME_DIM);
    encoderObj->BWDcounter2 = 0;
    encoderObj->FWDcounter2 = 0;

    for(i=0; i<LSP_MA_ORDER; i++)
        ippsCopy_16s( &resetPrevLSP[0], &encoderObj->prevLSPfreq[i][0], LPF_DIM);

    for(i=0; i<4; i++) encoderObj->coderErr[i] = BWF_HARMONIC;

    if(encoderObj->objPrm.codecType == G729A_CODEC) {
        encoderObj->seed = SEED_INIT;
        encoderObj->CNGidx = 0;
        ippsZero_16s(encoderObj->encPrm, PARM_DIM+1);
        Init_CNG_encoder(encoderObj);
    } else {
        encoderObj->prevLAR[0]=encoderObj->prevLAR[1]=0;
        encoderObj->prevSubfrSmooth=1;
        encoderObj->seed = SEED_INIT;
        encoderObj->CNGidx = 0;
        encoderObj->dominantBWDmode = 0;
        encoderObj->interpCoeff2_2 = 4506;
        encoderObj->statGlobal = 10000;
        ippsZero_16s(encoderObj->resFilMem, BWLPCF_DIM);
        ippsZero_16s(encoderObj->pPrevFilt, BWLPCF1_DIM);
        encoderObj->pPrevFilt[0] = (1<<12);
        encoderObj->prevLPmode = 0;
        for(i=0; i<5; i++) {
            encoderObj->pLag[i] = 20;
            encoderObj->pGain[i] = 11469;
        }
        ippsZero_16s(encoderObj->encPrm, PARM_DIM+1);
        Init_CNG_encoder(encoderObj);
        ippsZero_16s(encoderObj->BWDsynth, TBWD_DIM);
        encoderObj->pSynth = encoderObj->BWDsynth + SYNTH_BWD_DIM;
        ippsWinHybridGetStateSize_G729E_16s(&fltSize);
        if(fltSize > BWLPCF1_DIM*sizeof(int)) {
            return APIG729_StsNotInitialized;
        }
        ippsWinHybridInit_G729E_16s((IppsWinHybridState_G729E_16s*)&encoderObj->hwState);
        ippsZero_16s(encoderObj->pPrevBwdRC, 2);
        ippsZero_16s(encoderObj->pPrevBwdLPC, BWLPCF1_DIM);
        encoderObj->pPrevBwdLPC[0]=(1<<12);
        ippsZero_16s(encoderObj->pBwdLPC2, BWLPCF1_DIM);
        encoderObj->pBwdLPC2[0] = (1<<12);
        encoderObj->BWDFrameCounter = 0;
        encoderObj->val_BWDFrameCounter = 0;
    }
    return APIG729_StsNoErr;
}
void Init_CNG_encoder(G729Encoder_Obj *encoderObj) {
    short i;
    ippsZero_16s(encoderObj->ACFsum, TOTAL_ACF_DIM);
    for(i=0; i<ACF_TOTAL; i++)
        encoderObj->ACFsumSfs[i] = 40;
    ippsZero_16s(encoderObj->pACF, ACF_DIM);
    for(i=0; i<ACF_NOW; i++)
        encoderObj->ACFsfs[i] = 40;
    for(i=0; i<GAIN_NUM; i++)
        encoderObj->energySfs[i] = 40;
    for(i=0; i<GAIN_NUM; i++)
        encoderObj->energy[i] = 0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线免费视频观看| 久久不见久久见中文字幕免费| 成人在线视频首页| 国产精品入口麻豆九色| 91一区二区三区在线观看| 亚洲另类一区二区| 欧美午夜精品久久久久久孕妇| 亚欧色一区w666天堂| 日韩一区二区三区四区| 国产麻豆一精品一av一免费| 国产精品免费看片| 欧美性猛交xxxx黑人交| 奇米在线7777在线精品| 日本一区二区三区电影| 欧洲国内综合视频| 久久精品国产一区二区| 国产农村妇女毛片精品久久麻豆| 国产成人精品免费网站| 亚洲黄色av一区| 2021中文字幕一区亚洲| 97aⅴ精品视频一二三区| 三级久久三级久久| 日本一区二区三级电影在线观看| 色妹子一区二区| 麻豆精品在线看| 亚洲欧洲韩国日本视频| 91精品国产入口| 不卡av电影在线播放| 日韩av高清在线观看| 国产精品久久久久久久久搜平片| 欧美日韩五月天| 国产成人在线视频播放| 天天综合色天天综合色h| 久久久久成人黄色影片| 欧美视频在线一区二区三区| 国产精品一级二级三级| 亚洲国产精品自拍| 国产欧美一区二区精品久导航| 欧美日韩一二区| 成人美女在线观看| 麻豆国产精品777777在线| 亚洲女同ⅹxx女同tv| 精品国产乱码久久久久久图片| 欧美综合亚洲图片综合区| 国产精品18久久久久久久久久久久 | 欧美日韩国产中文| 成人av在线资源网站| 国产最新精品精品你懂的| 亚洲v中文字幕| 亚洲欧美激情插| 国产欧美精品一区aⅴ影院 | 欧美xingq一区二区| 欧美自拍偷拍午夜视频| av高清久久久| 高清不卡在线观看| 久久99这里只有精品| 午夜精品一区二区三区三上悠亚| 亚洲欧洲精品一区二区三区不卡| 日本一区二区三区四区| 久久久久久久久97黄色工厂| 精品捆绑美女sm三区| 91精品国产综合久久精品app| 91麻豆免费在线观看| 成人高清视频免费观看| 成人av电影观看| 东方欧美亚洲色图在线| 国产精品996| 国产乱子轮精品视频| 国产一区二区精品在线观看| 麻豆精品在线播放| 麻豆久久久久久久| 久久成人18免费观看| 狠狠狠色丁香婷婷综合激情 | 樱桃国产成人精品视频| 日韩美女视频一区二区| 中文字幕日韩一区| 一区二区中文字幕在线| 亚洲裸体在线观看| 一区二区日韩电影| 亚洲成av人在线观看| 日韩精品乱码av一区二区| 日韩影院精彩在线| 久久国产乱子精品免费女| 国内偷窥港台综合视频在线播放| 国产一区二区三区最好精华液| 国产精一区二区三区| 东方欧美亚洲色图在线| 91天堂素人约啪| 欧美日韩在线三区| 日韩欧美国产成人一区二区| 精品欧美一区二区三区精品久久| 欧美精品一区二区三区很污很色的 | 国产欧美一区二区精品性色超碰| 国产欧美一区视频| 亚洲欧美怡红院| 亚洲亚洲人成综合网络| 日本在线播放一区二区三区| 韩国三级在线一区| 9i看片成人免费高清| 欧美伊人久久大香线蕉综合69| 欧美群妇大交群中文字幕| 欧美大胆人体bbbb| 国产精品剧情在线亚洲| 亚洲国产精品久久不卡毛片| 亚洲成a人v欧美综合天堂下载 | 久久综合久久综合亚洲| 国产欧美精品区一区二区三区 | 95精品视频在线| 欧美日本视频在线| 久久久综合九色合综国产精品| 国产精品久久久久久久久免费相片| 亚洲国产精品尤物yw在线观看| 激情综合色播五月| 色婷婷久久久久swag精品| 日韩三级视频在线看| 亚洲欧美综合另类在线卡通| 日韩专区一卡二卡| www.视频一区| 欧美videos大乳护士334| 亚洲黄色av一区| 国产精品18久久久久久vr| 在线观看www91| 久久久综合网站| 水蜜桃久久夜色精品一区的特点| 国产91清纯白嫩初高中在线观看 | 老司机免费视频一区二区| av电影在线观看不卡| 日韩欧美在线影院| 国产精品久线在线观看| 激情综合网天天干| 欧美日韩情趣电影| 亚洲少妇屁股交4| 国产成人在线免费| 欧美一区二区三区四区久久| 国产精品理论在线观看| 精品亚洲成a人在线观看| 欧美午夜不卡视频| 成人免费小视频| 国产精品一区三区| 精品国精品自拍自在线| 亚洲第一综合色| 一本到不卡精品视频在线观看| 久久久亚洲国产美女国产盗摄 | 国产精品视频在线看| 美女脱光内衣内裤视频久久影院| 99国产一区二区三精品乱码| 久久精品日产第一区二区三区高清版 | 91在线无精精品入口| 精品国产sm最大网站免费看| 午夜精品aaa| 欧美日韩免费视频| 一区二区在线观看免费视频播放| 99麻豆久久久国产精品免费优播| 久久精品视频一区二区| 国产毛片精品视频| 精品99999| 久草中文综合在线| 欧美xxxxx裸体时装秀| 久久爱另类一区二区小说| 日韩一级大片在线观看| 图片区小说区国产精品视频| 欧美日韩中文字幕一区二区| 一区二区三区日韩精品视频| 91国偷自产一区二区三区观看 | 日韩一区二区三区观看| 日韩中文字幕一区二区三区| 欧美电影一区二区| 日韩精品一区第一页| 欧美精品自拍偷拍动漫精品| 天堂av在线一区| 日韩一级欧美一级| 韩国欧美一区二区| 久久精品人人做人人爽97| 成人小视频在线观看| 国产黑丝在线一区二区三区| 久久精品国内一区二区三区| 成人一区二区在线观看| 国产校园另类小说区| 国产成人自拍网| 18欧美乱大交hd1984| 日本道色综合久久| 亚洲成人久久影院| 日韩精品一区二区三区在线观看| 激情综合亚洲精品| 国产精品你懂的在线| 日本高清免费不卡视频| 三级在线观看一区二区| 久久老女人爱爱| 91污片在线观看| 日韩精彩视频在线观看| 久久久精品人体av艺术| 99久久99久久精品免费看蜜桃| 亚洲国产综合视频在线观看| 日韩一区二区精品在线观看| 久久99国产精品久久99果冻传媒| 日本一区二区三区免费乱视频| 欧美性猛片aaaaaaa做受| 久久精品国产第一区二区三区| 欧美激情综合在线| 欧美无乱码久久久免费午夜一区|