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

📄 vopses.hpp

📁 网络MPEG4IP流媒体开发源代码
💻 HPP
📖 第 1 页 / 共 2 页
字号:
                PixelC  *ppxlcCurrMBB,                Int     uiBlkXSize,                Int     uiStride        );        Void mcPadOneField (                        PixelC *ppxlcTextureBase,                        const PixelC *ppxlcAlphaBase,                        Int uiBlkXSize,                        Int uiStride        );        Void padNeighborTranspMBFields (                CoordI  xb,                CoordI  yb,                CMBMode *pmbmd,                Int     mode,                PixelC  *ppxlcMBField1,                PixelC  *ppxlcMBField2,                Int     uiBlkXSize,                Int     uiStride        );                 Void padCurrAndTopTranspMBFieldsFromNeighbor (                CoordI  xb,                CoordI  yb,                CMBMode *pmbmd,                Int     mode,                PixelC* ppxlcMBField1,                PixelC* ppxlcMBField2,                Int     uiBlkXSize,                Int     uiStride        );                 Void mcPadLeftMBFields (                PixelC* ppxlcMBField1,                PixelC* ppxlcMBField2,                Int uiBlkXSize,                Int uiStride        );                 Void mcPadTopMBFields (                PixelC* ppxlcMBField1,                PixelC* ppxlcMBField2,                Int uiBlkXSize,                Int uiStride        );                 Void mcPadCurrMBFieldsFromLeft (                PixelC* ppxlcMBField1,                PixelC* ppxlcMBField2,                Int uiBlkXSize,                Int uiStride        );                 Void mcPadCurrMBFieldsFromTop (                PixelC* ppxlcMBField1,                PixelC* ppxlcMBField2,                Int uiBlkXSize,                Int uiStride        );                 Void mcSetTopMBFieldsGray (                PixelC* ppxlcMBField1,                PixelC* ppxlcMBField2,                Int uiBlkXSize,                Int uiStride        );                 Void mcSetLeftMBFieldsGray (                PixelC* ppxlcMBField1,                PixelC* ppxlcMBField2,                Int uiBlkXSize,                Int uiStride        );                 Void mcSetCurrMBFieldsGray (                PixelC* ppxlcMBField1,                PixelC* ppxlcMBField2,                Int uiBlkXSize,                Int uiStride        );         	// End of Hyundai(1998-5-9)	// motion vector	Void find16x16MVpred (CVector& vctPred, const CMotionVector* pmv, Bool bLeftBndry, Bool bRightBndry, Bool bTopBndry) const;	Void find8x8MVpredAtBoundary (CVector& vctPred, const CMotionVector* pmv, Bool bLeftBndry, Bool bRightBndry, Bool bTopBndry, BlockNum blknCurr) const;	Void find8x8MVpredInterior (CVector& vctPred, const CMotionVector* pmv, BlockNum blknCurr) const;	Void findMVpredGeneric (CVector& vctPred, const CMotionVector* pmv, const CMBMode* pmbmd, Int iBlk, Int iXMB, Int iYMB) const;	Void findMVpredictorOfBVOP (CVector& vctPred, const CMotionVector* pmv, const CMBMode* pmbmd, Int iMBX) const;  		    //for B-VOP only	Void mvLookupUV (const CMBMode* pmbmd, const CMotionVector* pmv, CoordI& xRefUV, CoordI& yRefUV,        CoordI& xRefUV1, CoordI& yRefUV1);	Void mvLookupUVWithShape (const CMBMode* pmbmd, const CMotionVector* pmv, CoordI& xRefUV, CoordI& yRefUV);	Bool validBlock (const CMBMode* pmbmdCurr, const CMBMode* pmbmd, BlockNum blkn) const;	Void computeDirectDeltaMV (CVector& vctDiff, const CMotionVector* pmv, const CMotionVector* pmvRef, const CMBMode* pmbmdRef);	//for B-VOP only	CVector averageOfRefMV (const CMotionVector* pmvRef, const CMBMode* pmbmdRef);													//for B-VOP only	Void padMotionVectors(const CMBMode *pmbmd,CMotionVector *pmv);	Void backwardMVFromForwardMV (								//compute back mv from forward mv and ref mv for direct mode					CMotionVector& mvBackward, const CMotionVector& mvForward, const CMotionVector& mvRef,					CVector vctDirectDeltaMV);//	Added for error resilient mode by Toshiba(1997-11-14)	Bool bVPNoLeft(Int iMBnum, Int iMBX) const;	Bool bVPNoRightTop(Int iMBnum, Int iMBX) const;	Bool bVPNoTop(Int iMBnum) const;	Bool bVPNoLeftTop(Int iMBnum, Int iMBX) const;	Int VPMBnum(Int iMBX, Int iMBY) const;// End Toshiba(1997-11-14)	// block level	Void inverseQuantizeIntraDc (Int* rgiCoefQ, Int iDcScaler);	Void inverseQuantizeDCTcoefH263 (Int* rgiCoefQ, Int iStart, Int iQP);	Void inverseQuantizeIntraDCTcoefMPEG (Int* rgiCoefQ, Int iStart, Int iQP, Bool bUseAlphaMatrix);	Void inverseQuantizeInterDCTcoefMPEG (Int* rgiCoefQ, Int iStart, Int iQP, Bool bUseAlphaMatrix);	const BlockMemory findPredictorBlock (		BlockNum iBlk, 		IntraPredDirection predDir,		const MacroBlockMemory* pmbmLeft, 		const MacroBlockMemory* pmbmTop,		const MacroBlockMemory* pmbmLeftTop,		const MacroBlockMemory* pmbmCurr,		const CMBMode* pmbmdLeft, 		const CMBMode* pmbmdTop,		const CMBMode* pmbmdLeftTop,		const CMBMode* pmbmdCurr,		Int& iQPpred	);	Int decideIntraPredDir (		Int* rgiCoefQ,		BlockNum blkn,		const BlockMemory* blkmRet, 		const MacroBlockMemory* pmbmLeft, 		const MacroBlockMemory* pmbmTop, 		const MacroBlockMemory* pmbmLeftTop,		const MacroBlockMemory* pmbmCurr,		const CMBMode* pmbmdLeft,		const CMBMode* pmbmdTop,		const CMBMode* pmbmdLeftTop,		CMBMode* pmbmdCurr,		Int&	iQPpred,		Int iQPcurr,		Bool bDecideDCOnly = FALSE	);	Time m_t; // current time	Time m_tPastRef; // time of reference frame in past (for P/B)	Time m_tFutureRef; // time of reference frame in future (for B)	Int m_iBCount; // counts 1,2,3 with B frames, used to pad ref vop once.	Bool m_bCodedFutureRef;    CRct m_rctDisplayWindow;						//display windoew position	Int	 m_iNumBitsTimeIncr;	Time m_tDistanceBetwIPVOP; //no. of frms betw. I/PVOP = PeriodOfPVOP except for at irregular period (end of sequence)	Time m_tPrevIorPVOPCounter; //frm. no of previous encoded I/PVOP	Time m_tModuloBaseDisp;							//of the most recently displayed I/Pvop	Time m_tModuloBaseDecd;							//of the most recently decoded I/Pvop/*Added by SONY (98/03/30)*/	Bool m_bUseGOV ;	Bool m_bLinkisBroken;/*Added by SONY (98/03/30)*/	// MB buffer data	CVOPU8YUVBA* m_pvopcPredMB;	PixelC *m_ppxlcPredMBY, *m_ppxlcPredMBU, *m_ppxlcPredMBV, *m_ppxlcPredMBA;	CVOPIntYUVBA* m_pvopiErrorMB;	PixelI *m_ppxliErrorMBY, *m_ppxliErrorMBU, *m_ppxliErrorMBV, *m_ppxliErrorMBA;	// B-VOP MB buffer	CVOPU8YUVBA* m_pvopcPredMBBack; // backward buffer data	PixelC *m_ppxlcPredMBBackY, *m_ppxlcPredMBBackU, *m_ppxlcPredMBBackV, *m_ppxlcPredMBBackA;	// MB shape data	ArCodec* m_parcodec;			//arithmatic coder	CU8Image* m_puciPredBAB;		//motion compensated binary shape	PixelC *m_ppxlcPredBABDown2, *m_ppxlcPredBABDown4;	PixelC* m_ppxlcReconCurrBAB;	Int m_iWidthCurrBAB;	PixelC* m_rgpxlcCaeSymbol;	PixelC *m_ppxlcCurrMBBYDown4, *m_ppxlcCurrMBBYDown2;	ShapeMode* m_rgshpmd;  // for saving reference shape mode	Int m_iRefShpNumMBX;	Int m_iRefShpNumMBY;	CVOPU8YUVBA* m_pvopcCurrMB;	PixelC *m_ppxlcCurrMBY, *m_ppxlcCurrMBU, *m_ppxlcCurrMBV, *m_ppxlcCurrMBBY, *m_ppxlcCurrMBBUV, *m_ppxlcCurrMBA;	/*BBM// Added for Boundary by Hyundai(1998-5-9)        Void boundaryMacroBlockMerge (CMBMode* pmbmd);        Void isBoundaryMacroBlockMerged (CMBMode* pmbmd);        Void isBoundaryMacroBlockMerged (CMBMode* pmbmd, PixelC* ppxlcRightMBBY);        Void overlayBlocks (UInt x1, UInt x2, UInt y1, UInt y2, DCTMode dctMd);        Void overlayBlocks (PixelC* SB2, PixelI* ppxlcB1, PixelI* ppxlcB2);        Void overlayBlocks (PixelC* SB1, PixelC* SB2, PixelC* ppxlcB1, PixelC* ppxlcB2);        Bool checkMergedStatus (UInt x1, UInt x2, UInt y1, UInt y2);        Bool checkMergedStatus (UInt x1, UInt x2, UInt y1, UInt y2, PixelC* ppxlcBY);        Void mergedMacroBlockSplit (CMBMode* pmbmd, PixelC* ppxlcRefMBY = NULL, PixelC* ppxlcRefMBA = NULL);        Void splitTwoMergedBlocks (UInt x1, UInt x2, UInt y1, UInt y2, PixelC* ppxlcIn1, PixelC* ppxlcIn2 = NULL);        Void splitTwoMergedBlocks (UInt x1, UInt x2, UInt y1, UInt y2, PixelI* ppxlcIn1, PixelI* ppxlcIn2 = NULL);        Void swapTransparentModes (CMBMode* pmbmd, Bool mode);        Void setMergedTransparentModes (CMBMode* pmbmd);        Void initMergedMode (CMBMode* pmbmd);	// End of Hyundai(1998-5-9)*/		// for MC-padding	Bool* m_pbEmptyRowArray;	Bool* m_pbEmptyColArray;	// VOP mode 	VOLMode	m_volmd; // vol mode	VOPMode	m_vopmd; // vop mode	UInt m_uiVOId; // VOP ID	// sprite info	UInt m_uiSprite; // whether this is a sprite VOP: 1 - yes; other - no	UInt m_uiWarpingAccuracy; // accuracy for sprite warping	Int m_iNumOfPnts; // for sprite warping	own CSiteD* m_rgstSrcQ; // quantized src sts for sprite warping	own CSiteD* m_rgstDstQ; // quantized dst sts for sprite warping	own CVOPU8YUVBA* m_pvopcSptQ; // Loaded first as original sprite and then become quantized sprite. 	CRct m_rctSpt; // rct of m_pvopcSptQ	CRct m_rctSptDisp; //rct to display sprite (decoder side)	SptMode m_sptMode;  // sprite reconstruction mode : 0 -- basic sprite , 1 -- Object piece only, 2 -- Update piece only, 3 -- intermingled		own MBSptMode* m_rgsptmd; // sprite mode 0: untransmitted; 1: transmitted; 2: updated; 3: done	// internal data	own CVOPU8YUVBA* m_pvopcRefQ0; // original reference VOP in a previous time	own CVOPU8YUVBA* m_pvopcRefQ1; // original reference VOP in a later time	own CVOPU8YUVBA* m_pvopcCurrQ; // original reference VOP in a later time	Int m_iStartInRefToCurrRctY, m_iStartInRefToCurrRctUV;	// motion data	own CDirectModeData* m_pdrtmdRef1; // for direct mode	CVector	m_vctForwardMvPredBVOP[2];		// motion vector predictors for B-VOP	CVector	m_vctBackwardMvPredBVOP[2];     // [2] added for interlace (top & bottom fields)	// some fixed variables (VOL)	CRct m_rctRefFrameY, m_rctRefFrameUV;	Int m_iFrameWidthYxMBSize, m_iFrameWidthYxBlkSize, m_iFrameWidthUVxBlkSize;	Int m_iFrameWidthY, m_iFrameWidthUV;	Int m_ivolWidth, m_ivolHeight;	// VOP variables	CRct m_rctCurrVOPY, m_rctCurrVOPUV;	CRct m_rctRefVOPY0, m_rctRefVOPUV0;	CRct m_rctRefVOPY1, m_rctRefVOPUV1;	Int m_iOffsetForPadY, m_iOffsetForPadUV;	CRct m_rctPrevNoExpandY, m_rctPrevNoExpandUV;////// 97/12/22 start	CRct m_rctBVOPRefVOPY1, m_rctBVOPRefVOPUV1;	Int m_iBVOPOffsetForPadY, m_iBVOPOffsetForPadUV;	CRct m_rctBVOPPrevNoExpandY, m_rctBVOPPrevNoExpandUV;///// 97/12/22 end	Int m_iVOPWidthY, m_iVOPWidthUV;	Int m_iNumMB, m_iNumMBX, m_iNumMBY;	Int m_iNumOfTotalMVPerRow;	Int m_iSessNumMB;	CMBMode* m_rgmbmd; // VOP size.  need to renew every VOP	CMotionVector* m_rgmv; // VOP size.  need to renew every VOP	CMotionVector* m_rgmvBackward; // VOP size.  need to renew every VOP	CMotionVector* m_rgmvBY; //Motion vectors for BY plane		CMBMode* m_rgmbmdRef;	CMotionVector* m_rgmvRef; // VOP size.  need to renew every VOP	Int m_iNumMBRef, m_iNumMBXRef, m_iNumMBYRef;	// clipping tables/* NBIT: change U8 to PixelC	U8* m_rgiClipTab; // clapping the reconstructed pixels*/	PixelC* m_rgiClipTab; // clapping the reconstructed pixels	Int m_iOffset; // NBIT	Void setClipTab(); // NBIT//	Added for error resilient mode by Toshiba(1997-11-14)	Bool 	m_bVPNoLeft;	Bool 	m_bVPNoRightTop;	Bool 	m_bVPNoTop;	Bool 	m_bVPNoLeftTop;	Int	m_iVPMBnum;			// start MB in a VP// End Toshiba(1997-11-14)	// MB data	Int** m_rgpiCoefQ;	MacroBlockMemory** m_rgpmbmAbove;	MacroBlockMemory** m_rgpmbmCurr;	BlockMemory* m_rgblkmCurrMB;	//predictor blocks for each current block	Int* m_rgiQPpred;				//QP from previous block for intra ac prediction	Int m_rgiDcScalerY [32];		//intra dc quantization scaler; qp dependent		Int m_rgiDcScalerC [32];		//[0] elem never used	// block data	Int m_rgiDCTcoef [BLOCK_SQUARE_SIZE];	CInvBlockDCT* m_pidct;	// Sprite routines	Void warpYA (const CPerspective2D& persp, const CRct& rctWarpedBound, UInt accuracy);	Void warpUV (const CPerspective2D& persp, const CRct& rctWarpedBound, UInt accuracy);    // Fast Affine Warping    Void FastAffineWarp (const CRct& rctWarpedBound, const CRct& rctWarpedBoundUV, UInt accuracy, UInt pntNum);    PixelC CInterpolatePixelValue (PixelC* F, Int pos, Int width, Int rx, Int ry, Int wpc, Int bias, Int pow_denom);    Int LinearExtrapolation(Int x0, Int x1, Int x0p, Int x1p, Int W, Int VW);    Void FourSlashes(Int num, Int denom, Int *quot, Int *res);    // tentative solution for indicating the first Sprite VOP    Int tentativeFirstSpriteVop;	// Low-latency sprite info    Bool m_bFirstSpriteVop ;// flag for indicating the first Sprite VOP     	MacroBlockMemory*** m_rgpmbmCurr_Spt;	 //  save MB data to be used as holes	SptMBstatus** m_ppPieceMBstatus;	 // MB transmission status (done or not-done)	SptMBstatus** m_ppUpdateMBstatus;				CMBMode* m_rgmbmdSprite;  // dshu: [v071]  added to store mbmd array for sprite	CMBMode** m_rgmbmdSpt; // Sprite size. 	Bool m_bSptMB_NOT_HOLE;	   // Current MB is not a hole	own CSiteD* m_rgstSrcQP; // for sprite piece warping	Time m_tPiece; // current sprite piece encode time	Time m_tUpdate; // current sprite update encode time 	own CVOPU8YUVBA* m_pvopcSptP; //  sprite piece 	  	CRct m_rctSptQ;	  //  rct of m_pvopcSptQ 	CRct m_rctOrg;	  // Frame size	CRct m_rctPieceQ;  // Region of pieces which have been encoded	CRct m_rctUpdateQ;  // Region of updates which have been encoded	CRct m_rctSptPieceY;  // piece of sprite which is currently been encoded	CRct m_rctSptPieceUV;  // piece of sprite which is currently been encoded	Int m_iStepI;	Int m_iStep; 	Int m_iStep_VOP;	Int m_iPieceXoffset;	Int m_iPieceYoffset;	Int m_iPieceWidth;	Int m_iPieceHeight; 	Bool m_bSptZoom;  // the type of sprite warping(zoom/pan)    Bool m_bSptHvPan; // the type of sprite warping(Horizontal or vertical panning)	Bool m_bSptRightPiece; 	//direction (up/down or right/left) for encoding sprite piece	Int *m_pSptmbBits; // bits used by a sprite macroblock	CRct m_rctSptExp;  // Extend the sprite size to multiples of MBSize};#endif // __VOPSES_HPP_

⌨️ 快捷键说明

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