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

📄 functionheader.h

📁 这是G.723和G.729的音频编解码的源代码
💻 H
字号:


//functionheader.h

//the begin of the function.h

//declear of function

//these function are define in the file mmxend.asm

extern "C"	{
	void YUVRGBTwoLine (
				BYTE *Y,
				BYTE *U,
				BYTE *V,
				BYTE *RGB,
				int Pixel,
				BYTE *LTemp
			   );
}

extern "C"
	{void MMXLoadMBData(short *MBPtr, short *Data);
	 void MMXSetMBDataZero(short *MBPtr);
	 void MMXSetBlockZero(short *MBPtr);

	 void MMXDeQuant(short *TempQC,short *rcoeff,int QP);

	 void MMXStoreMB(BYTE *Loss,short *Data,int pixel);
	 void MMXStoreBlock(BYTE *Loss,short *Data,int pixel);
	 void MMXFillMB(BYTE *Src,short *Data,int pixel);
	 void MMXFillBlock(BYTE *Src,short *Data,int pixel);
	 void MMXFillMB(BYTE *Src,short *Data,int pixel);

	 void MMXTransFromMB(short *Data,short *MBPtr);
	}

extern "C"
{
	 void MMXLoadMBData(short *MBPtr, short *Data);
	 void MMXSetMBDataZero(short *MBPtr);
	 void MMXSetBlockZero(short *MBPtr);
	 void MMXDeQuant(short *TempQC,short *rcoeff,int QP);
	 void MMXTransFromMB(short *Data,short *MBPtr);
}

extern "C"
{	void idct8x8aan(short* dctcoeffshort);
	void PrevIDCTShift(short* dctcoeffshort);
	void MatrixMulti(short *src1,short *src2,short *Result);
	void MatrixTrans(short *Src);
}

extern "C"
{	void MMXInterColorP(BYTE *Src,BYTE *Dst,int Pixel,int Lines,int ImgSize);
	void MMXInterLumP(BYTE *Src,BYTE *Dst,int Pixel,int Lines,int ImgSize);
}


extern "C"
{
	 void MMXReconBlock(BYTE *Select,BYTE *Source,short *Data,int pixel);
	 void MMXReconMB(BYTE *Select,BYTE *Source,short *Data,int pixel);
	 void MMXReconAPBlock(BYTE *Select,BYTE *Source,short *Data,int pixel);
	
	 void MMXPredMB(short *Data,BYTE *Select,BYTE *Source,int pixel);
	 void MMXPredBlock(short *Data,BYTE *Select,BYTE *Source,int pixel);
	 void MMXPredAPBlock(short *Data,BYTE *Select,BYTE *Source,int pixel);
}

extern "C"
	{void MMXLoadBlock(BYTE *MBPtr,BYTE *ImgPtr,int pixel);
	 void MMXLoadMB(BYTE *MBPtr,BYTE *ImgPtr,int pixel);
	 int CalMADLast(BYTE *RefFrame,BYTE *CurFrame,int CurPixels);
	 int CalMADSub(BYTE *RefFrame,BYTE *CurFrame,int RefSubPixels,int CurSubPixels);
	 void GetSub1(BYTE * RF,BYTE *pSubR,int pixels,int lines);
	}


extern "C"
{
	 void MMXReconBlock(BYTE *Select,BYTE *Source,short *Data,int pixel);
	 void MMXReconMB(BYTE *Select,BYTE *Source,short *Data,int pixel);
	 void MMXReconAPBlock(BYTE *Select,BYTE *Source,short *Data,int pixel);
	 
	 void MMXPredMB(short *Data,BYTE *Select,BYTE *Source,int pixel);
	 void MMXPredBlock(short *Data,BYTE *Select,BYTE *Source,int pixel);
	 void MMXPredAPBlock(short *Data,BYTE *Select,BYTE *Source,int pixel);

	 int CalMADLast(BYTE *RefFrame,BYTE *CurFrame,int CurPixels);
	 int CalMADSub(BYTE *RefFrame,BYTE *CurFrame,int RefSubPixels,int CurSubPixels);
	}
//the end of declaration of those function that define in mmxenc.asm

//these function is define in the h263encoder.cpp

DisplayImage(RGBPixel *DispRGB,CDC *pDC);

void YUV_RGB(YUVData DYUV,RGBPixel* DisplayRGB);

int AddACMB(BYTE *Curr,int Pixel,int MB_aver);

int AddMB(BYTE *Curr,int Pixel);

int ChooseMode(BYTE *curr,int pixel,int min_SAD);

BOOL EqualVec(MotionVector MV2, MotionVector MV1);

void InitCod(void);

void InitDCT(void);

void LoadCBRefer(BYTE *pInter,BYTE *pBlock,
				 int y,int x,
				 int pixels,int Block);

void LoadCRRefer(BYTE *pInter,BYTE *pBlock,
				 int y,int x,
				 int pixels,int Block);

void LoadMBRefer(BYTE *pInter,BYTE *pBlock,
				 int y,int x,
				 int pixels,int MBlock);

void LoadRefer(BYTE *pInter,BYTE *pBlock,
			   int y,int x,
			   int pixels,int Block);

void ZeroVec(MotionVector &Vec);
//end of declaration of those function that define in h263encoder.cpp

//the end of functionheader.h

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -