📄 vopsedec.hpp
字号:
Void decodeMBTextureHeadOfBVOP (CMBMode* pmbmd, Int& iCurrQP); Void decodeMBAlphaHeadOfBVOP (CMBMode* pmbmd, Int iCurrQP, Int iCurrQPA); Void setCBPYandC (CMBMode* pmbmd, Int iCBPC, Int iCBPY, Int cNonTrnspBlk); // motion compensation Void motionCompTexture ( const CMotionVector* pmv, const CMBMode* pmbmd, Int imbX, Int imbY, CoordI x, CoordI y ); Void motionCompAlpha ( const CMotionVector* pmv, const CMBMode* pmbmd, Int imbX, Int imbY, CoordI x, CoordI y ); // B-VOP Void motionCompAndAddErrorMB_BVOP ( const CMotionVector* pmvForward, const CMotionVector* pmvBackward, CMBMode* pmbmd, // new change 02-19-99 Int iMBX, Int iMBY, CoordI x, CoordI y, PixelC* ppxlcCurrQMBY, PixelC* ppxlcCurrQMBU, PixelC* ppxlcCurrQMBV, CRct *prctMVLimitForward,CRct *prctMVLimitBackward ); Void motionCompAlphaMB_BVOP( const CMotionVector* pmvForward, const CMotionVector* pmvBackward, CMBMode* pmbmd, // new change 02-19-99 Int iMBX, Int iMBY, CoordI x, CoordI y, PixelC* ppxlcCurrQMBA, CRct *prctMVLimitForward,CRct *prctMVLimitBackward ); Void copyFromRefToCurrQ_BVOP ( const CMBMode* pmbmd, CoordI x, CoordI y, PixelC* ppxlcCurrQMBY, PixelC* ppxlcCurrQMBU, PixelC* ppxlcCurrQMBV, CRct *prctMVLimitForward, CRct *prctMVLimitBackward ); Void motionCompSkipMB_BVOP ( const CMBMode* pmbmd, const CMotionVector* pmvForward, const CMotionVector* pmvBackward, CoordI x, CoordI y, PixelC* ppxlcCurrQMBY, PixelC* ppxlcCurrQMBU, PixelC* ppxlcCurrQMBV, CRct *prctMVLimitForward,CRct *prctMVLimitBackward ); Void copyFromPredForYAndRefForCToCurrQ ( CoordI x, CoordI y, PixelC* ppxlcCurrQMBY, PixelC* ppxlcCurrQMBU, PixelC* ppxlcCurrQMBV, CRct *prctMVLimit ); // for obmc mode Void copyAlphaFromPredToCurrQ ( CoordI x, CoordI y, PixelC* ppxlcCurrQMBA ); // error signal for B-VOP MB Void averagePredAndAddErrorToCurrQ ( PixelC* ppxlcCurrQMBY, PixelC* ppxlcCurrQMBU, PixelC* ppxlcCurrQMBV ); Void averagePredAndAssignToCurrQ ( PixelC* ppxlcCurrQMBY, PixelC* ppxlcCurrQMBU, PixelC* ppxlcCurrQMBV ); // motion vector Void decodeMV (const CMBMode* pmbmd, CMotionVector* pmv, Bool bLeftBndry, Bool bRightBndry, Bool bTopBndry, Bool bZeroMV, Int iMBX, Int iMBY); Void decodeMVWithShape (const CMBMode* pmbmd, CoordI iMBX, CoordI iMBY, CMotionVector* pmv); Void getDiffMV (CVector& vctDiffMV, MVInfo mvinfo); //get half pel Int deScaleMV (Int iVLC, Int iResidual, Int iScaleFactor); Void fitMvInRange (CVector& vctSrc, MVInfo mvinfo); Void decodeMVofBVOP (CMotionVector* pmvForward, CMotionVector* pmvBackward, CMBMode* pmbmd, Int iMBX, Int iMBY, const CMotionVector* pmvRef, const CMBMode* pmbmdRef); Void computeDirectForwardMV (CVector vctDiff, CMotionVector* pmv, const CMotionVector* pmvRef, const CMBMode* pmbmdRef); // shape decoding functions Void swapCurrAndRightMBForShape (); Void decodeIntraShape (CMBMode* pmbmd, Int iMBX, Int iMBY, PixelC* ppxlcCurrMBBY, PixelC* ppxlcCurrMBBYFrm); Void decodeInterShape (CVOPU8YUVBA* pvopcRefQ,CMBMode* pmbmd, CoordI iMBX, CoordI iMBY, CoordI iX, CoordI iY, CMotionVector* pmv, CMotionVector* pmvBY, PixelC* ppxlcMBBY, PixelC* ppxlcMBBYFrm, const ShapeMode& shpmdColocatedMB); Int shpMdTableIndex (const CMBMode* pmbmd, Int iMBX, Int iMBY); Void decodeIntraCaeBAB (PixelC* ppxlcCurrMBBY, PixelC* ppxlcCurrMBBYFrm); Void decodeIntraCAEH (); Void decodeIntraCAEV (); Void decodeInterCAEH (const PixelC *); Void decodeInterCAEV (const PixelC *); Void decodeMVDS (CMotionVector& mvDiff); //for temporal scalability Added by Sharp(1998-02-10) void updateBuffVOPsBase (CVideoObjectDecoder* pvodecEnhc); void updateRefVOPsEnhc (); void updateBuffVOPsEnhc (); void copyRefQ1ToQ0 (); void copyTobfShape (); Void decode_IShape (); // for back/forward shape// Void compute_bfShapeMembers (); Void BackgroundComposition(char* argv[], Bool bScalability, Int width, Int height, FILE *pfYUV); // for background composition // modified by Sharp (98/10/26) Void dumpDataOneFrame(char* argv[], Bool bScalability, CRct& rctDisplay); // write pvopcReconCurr () with Sharp's format Void dumpDataAllFrame(FILE* pfReconYUV, FILE* pfReconSeg, CRct& rctDisplay); // I/O Time senseTime (); Time getTime (); int getPredType (); // bufferControl void set_enh_display_size(CRct rctDisplay, CRct *rctDisplay_SSenh); void bufferP1flush (); void bufferB1flush (); void bufferB2flush (); void copyBufP2ToB1 (); //for temporal scalability End Sharp(1998-02-10) void setClockRateScale ( CVideoObjectDecoder *pvopdec ); // added by Sharp (98/6/26) // INTERLACE Void fieldDCTtoFrameC(PixelC* ppxlcRefMBY); Void fieldDCTtoFrameI(PixelI* ppxlcCurrMBY); // ~INTRELACE // Block decoding functions Void decodeIntraBlockTexture (PixelC* rgchBlkDst, Int iWidthDst, Int iQP, Int iDcScaler, Bool bIsYBlock, MacroBlockMemory* pmbmCurr, CMBMode* pmbmd, const BlockMemory blkmPred, Int iQPPred); Void decideIntraPred (const BlockMemory& blkmRet, CMBMode* pmbmdCurr, Int& iQPpred, BlockNum blkn, const MacroBlockMemory* pmbmLeft, const MacroBlockMemory* pmbmTop, const MacroBlockMemory* pmbmLeftTop, const MacroBlockMemory* pmbmCurr, const CMBMode* pmbmdLeft, const CMBMode* pmbmdTop, const CMBMode* pmbmdLeftTop); Void decodeTextureInterBlock (Int* rgiBlkCurrQ, Int iWidthCurrQ, Int iQP, Bool bAlphaBlock); Void decodeIntraTCOEF (Int* rgiCoefQ, Int iCoefStart, Int* rgiZigzag); Void decodeInterTCOEF (Int* rgiCoefQ, Int iCoefStart, Int* rgiZigzag); Int decodeIntraDCmpeg (Bool bIsYBlk); //decode the intra-dc: mpeg2 method Void decodeInterVLCtableIndex (Int iIndex, Int& iLevel, Int& iRun, Bool& bIsLastRun); // return islastrun, run and level Void decodeIntraVLCtableIndex (Int iIndex, Int& iLevel, Int& iRun, Bool& bIsLastRun); // return islastrun, run and level typedef Void (CVideoObjectDecoder::*DECODE_TABLE_INDEX)(Int iIndex, Bool& bIsLastRun, Int& iRun, Int& iLevel); //func ptr code escp. decoding Void decodeEscape (Int& iLevel, Int& iRun, Int& bIsLastRun, const Int* rgiLMAX, const Int* rgiRMAX, CEntropyDecoder* pentrdec, DECODE_TABLE_INDEX decodeVLCtableIndex); Void inverseDCACPred (const CMBMode* pmbmd, Int iBlkIdx, Int* rgiCoefQ, Int iQP, Int iDcScaler, const BlockMemory blkmPred, Int iQpPred); // sprite decoding Int decodeSpt (); Void decodeWarpPoints (); // added for error resilience mode By Toshiba Int checkResyncMarker(); Bool decodeVideoPacketHeader(Int& iCurrentQP); // added for error resilience mode(DP+RVLC) By Toshiba(1998-1-16:DP+RVLC) Int checkMotionMarker(); Int checkDCMarker(); // I-VOP Void decodeMBTextureDCOfIVOP_DataPartitioning (CMBMode* pmbmd, Int& iCurrentQP, Int* piIntraDC, Bool &bUseNewQPForVlcThr); Void decodeMBTextureHeadOfIVOP_DataPartitioning (CMBMode* pmbmd, Int* piMCBPC); Void decodeTextureIntraMB_DataPartitioning (CMBMode* pmbmd, CoordI iMBX, CoordI iMBY, PixelC* ppxlcCurrFrmQY, PixelC* ppxlcCurrFrmQU, PixelC* ppxlcCurrFrmQV, Int* piIntraDC); // P-VOP Void decodeMBTextureHeadOfPVOP_DataPartitioning (CMBMode* pmbmd, Int& iCurrentQP, Int* piMCBPC, Int* piIntraDC, Bool &bUseNewQPForVlcThr); Void decodeTextureInterMB_DataPartitioning (CMBMode* pmbmd); // B-VOP Void decodeMBTextureHeadOfBVOP_DataPartitioning (CMBMode* pmbmd, Int& iCurrQP); Void setCBPYandC_DataPartitioning (CMBMode* pmbmd, Int iCBPC, Int iCBPY, Int cNonTrnspBlk); Void decodeIntraBlockTexture_DataPartitioning (Int iBlk, CMBMode* pmbmd, Int* piINtraDC); Void decodeIntraBlockTextureTcoef_DataPartitioning (PixelC* rgchBlkDst, Int iWidthDst, Int iQP, Int iDcScaler, Bool bIsYBlock, MacroBlockMemory* pmbmCurr, CMBMode* pmbmd, const BlockMemory blkmPred, Int iQPPred, Int* piIntraDC); Void decodeIntraRVLCTCOEF (Int* rgiCoefQ, Int iCoefStart, Int* rgiZigzag); Void decodeInterRVLCTCOEF (Int* rgiCoefQ, Int iCoefStart, Int* rgiZigzag); Void decodeInterRVLCtableIndex (Int iIndex, Int& iLevel, Int& iRun, Int& bIsLastRun); // return islastrun, run and level Void decodeIntraRVLCtableIndex (Int iIndex, Int& iLevel, Int& iRun, Bool& bIsLastRun); // return islastrun, run and level Void decodeRVLCEscape (Int& iLevel, Int& iRun, Int& bIsLastRun, const Int* rgiLMAX, const Int* rgiRMAX, CEntropyDecoder* pentrdec, DECODE_TABLE_INDEX decodeVLCtableIndex); // End Toshiba(DP+RVLC)(1998-1-16:DP+RVLC)};#endif // __VOPSEDEC_HPP_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -