⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 g723_aux.h

📁 windows环境下利用IPP库的例子代码
💻 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 + -