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

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

?? 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;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天堂蜜桃91精品| 亚洲国产电影在线观看| 亚洲一区二区中文在线| 成人性生交大合| 中文字幕中文字幕一区| 成人黄色免费短视频| 国产亚洲一区二区三区在线观看 | 欧美日韩激情在线| 国产精品国产三级国产a| 色综合天天在线| 亚洲欧美另类图片小说| 国产成人日日夜夜| 亚洲国产精品99久久久久久久久| 国产不卡一区视频| 日韩视频国产视频| 国产在线观看一区二区| 中文字幕免费不卡| 成人免费毛片app| 午夜欧美大尺度福利影院在线看| 欧美顶级少妇做爰| 久久99在线观看| 亚洲男人天堂av| 欧美日韩高清一区| 国产精品77777竹菊影视小说| 中文字幕第一区综合| 91久久精品日日躁夜夜躁欧美| 视频在线观看国产精品| 久久久久久久久97黄色工厂| 成人国产一区二区三区精品| 亚洲国产aⅴ天堂久久| 91精品黄色片免费大全| 精品一区二区久久久| 国产欧美精品一区| 91精品国产综合久久婷婷香蕉 | 偷拍一区二区三区四区| 国产喷白浆一区二区三区| 一本色道a无线码一区v| 亚洲男人的天堂在线aⅴ视频| 日韩亚洲欧美综合| 成人毛片在线观看| 久久久不卡网国产精品二区| 欧美视频一区二区三区| 国产一区91精品张津瑜| 日韩美女精品在线| 国产亚洲va综合人人澡精品| 欧美在线影院一区二区| 麻豆成人免费电影| 亚洲精品免费一二三区| 久久综合九色综合97婷婷| 欧美区视频在线观看| 成人av先锋影音| 久久精工是国产品牌吗| 亚洲网友自拍偷拍| 国产精品不卡在线| 日韩欧美中文字幕一区| 在线观看日韩电影| 国产不卡在线视频| 日本v片在线高清不卡在线观看| 亚洲一区二区三区在线| 久久蜜桃一区二区| 337p亚洲精品色噜噜狠狠| 欧美影视一区二区三区| 暴力调教一区二区三区| 麻豆91精品91久久久的内涵| 亚洲va在线va天堂| 亚洲视频精选在线| 国产日韩欧美综合在线| 日韩精品一区二区三区在线| 在线视频欧美精品| hitomi一区二区三区精品| 国产69精品久久久久毛片| 久久精品国产亚洲aⅴ| 亚洲欧美色图小说| 一区二区欧美国产| 中文字幕的久久| 日韩三级电影网址| 欧美α欧美αv大片| 欧美精品成人一区二区三区四区| 风间由美一区二区三区在线观看 | 日韩精品一卡二卡三卡四卡无卡| 国产午夜亚洲精品羞羞网站| 精品国产乱码久久久久久浪潮| 欧美精品丝袜中出| 欧美一区二区三区视频| 欧美日韩免费电影| 欧美日韩一区小说| 777午夜精品免费视频| 欧美日本在线播放| 欧美老女人第四色| 精品久久久久久综合日本欧美| 欧美成人精品福利| 精品1区2区在线观看| 国产蜜臀av在线一区二区三区| 国产亚洲综合性久久久影院| 国产三级欧美三级日产三级99| 国产精品日日摸夜夜摸av| 欧美激情一区二区在线| 中文字幕一区在线观看| 亚洲综合久久久| 午夜亚洲国产au精品一区二区| 一区二区三区毛片| 美女免费视频一区二区| 精品亚洲国产成人av制服丝袜| 蜜桃久久久久久| 不卡一区二区三区四区| 欧美日韩黄视频| 69堂亚洲精品首页| 欧美电影精品一区二区| 久久精品一二三| 国产亚洲一区二区三区在线观看| 国产精品毛片久久久久久| 亚洲区小说区图片区qvod| 麻豆精品视频在线观看免费| 国产成人免费视频网站高清观看视频 | 高清不卡在线观看| 欧美专区亚洲专区| 日韩视频在线永久播放| 久久综合久久久久88| 亚洲香蕉伊在人在线观| 激情五月播播久久久精品| 午夜精品一区二区三区三上悠亚| 狠狠狠色丁香婷婷综合激情| 99久久久久久| 欧美亚洲综合网| 精品黑人一区二区三区久久| 中文字幕中文字幕在线一区| 捆绑调教一区二区三区| 91视视频在线直接观看在线看网页在线看| 91久久国产最好的精华液| 久久影音资源网| 一区二区三区国产精华| 九九视频精品免费| 欧美精品亚洲一区二区在线播放| 久久久不卡网国产精品一区| 亚洲人成影院在线观看| 国产白丝精品91爽爽久久| 欧美无砖砖区免费| 亚洲欧美中日韩| 免费xxxx性欧美18vr| 成人黄色在线网站| 精品福利在线导航| 一区二区三区在线高清| 国产精品一二三四区| 欧美一区二区三区人| 欧美亚洲国产怡红院影院| 国产精品色哟哟| 免费人成精品欧美精品| 欧美午夜电影一区| 亚洲欧美日韩在线| 国产一区二区调教| 欧美xxxxxxxx| 亚洲午夜激情网站| 99久久精品99国产精品 | 五月天欧美精品| 欧美在线综合视频| 国产精品免费视频观看| 三级精品在线观看| 欧美日韩精品一区二区三区四区| 国产精品美女久久久久av爽李琼 | 欧美精品aⅴ在线视频| 一区二区视频免费在线观看| 国产91精品一区二区麻豆网站| 欧美日韩日日夜夜| 尤物在线观看一区| 91麻豆高清视频| 久久精品人人做| 国产毛片精品视频| 欧美一区二区播放| 免费日本视频一区| 日韩一级欧美一级| 亚洲激情校园春色| 欧美日韩二区三区| 亚洲成在线观看| 91精品福利在线| 亚洲综合自拍偷拍| 91久久一区二区| 亚洲综合激情网| 色国产综合视频| 亚洲一区二区3| 欧美一区二区三区视频免费| 亚洲 欧美综合在线网络| 色婷婷久久一区二区三区麻豆| 中文字幕一区二区日韩精品绯色| 99精品在线免费| 亚洲午夜在线电影| 日韩免费观看2025年上映的电影| 国产一区二区视频在线| 综合电影一区二区三区 | 一区二区三区日韩欧美| 欧美老女人第四色| 国内精品伊人久久久久av影院 | 一区二区在线观看免费视频播放| 欧美午夜影院一区| 青青草一区二区三区| 国产欧美日韩中文久久| 欧美伊人精品成人久久综合97| 蜜桃av一区二区在线观看| 国产精品久久久一本精品 | 日韩一级片网站| 成人福利视频网站|