📄 g723_func.h
字号:
/******************************************************************************functions for g723.1 coder and decoder******************************************************************************/#ifdef __cplusplusextern "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_16 (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 + -