📄 dh263class.h
字号:
#include "deblock.h"
class DH263Picture;
class DH263MB
{protected:
int Width,Height;
void idct(short *coeff,short *block);
public:
DH263Picture * m_pPic;
short QCoeffData[388],*QCoeff;
short BQCoeffData[388],*BQCoeff;
PictureLayerInfo Pic;
MBLayerInfo MBInfo;
MBLayerBits MBBits;
MB_Structure MBData;
MB_Structure BData;
MB_BYTE_Structure PredData;
int QP,CBP,Mode,QP_B;
DH263MB(int ww,int hh,DH263Picture * pPic);
int SACDecodeMBHeader(SAD *SADeco,int xpos,int ypos);
int SACDecodeCoeff(SAD *SADeco);
int DecodeMBHeader(DBitStream * InputStream,int xpos,int ypos);
int DecodeCoeff(DBitStream *InputStream);
void DecodeMBData(void);
void DeQuant(short *rcoeff,int BlockNo);
void FillRecon(YUVData Loss,int y,int x);
int MotionDecode(int vec,int pmv);
void MB_Recon_P(YUVData Loss,YUVData Inter,int xpos, int ypos);
void MB_Recon_P4V(YUVData Loss,YUVData Inter,int xpos, int ypos);
void FindAPPMV(int x,int y,int &pmvx,int &pmvy,int block);
void FindPMV(int x, int y,int &pmvx, int &pmvy);
int SACDecodeBCoeff(SAD *SADeco);
int DecodeBCoeff(DBitStream *InputStream);
void BDeQuant(short *rcoeff,int BlockNo);
void DecodeBData(void);
void Overlap_Pred(BYTE *PrevInter,int BlockNo,BYTE *Over_PredData,int x,int y);
void MB_Recon_B(YUVData BLoss,YUVData PrevInter,YUVData CurLoss,
int x, int y,int TRD,int TRB);
void MB_Recon_B4V(YUVData BLoss,YUVData PrevInter,YUVData CurLoss,
int x, int y,int TRD,int TRB);
void BiDirLumPred(int ystart,int ystop,int xstart,int xstop,
BYTE *CurLossPtr,MotionVector MVB);
void BiDirCBPred(int ystart,int ystop,int xstart,int xstop,
BYTE *CurLossPtr,MotionVector MVB);
void BiDirCRPred(int ystart,int ystop,int xstart,int xstop,
BYTE *CurLossPtr,MotionVector MVB);
void AP_BiDirLumPred(int ystart,int ystop,int xstart,int xstop,
BYTE *CurLossPtr,MotionVector MVB);
};
class DH263GOB
{public:
GOBLayerInfo GOBInfo;
GOBLayerBits GOBBits;
DH263GOB();
int DecodeGOBHeader(BOOL CPM,DBitStream *InputStream);
};
//H263 Picture Layer class;
class DH263Picture
{
friend class DH263MB;
protected:
AreaInt StrPrevInt;
int Width,Height,ImageSize;
PictureLayerBits PictureBits;
DH263GOB *Group;
DH263MB *MB;
MotionVector DMV[99*4],DMVAP[99*4][4],DMVPB[99*4];
int DecodePictureHeader(DBitStream * InputStream);
CDeblock * m_pDeblock;
public:
int nTotalFrame;
int DataLength;
BYTE CompressData[MAXLENGTH];
PictureLayerInfo PictureInfo;
YUVData PrevRecon,CurRecon,BRecon;
DH263Picture(void);
virtual ~DH263Picture(void);
int DecodeINTRAPicture(YUVData Loss,DBitStream *DecodeStream);
void DecodePicture(void);
// BOOL OutputToFile(BOOL PB);
int DecodeINTERPicture(YUVData CurLoss,YUVData PrevLoss,DBitStream *DecodeStream);
void MakeEdgeData(YUVData src,YUVData dst, int width,
int height, int edge);
void InterpolateImage(YUVData Reference,YUVData InterFrame,
int pixels,int lines);
int DecodePBPicture(YUVData CurLoss,YUVData PrevLoss,YUVData BLoss,DBitStream *DecodeStream);
void SwapPtr(YUVData &Swap1,YUVData &Swap2);
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -