📄 vopsedec.hpp
字号:
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,
Int iAuxComp
);
// 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,
Int iAuxComp
);
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,
Int iAuxComp
);
// 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 *);
//OBSS_SAIT_991015
Void decodeSIShapePVOP (CVOPU8YUVBA* pvopcRefQ, CMBMode* pmbmd, CoordI iMBX, CoordI iMBY, CoordI iX, CoordI iY, CMotionVector* pmv, CMotionVector* pmvBY, CMotionVector* pmvBaseBY, PixelC* ppxlcMBBY, PixelC* ppxlcMBBYFrm, const ShapeMode& shpmdColocatedMB);
Void decodeSIShapeBVOP (CVOPU8YUVBA* pvopcRefQ0, CVOPU8YUVBA* pvopcRefQ1, CMBMode* pmbmd, CoordI iMBX, CoordI iMBY, CoordI iX, CoordI iY, CMotionVector* pmv, CMotionVector* pmvBY, CMotionVector* pmvBaseBY, PixelC* ppxlcMBBY, PixelC* ppxlcMBBYFrm, const ShapeMode& shpmdColocatedMB);
Void decodeSIBAB (PixelC* ppxlcCurrMBBY, PixelC* ppxlcCurrMBBYFrm, Bool* HorSamplingChk, Bool* VerSamplingChk,Int iMBX,Int iMBY, PixelC* ppxlcRefSrc);
Void VerticalXORdecoding(Int num_loop_hor, Int num_loop_ver, Bool residual_scanning_hor, Bool residual_scanning_ver, Bool* HorSamplingChk, Bool* VerSamplingChk);
Void VerticalFulldecoding(Int num_loop_hor, Int num_loop_ver, Bool residual_scanning_hor, Bool residual_scanning_ver, Bool* HorSamplingChk, Bool* VerSamplingChk);
Void HorizontalXORdecoding(Int num_loop_hor, Int num_loop_ver, Bool residual_scanning_hor, Bool residual_scanning_ver, Bool* HorSamplingChk, Bool* VerSamplingChk);
Void HorizontalFulldecoding(Int num_loop_hor, Int num_loop_ver, Bool residual_scanning_hor, Bool residual_scanning_ver, Bool* HorSamplingChk, Bool* VerSamplingChk);
//~OBSS_SAIT_991015
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)
//OBSS_SAIT_991015 //for OBSS partial enhancement mode
//OBSSFIX_MODE3
Bool BackgroundCompositionSS(Int width, Int height, FILE *pfYUV, FILE *pfSeg, const CVOPU8YUVBA *pvopcRefBaseLayer) ;
// Int BackgroundComposition (Int width, Int height, FILE *pfYUV, FILE *pfSeg); // for OBSS background composition (base + patial enhancement layer)
//~OBSSFIX_MODE3
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);
// ~INTERLACE
// HHI Schueuer
Void deriveSADCTRowLengths(Int **coeffWidths, const PixelC* ppxlcMBBY, const PixelC* ppxlcCurrMBBUV, const TransparentStatus *pTransparentStatus);
// end HHI
// Block decoding functions
Void decodeIntraBlockTexture (PixelC* rgchBlkDst,
Int iWidthDst,
Int iQP,
Int iDcScaler,
Bool bIsYBlock,
MacroBlockMemory* pmbmCurr,
CMBMode* pmbmd,
const BlockMemory blkmPred,
Int iQPPred,
const PixelC *rgpxlcBlkShape,
Int iBlkShapeWidth, // HHI Schueuer: added const PixelC *rgpxlcBlkShape,Int iBlkShapeWidth
Int iAuxComp=0 );
Void decideIntraPred (const BlockMemory& blkmRet,
CMBMode* pmbmdCurr,
Int& iQPpred,
Int blkn,
const MacroBlockMemory* pmbmLeft,
const MacroBlockMemory* pmbmTop,
const MacroBlockMemory* pmbmLeftTop,
const MacroBlockMemory* pmbmCurr,
const CMBMode* pmbmdLeft,
const CMBMode* pmbmdTop,
const CMBMode* pmbmdLeftTop);
// HHI Schueuer: const CMBMode *pmbmd, Int iBlk, const PixelC *rgpxlcBlkShape, Int iBlkShapeWidth added
Void decodeTextureInterBlock (Int* rgiBlkCurrQ, Int iWidthCurrQ, Int iQP, Bool bAlphaBlock, const CMBMode *pmbmd, Int iBlk, const PixelC *rgpxlcBlkShape, Int iBlkShapeWidth, Int iAuxComp=0);
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);
// 09/16/99 HHI schueuer: added const PixelC* m_ppxlcCurrMBBY = NULL, const PixelC* m_ppxlcCurrMBBUV = NULL
Void decodeTextureIntraMB_DataPartitioning (CMBMode* pmbmd, CoordI iMBX, CoordI iMBY,
PixelC* ppxlcCurrFrmQY, PixelC* ppxlcCurrFrmQU, PixelC* ppxlcCurrFrmQV, Int* piIntraDC,
const PixelC* m_ppxlcCurrMBBY = NULL, const PixelC* m_ppxlcCurrMBBUV = NULL);
// 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);
// HHI Schueuer: added const PixelC *rgpxlcBlkShape,Int iBlkShapeWidth for sadct
Void decodeIntraBlockTextureTcoef_DataPartitioning (PixelC* rgchBlkDst,
Int iWidthDst,
Int iQP,
Int iDcScaler,
Bool bIsYBlock,
MacroBlockMemory* pmbmCurr,
CMBMode* pmbmd,
const BlockMemory blkmPred,
Int iQPPred,
Int* piIntraDC,
const PixelC *rgpxlcBlkShape=NULL,
Int iBlkShapeWidth=0);
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)
// RRV insertion
Void redefineVOLMembersRRV();
// ~RRV
};
#endif // __VOPSEDEC_HPP_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -