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

📄 vopses.hpp

📁 小波图像变换
💻 HPP
📖 第 1 页 / 共 3 页
字号:
		CoordI x, CoordI y,
		Bool bSkipNonOBMC,
		Bool bAlphaMB,
		CRct *prctMVLimit
	);
	Void motionComp (
		PixelC* ppxlcPred, // can be either Y or A
		const PixelC* ppxlcRefLeftTop,
		Int iSize, // either MB or BLOCK size
		CoordI xRef, CoordI yRef, // x + mvX, in half pel unit
		Int iRoundingControl,
		CRct *prctMVLimit
        );
    // QuarterSample, mwi
    Void motionCompQuarterSample (
        PixelC* ppxlcPred, // can be either Y or A
        const PixelC* ppxlcRefLeftTop, // point to left-top of the frame
        Int iSize, // either MB or BLOCK size
        CoordI xRef, CoordI yRef, // x + mvX in quarter pel unit
        Int iRoundingControl,
        CRct *prctMVLimit // extended bounding box
        );
    // ~QuarterSample, mwi
	Void motionCompUV (
                       PixelC* ppxlcPredMBU, PixelC* ppxlcPredMBV,
		const CVOPU8YUVBA* pvopcRef,
		CoordI x, CoordI y, 
		CoordI xRefUV, CoordI yRefUV, Int iRoundingControl,
		CRct *prctMVLimit
	);

// INTERLACE
	Void motionCompFieldUV (PixelC* ppxlcPredMBU, PixelC* ppxlcPredMBV,
							const CVOPU8YUVBA* pvopcRef,CoordI x, CoordI y, 
							CoordI xRefUV, CoordI yRefUV, Int iRefFieldSelect,
							CRct *prctMVLimit); // added by Y.Suzuki for the extended bounding box support
	Void motionCompYField ( PixelC* ppxlcPred, const PixelC* ppxlcRefLeftTop,
							CoordI xRef, CoordI yRef,
							CRct *prctMVLimit); // added by Y.Suzuki for the extended bounding box support
	Void motionCompDirectMode(CoordI x, CoordI y, CMBMode *pmbmd, const CMotionVector *pmvRef,
                            CRct *prctMVLimitFwd, CRct *prctMVLimitBak, Int plane);
	Void motionCompOneBVOPReference(CVOPU8YUVBA *pvopcPred, MBType type, CoordI x, CoordI y,
                            const CMBMode *pmbmd, const CMotionVector *pmv, CRct *prctMVLimit);
// ~INTERLACE

	Void motionCompOverLap (
		PixelC* ppxlcPredMB, 
		const PixelC* ppxlcRefLeftTop,
		const CMotionVector* pmv, // motion vector
		const CMBMode* pmbmd, // macroblk mode	
		Int imbx, // current macroblk index
		Int imby, // current macroblk index
		CoordI x, // current coordinate system
		CoordI y, // current coordinate system
		CRct *prctMVLimit
	);
	Void motionCompBY (
		PixelC* ppxlcPred,
		const PixelC* ppxlcRefLeftTop,
		CoordI iXRef, CoordI iYRef
	);
    // QuarterSample, mwi
    Void blkInterpolateY (
	                 const PixelC* ppxlcRefLeftTop, 
                     // point to left-top of the frame
					 Int blkSize, // Blocksize (8,16)
					 Int xRef, Int yRef, // x + mvX in quarter pel unit
					 U8* ppxlcblk, // Pointer to quarter pel interpolated block
                     Int iRoundingControl
    ); 
    // ~QuarterSample, mwi

	// B-VOP stuff
	Void motionCompInterp (
		const CMotionVector* pmvForward, const CMotionVector* pmvBackward, 
		CoordI x, CoordI y
	);

	Void bilnrMCVH (UInt* PredY, const PixelC* ppxliPrevYC, UInt* pMWght, UInt xlow, UInt xhigh, UInt ylow, UInt yhigh, Bool bAdd);
	Void bilnrMCV (UInt* PredY, const PixelC* ppxliPrevYC, UInt* pMWght, UInt xlow, UInt xhigh, UInt ylow, UInt yhigh, Bool bAdd);
	Void bilnrMCH (UInt* PredY, const PixelC* ppxliPrevYC, UInt* pMWght, UInt xlow, UInt xhigh, UInt ylow, UInt yhigh, Bool bAdd);
	Void bilnrMC (UInt* PredY, const PixelC* ppxliPrevYC, UInt* pMWght, UInt xlow, UInt xhigh, UInt ylow, UInt yhigh, Bool bAdd);
	Void assignPredToCurrQ (PixelC* ppxlcRefMBY, PixelC* ppxlcRefMBU, PixelC* ppxlcRefMBV);
	Void assignAlphaPredToCurrQ (PixelC* ppxlcRefMBA, Int iAuxComp);

	Void copyFromRefToCurrQ ( // zero motion case
		const CVOPU8YUVBA* pvopcRef, // reference VOP
		CoordI x, CoordI y, 
		PixelC* ppxlcCurrQMBY, PixelC* ppxlcCurrQMBU, PixelC* ppxlcCurrQMBV,
		CRct *prctMVLimit
	); // for non-obmc mode
	Void copyFromRefToCurrQ_WithShape ( // zero motion case
		const CVOPU8YUVBA* pvopcRef, // reference VOP
		CoordI x, CoordI y, 
		PixelC* ppxlcCurrQMBY, PixelC* ppxlcCurrQMBU, PixelC* ppxlcCurrQMBV, PixelC* ppxlcCurrQMBBY
	); // for non-obmc mode
	Void copyAlphaFromRefToCurrQ (
		const CVOPU8YUVBA* pvopcRef,
		CoordI x, CoordI y, 
		PixelC** ppxlcCurrQMBA,
		CRct *prctMVLimit
	);

	// MC padding 
	Void mcPadCurrMB (
		PixelC* ppxlcRefMBY, 
		PixelC* ppxlcRefMBU, PixelC* ppxlcRefMBV,
		PixelC** ppxlcRefMBA 
	);
	Void mcPadCurr (
		PixelC *ppxlcTextureBase, // (uiStride X ???)
		const PixelC *ppxlcAlphaBase, // uiBlkSize X uiBlkSize
		UInt uiBlkSize, UInt uiStride
	);
	Void padNeighborTranspMBs (
		CoordI xb, CoordI yb,
		CMBMode* pmbmd,
		PixelC* ppxlcRefMBY, PixelC* ppxlcRefMBU, PixelC* ppxlcRefMBV,
		PixelC** ppxlcRefMBA
	);
	Void padCurrAndTopTranspMBFromNeighbor (
		CoordI xb, CoordI yb,
		CMBMode* pmbmd,
		PixelC* ppxlcRefMBY, PixelC* ppxlcRefMBU, PixelC* ppxlcRefMBV,
		PixelC** ppxlcRefMBA
	);
	Void mcPadLeftMB (PixelC* ppxlcMBY, PixelC* ppxlcMBU, PixelC* ppxlcMBV, PixelC** pppxlcRefMBA);
	Void mcPadTopMB (PixelC* ppxlcMBY, PixelC* ppxlcMBU, PixelC* ppxlcMBV, PixelC** pppxlcRefMBA);
	Void mcPadCurrMBFromLeft (PixelC* ppxlcMBY, PixelC* ppxlcMBU, PixelC* ppxlcMBV, PixelC** pppxlcRefMBA);
	Void mcPadCurrMBFromTop (PixelC* ppxlcMBY, PixelC* ppxlcMBU, PixelC* ppxlcMBV, PixelC** pppxlcRefMBA);
	Void mcSetTopMBGray (PixelC* ppxlcMBY, PixelC* ppxlcMBU, PixelC* ppxlcMBV, PixelC** pppxlcRefMBA);
	Void mcSetCurrMBGray (PixelC* ppxlcMBY, PixelC* ppxlcMBU, PixelC* ppxlcMBV, PixelC** pppxlcRefMBA);
	Void mcSetLeftMBGray (PixelC* ppxlcMBY, PixelC* ppxlcMBU, PixelC* ppxlcMBV, PixelC** pppxlcRefMBA);

  // Added for field based MC padding by Hyundai(1998-5-9)
  Void fieldBasedMCPadding (
    CMBMode* pmbmd,
    CVOPU8YUVBA* pvopcCurrQ
    );
  Void mcPadCurrAndNeighborsMBFields (
    Int     iMBX,
    Int     iMBY,
    CMBMode *pmbmd,
    PixelC* ppxlcRefMBY,
    PixelC* ppxlcRefMBU,
    PixelC* ppxlcRefMBV,
    PixelC* ppxlcRefMBBY,
    PixelC* ppxlcRefMBBUV,
		PixelC** pppxlcRefMBA
    );
        Void mcPadFieldsCurr (
                Int     iMBX,
                Int     iMBY,
                CMBMode *pmbmd,
                Int     mode,
                PixelC  *ppxlcCurrMB1,
                PixelC  *ppxlcCurrMB2,
                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, Int blknCurr) const;
	Void find8x8MVpredInterior (CVector& vctPred, const CMotionVector* pmv, Int 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, Int 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;
//OBSS_SAIT_991015
	Bool bVPNoRight(Int iMBX) const;
	Bool bVPNoBottom(Int iMBY) const;
//~OBSS_SAIT_991015
	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, Int iAuxComp);
	Void inverseQuantizeInterDCTcoefMPEG (Int* rgiCoefQ, Int iStart, Int iQP, Bool bUseAlphaMatrix, Int iAuxComp);
	const BlockMemory findPredictorBlock (
		Int 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
	);

⌨️ 快捷键说明

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