📄 vopses.hpp
字号:
Void limitMVRangeToExtendedBBQuarterPel (CoordI &x,CoordI &y,CRct *prct,Int iBlkSize); // QuarterSample, mwi Void motionCompMB ( PixelC* ppxlcPredMB, const PixelC* ppxlcRefLeftTop, const CMotionVector* pmv, const CMBMode* pmbmd, Int imbX, Int imbY, 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) Void setDCVLCMode(CMBMode* pmbmd, Bool *pbBoundary); // 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,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -