📄 g723_aux.h
字号:
/******************************************************************************
// 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) 2001-02 Intel Corporation. All Rights Reserved.
//
// Filename:
// g723_aux.h
//
// Description:
// Intel Integrated Performance Primitives (IPP)
// appSC.lib "helper" functions for the G.723.1 codec
//
// Revision:
// 1.0
//
// References:
// [1] ITU-T Rec. G.723.1, "Dual Rate Speech Coder for Multimedia
// Communications Transmitting at 5.3 and 6.3 kbit/s,"
// Telecommunications Standardization Sector of ITU,
// March, 1996.
// [2] ITU-T Rec. G.723.1 fixed-point C reference code ("96_03"),
// March, 1996.
******************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
/**********************
G.723.1 Preprocessing
**********************/
IppStatus appsPreprocess_G723_I (Ipp16s *pSrcSpch,
Ipp16s *pDstLpcAnalysisBuf,
int enableHighpassFilter,
Ipp16s *pSrcDstHpfZfir,
Ipp32s *pSrcDstHpfZiir,
Ipp16s *pSrcSpeechHistoryBuf);
IppStatus appsSinDetect_G723_I (Ipp16s *pSrcDstSineDetect);
/*********************
G.723.1 LPC Analysis
*********************/
IppStatus appsLSFQuantInv_G723_32s16s (Ipp32s valQLsfIndex,
const Ipp16s *pSrcPrevLsf,
Ipp16s *pDstLsf,
Ipp16s InvalidFrame);
IppStatus appsLSFInterp_G723_16s (Ipp16s *pSrcLsf,
Ipp16s *pDstInterpLsf,
Ipp16s pDstQuantLpc[IPP_G723_NUM_SUBFRAME][IPP_G723_LPC_ORDER],
Ipp16s *pPrevLsf);
IppStatus appsAutoCorrSum_G723_16s (Ipp16s *pSrcRss,
Ipp16s *pSrcDstFrameAutoCorr,
Ipp16s *pSrcDstFrameAutoCorrExp);
/*****************************
G.723.1 perceptual weighting
*****************************/
IppStatus appsPerceptualWeightingFilter_G723_16s (const Ipp16s *pSrcSpch,
Ipp16s pSrcLpc[IPP_G723_NUM_SUBFRAME][IPP_G723_LPC_ORDER],
Ipp16s pDstPrcptWgtLpc[IPP_G723_NUM_SUBFRAME<<1][IPP_G723_LPC_ORDER],
Ipp16s *pDstPrcptWgtSpch,
Ipp16s *pPwfZfir,
Ipp16s *pPwfZiir,
Ipp16s *pPrevWgtSpch);
/************************************************
G.723.1 codebook search target signal synthesis
************************************************/
IppStatus appsComputeImpulseResponse_G723_16s (Ipp16s valHarmonicDelay,
Ipp16s valHarmonicGain,
const Ipp16s *pSrcWgtLpc,
const Ipp16s *pSrcQLpc,
Ipp16s *pDstImpulseResponse);
IppStatus appsApplyHarmonicNoiseShaping_G723_16s (Ipp16s *pSrcPrcptWgtSpch,
Ipp16s *pDstHarmonicWgtSpch,
Ipp16s *valHarmonicDelay,
Ipp16s *valHarmonicGain);
IppStatus appsComputeAdaptiveTargetVector_G723_16s (Ipp16s valHarmonicDelay,
Ipp16s valHarmonicGain,
const Ipp16s *pSrcWgtLpc,
const Ipp16s *pSrcQLpc,
const Ipp16s *pSrcZfir,
const Ipp16s *pSrcZiir,
Ipp16s *pSrcDstTargetSignal);
IppStatus appsComputeFixedTargetVector_G723_16s_I (Ipp16s *pSrcDstFixedCbTarget,
Ipp16s *pSrcAdaptCbVect,
Ipp16s *pSrcImpulseRespVect);
IppStatus appsUpdateCombinedFilter_G723_16s (const Ipp16s *pSrcWgtLpc,
const Ipp16s *pSrcQLpc,
Ipp16s *pSrcDstExcitation,
Ipp16s *pSrcDstZfir,
Ipp16s *pSrcDstZiir);
/*********************************
G.723.1 adaptive codebook search
*********************************/
IppStatus appsOpenLoopPitchSearchPreprocess_G723_16s (Ipp16s *pSrcPrcptWgtSpch,
Ipp16s *pDstOLPSAnalysisBuf,
Ipp16s *pDstPrcptWgtSpchHist);
/******************************
G.723.1 ACELP codebook search
******************************/
IppStatus appsPitchSyncFilter_G723_16s_I (Ipp16s *pSrcDstImpulseResp,
Ipp16s valOpenLoopPitchLag,
Ipp16s valClosedLoopPitchOffset,
Ipp16s valAdaptGainIndex,
Ipp16s *pDstPitchSyncIndex,
Ipp16s *pDstPitchSyncGain);
IppStatus appsACELPCrossCorr_G723_16s (const Ipp16s *pSrcResidual,
const Ipp16s *pSrcImpulseResponse,
Ipp16s *pDstFixedCorr);
IppStatus appsACELPGainQuant_G723_16s (const Ipp16s *pSrcResidual,
const Ipp16s *pSrcImpulseResp,
const Ipp16s *pSrcPulseSigns,
const Ipp16s *pSrcPulsePositions,
Ipp16s *pDstQGain,
Ipp16s *pDstQGainIndex);
IppStatus appsScaleACELPVector_G723_16s_I (Ipp16s *pSrcDstVectACELP,
Ipp16s valQuantGain,
Ipp16s valPitchSyncIndex,
Ipp16s valPitchSyncGain);
IppStatus appsEncodeACELPVector_G723 (Ipp16s *pSrcPulseSign,
Ipp16s *pSrcPulsePos,
Ipp16s *pDstEncPulseSign,
Ipp32s *pDstEncPulsePos);
IppStatus appsUpdateErrorTaming_G723_16s (Ipp16s valEstimatedPitch,
Ipp16s valClosedLoopPitchOffset,
Ipp16s valAdaptGainIndex,
Ipp32s *pSrcDstErrorTamingParam,
IppSpchBitRate bitRate);
/*************************************************
G.723.1 fixed (ACELP/MPMLQ) codevector synthesis
*************************************************/
IppStatus appsDecodeACELPVector_G723_16s (Ipp16s valEstimatedPitchLag,
Ipp16s valClosedLoopPitchOffset,
Ipp16s valPulseSigns,
Ipp16s valQuantGainIndex,
Ipp16s valPulseGrid,
Ipp16s valAdaptGainIndex,
Ipp32s valPulsePosition,
Ipp16s *pDstVectACELP);
IppStatus appsDecodeMPMLQVector_G723_16s (Ipp16s valEstimatedPitchLag,
Ipp16s valPulseSigns,
Ipp16s valQuantGainIndex,
Ipp16s valPulseGrid,
Ipp32s valPulsePositions,
Ipp16s *pDstVectMPMLQF,
Ipp16s trainDirac,
Ipp16s subFrame);
/******************************************
G.723.1 excitation synthesis (non-erasure)
******************************************/
IppStatus appsGenerateExcitation_G723_16s (Ipp16s *pSrcFixedCbVect,
Ipp16s *pSrcAdaptCbVect,
Ipp16s *pDstExcitVect);
IppStatus appsNormalizeExcitation_G723_16s (Ipp16s *pSrcExcit,
Ipp16s *pDstExcitNorm,
Ipp16s *pSrcDstExcitHist,
Ipp16s *pDstTargetExcitGain);
IppStatus appsApplyPitchPostFilter_G723_16s (Ipp16s valDelay,
Ipp16s valGain,
Ipp16s valScalingGain,
Ipp16s *pSrcExcitation,
Ipp16s *pDstExcitationPPF);
IppStatus appsApplyFormantPostFilter_G723_16s (const Ipp16s *pSrcLpc,
Ipp16s *pSrcDstSpch,
Ipp16s *pSrcDstZfir,
Ipp16s *pSrcDstZiir,
Ipp32s *pDstSpeechEnergy,
Ipp16s *pDstAutoCorr);
IppStatus appsApplyGainScale_G723_16s_I (Ipp16s *pSrcDstSpch,
int postFilterEnabled,
Ipp16s *pPrevGain,
Ipp32s valSpeechEnergy);
IppStatus appsUpdateExcitationHistory_G723_16s (Ipp16s *pSrcAdaptCbVect,
Ipp16s *pSrcFixedCbVect,
Ipp16s *pDstExcitHistBuf);
IppStatus appsDecodeDTXGain_G723_16s ( Ipp16s gainIndex,
Ipp16s frameType,
Ipp16s prevDTXFrameType,
Ipp16s *sidGain,
Ipp16s *targetExcitationGain);
/********************************
G.723.1A VAD and DTX processing
********************************/
IppStatus appsVAD_G723_16s (Ipp16s valSineDtct,
const Ipp16s *pSrcOpenDelay,
const Ipp16s *pSrcVadLpc,
const Ipp16s *pSrcSpch,
Ipp16s *pResultVadDetect,
IppG723AVadState *pVadState);
IppStatus appsDTXDecision_G723_16s (Ipp16s valPrevDTXFrameType,
const Ipp16s * pSrcPrevLsf,
const Ipp16s * pSrcAutoCorr,
const Ipp16s * pSrcAutoCorrExp,
Ipp16s * pSrcDstVadLpc,
Ipp16s * pResultQSidGainIndex,
Ipp16s * pResultQSidGain,
Ipp32s * pResultQSidLsfIndex,
Ipp16s * pDstQSidLsf,
Ipp16s * pResultDTXFrameType,
Ipp16s * pCngGain,
IppG723AVadState * pVadState,
IppG723ADtxState * pDtxState);
IppStatus appsGenerateCNGExcitation_G723_16s (Ipp16s valSidGain,
Ipp16s *pSrcDstPrevExcitation,
Ipp16s *pDstBaseDelay,
Ipp16s *pDstCloseLag,
Ipp16s *pDstAdptGainIndex,
Ipp16s *pDstExcitation,
Ipp16s *pSeed,
IppSpchBitRate bitRate);
/*************************************
G.723.1 erasure excitation synthesis
*************************************/
IppStatus appsGenerateErasureExcitation_G723_16s (Ipp16s *pDstExcit,
Ipp16s *pSrcDstExcitHistory,
Ipp16s *pSrcRandSeed,
Ipp16s valInterpIndex,
Ipp16s valConsecFrameErasures,
Ipp16s valInterpolationGain);
IppStatus appsUpdateErasureInterpIndex_G723_16s (Ipp16s valEstimatedPitch,
const Ipp16s *pSrcResidual,
Ipp16s *pDstInterpIndex);
IppStatus appsUpdateErasureInterpIndex_G723A_16s (Ipp16s valBaseDelay,
const Ipp16s * pSrcResidual,
Ipp16s * pResultIntpltIndex,
Ipp16s * pResultResidualEnergy);
/*****************************
G.723.1 bitstream processing
*****************************/
IppStatus appsPackBitstream_G723_8u (Ipp8u *pDstBitStream,
int *pDstNumBitstreamBytes,
Ipp32s valQLsfIndex,
Ipp16s *pSrcAdaptCbIndexAbs,
Ipp16s *pSrcAdaptCbIndexDiff,
Ipp16s *pSrcAdaptCbGainIndex,
Ipp16s *pSrcFixedCbGainIndex,
Ipp16s *pSrcFixedCbDiracPulseFlag,
Ipp16s *pSrcFixedCbGridAlign,
Ipp32s *pSrcFixedCbPulsePos,
Ipp16s *pSrcFixedCbPulseSign,
Ipp16s *frameTypeHistory,
Ipp16s frameType,
IppSpchBitRate bitRate);
IppStatus appsUnpackBitstream_G723_8u (Ipp8u *pSrcBitStream,
int *pDstNumBitstreamBytes,
Ipp32s *pDstQLsfIndex,
Ipp16s *pDstAdaptCbIndexAbs,
Ipp16s *pDstAdaptCbIndexDiff,
Ipp16s *pDstAdaptCbGainIndex,
Ipp16s *pDstFixedCbGainIndex,
Ipp16s *pDstFixedCbDiracPulseFlag,
Ipp16s *pDstFixedCbGridAlign,
Ipp32s *pDstFixedCbPulsePos,
Ipp16s *pDstFixedCbPulseSign,
Ipp16s *pDstInterpolationGain,
Ipp16s *pDstConsecFrameErasures,
Ipp16s prevDTXFrameType,
Ipp16s *frameType,
IppSpchBitRate *pDstBitRate,
Ipp16s *pDstInvalidFrame);
/*******************************
G.723.1 scalar math operations
*******************************/
Ipp32s appsMul16by32_G723_32s (Ipp32s val1, Ipp16s val2);
Ipp16s appsDiv16_G723_16s (Ipp16s val1, Ipp16s val2);
Ipp16s appsDiv32_G723_32s16s (Ipp32s val1, Ipp16s val2);
Ipp16s appsNorm16_G723_16s (Ipp16s val, Ipp16s * pResult);
Ipp16s appsNorm32_G723_32s (Ipp32s val, Ipp32s * pResult);
Ipp16s appsSqrt32_G723_32s16s (Ipp32s val);
Ipp16s appsGenerateRandom_G723_16s (Ipp16s * pValResultSeed, Ipp16s range);
#ifdef __cplusplus
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -