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

📄 vopses.hpp

📁 完整的RTP RTSP代码库
💻 HPP
📖 第 1 页 / 共 3 页
字号:
		const CMBMode* pmbmdLeftTop,		const CMBMode* pmbmdCurr,		Int& iQPpred	);	Int decideIntraPredDir (		Int* rgiCoefQ,		Int  blkn,		const BlockMemory * pblkmRet, 		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;	Bool m_bCodedBaseRef;					//OBSS_SAIT_991015    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	ShapeMode* m_rgBaseshpmd;  // for saving lower reference shape mode 		//OBSS_SAIT_991015	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; // current VOP	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;  Int m_ivolAspectRatio, m_ivolAspectHeight, m_ivolAspectWidth;	// 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//OBSS_SAIT_991015	CMotionVector* m_rgmvBaseBY; //Motion vectors for Base BY plane 	CMBMode* m_rgmbmdEnhRef;		CRct m_rctBase;		Int m_iNumMBBaseXRef, m_iNumMBBaseYRef; 	Bool 	m_bVPNoRight;	Bool 	m_bVPNoBottom;//~OBSS_SAIT_991015		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;	const BlockMemory* m_rgblkmCurrMB;	//predictor blocks for each current block	Int* m_rgiQPpred;				//QP from previous block for intra ac prediction	// block data	Int m_rgiDCTcoef [BLOCK_SQUARE_SIZE];	CInvBlockDCT* m_pidct;	// HHI Schueuer: inserted for sadct	Int **m_rgiCurrMBCoeffWidth;		// contains the number of frequency 									// coefficients per row for each 8x8 block	// end HHI	// 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	// GMC    Void FourSlashesShift(Int inum, Int idenom_pwr, Int *ipquot, Int *ipres);	Void globalmv(Int& iXpel, Int& iYpel,			Int& iXhalf, Int& iYhalf,			CoordI iXCurr, CoordI iYCurr,			Int iSearchRenge, Bool bQuarterSample);	Void TranslationalWarpMotion(Int& iXpel, Int& iYpel,			Int& iXhalf, Int& iYhalf, Int ifcode_area, Bool bQuarterSample);	Void FastAffineWarpMotion(Int& iXpel, Int& iYpel,			Int& iXhalf, Int& iYhalf,			Int iXCurr, Int iYCurr,			Int iSearchRenge, Bool bQuarterSample);	Void FindGlobalPredForGMC (Int cx_curr, Int cy_curr,		PixelC* ppxlcRef, const PixelC* puciRef);	Void FindGlobalChromPredForGMC (Int cx_curr, Int cy_curr,		PixelC* ppxlcRefU, PixelC* ppxlcRefV);	Void StationalWarpForGMC(Int cx_curr, Int cy_curr,		PixelC *ppxlcRef, const PixelC *puciRef);	Void StationalWarpChromForGMC(Int cx_curry, Int cy_curry,		PixelC *ppxlcRefU, PixelC *ppxlcRefV);	Void TranslationalWarpForGMC(Int cx_curr, Int cy_curr,		PixelC *ppxlcRef, const PixelC *puciRef);	Void TranslationalWarpChromForGMC(Int cx_curr, Int cy_curr,		PixelC *ppxlcRefU, PixelC *ppxlcRefV);	Void FastAffineWarpForGMC(Int cx_curr, Int cy_curr,		PixelC *ppxlcRef, const PixelC *puciRef);	Void FastAffineWarpChromForGMC(Int cx_curry, Int cy_curry,		PixelC *ppxlcRefU, PixelC *ppxlcRefV);	// ~GMC// RRV insertion	Void	CVideoObject::filterCodedPictureForRRV(PixelC*, PixelC*, PixelC*, 												   Int isizex, Int isizey,												   Int inumMBx,Int inumMBy, 												   Int iwidthY, Int iwidthUV);// ~RRV	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// RRV insertion	Int	m_iRRVScale;// ~RRV	};#endif // __VOPSES_HPP_

⌨️ 快捷键说明

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