📄 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 + -