📄 motioncompute.h
字号:
#ifndef _MOTIONCOMPUTE_H_
#define _MOTIONCOMPUTE_H_
# include <stdio.h>
#include "../mpeg4/mpeg4.h"
#include "../mpeg4/framecode.h"
typedef struct
{
int max_rangeX, max_rangeY, min_rangeX, min_rangeY; /* mv range */
short iFcode;
int chromaX, chromaY, chromaSAD;
int chroma;
int LumTempBlockSad[4];
int iMinSad[5]; /* sad for four Y block */
short iQuant;
short iExtWidth;
VECTOR PredMV;
/*
short* RefP[6];
short* CurY;
short* CurU, *CurV;
short* RefQuarl;
*/
//lvxu080326*****************************
unsigned char* RefP[6];
unsigned char* CurY;
unsigned char* CurU, *CurV;
unsigned char* RefQuarl;
//*****************************
unsigned int onemvbit;
unsigned int fourmvbit;
unsigned int dir;
VECTOR CurrentMv[5];
short rounding;
VECTOR DirMvFor[4];
VECTOR DirMvBack[4];
VECTOR * referencemv;
short* dctSpace;
short* mpeg_quant_matrices;
}MvSearchData;
//static unsigned int ComputBlockSad(unsigned char * pCur, unsigned char* pRef, short iStride)
/*
typedef int (ComputBlockSadPtr) (unsigned char * pCur, unsigned char* pRef, int iStride);
//typedef ComputBlockSad *ComputBlockSadPtr;
ComputBlockSadPtr *ComputBlockSad;
*/
typedef void(CheckFunc)(int x, int y, MvSearchData* Data, short Direction);
int SearchBlockBi_C(unsigned char* cur, unsigned char* ref1, unsigned char* ref2, short stride);
unsigned int SearchMacroBlock_C(unsigned char* cur, unsigned char* ref, unsigned int stride, unsigned int best_sad);
unsigned int SearchMacroBlockBi_C(unsigned char* cur, unsigned char* ref1, unsigned char* ref2, unsigned int stride);
void MEPre(VECTOR* pMv, short x, short y, short iMBWidth, short iMBHeight, MacroBlock* pRefMBs);
int ComputeChromaSAD(int dx, int dy, MvSearchData* pData);
void DiaSearch1(short x, short y, MvSearchData* pData, short bDirection, CheckFunc* CheckMember);
void DiaSearch2(int x, int y, MvSearchData* pData, short bDirection, CheckFunc* CheckMember);
void SubpixelSearch(VECTOR centerMV, MvSearchData* pData, short dir, CheckFunc* CheckMember);
void SearchBlock(MvSearchData* pOldData,
int x, int y,
short iMBWidth,
short iWidth, short iHeight,
MacroBlock* pCurMB,
MacroBlock* Mbs,
short block,
MvSearchData* pData);
int SkipModeDecision(const Image8 * Current, const Image8 * Reference,
const int x, const int y,
const short iStride, const unsigned int iQuant);
void GetMBParameter(Encoder* pEncoder,
Image8* pCurImage,
Image8* pRefImage,
MacroBlock* pCurMB,
MvSearchData* pData,
short x,
short y);
void GetMBCodeType(MvSearchData* pData,
MacroBlock * pCurMB,
int x, int y,
short iMBWidth,
short coding_type,
int skip_sad);
void pFrame_ME(Encoder* pEncoder);
unsigned int getMinFcode(int MVmax);
void CheckMacroBlockMember(int x, int y, MvSearchData* pData, unsigned int Direction);
void pFrameEncode(Encoder* pEncoder,Stream* bs);
void pFrameEncode8(Encoder* pEncoder,Stream* bs);
void pFrameEncode8EDMA(Encoder* pEncoder,Stream* bs);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -