📄 cabacreader.h
字号:
ChromaIdx cIdx,
UInt uiScanIndex,
UInt uiCtx );
ErrVal RQdecodeCycleSymbol ( UInt& uiCycle );
ErrVal RQdecodeEobOffsets_Luma () { return Err::m_nOK; };
ErrVal RQdecodeEobOffsets_Chroma() { return Err::m_nOK; };
ErrVal RQdecodeBestCodeTableMap ( UInt uiMaxH ) { return Err::m_nOK; };
ErrVal RQupdateVlcTable () { return Err::m_nOK; };
ErrVal RQvlcFlush () { return Err::m_nOK; };
ErrVal RQcompSepAlign ();
Bool RQpeekCbp4x4( MbDataAccess& rcMbDataAccessBase, LumaIdx cIdx);
Void RQsetTruncatedFlag ( Bool bTruncated ) { return; }
ErrVal RQreset ( const SliceHeader& rcSliceHeader )
{
RNOK( xInitContextModels( rcSliceHeader ) );
RNOK( CabaDecoder::start() );
return Err::m_nOK;
}
ErrVal RQdecodeSigCoeff ( TCoeff* piCoeff,
TCoeff* piCoeffBase,
ResidualMode eResidualMode,
const UChar* pucScan,
Bool bFirstSigRunCode,
UInt uiCycle,
UInt uiStartScanIdx,
UInt uiLastScanIdx,
Bool& rbEndOfBlock,
TCoeff& riCoeff,
UInt& ruiRun );
ErrVal RQupdateVlcTable ( UInt uiNumFrags ) { return Err::m_nOK; };
ErrVal RQinitFragments ( const SliceHeader& rcSliceHeader,
UInt& ruiNumFrags,
Bool bCAF );
ErrVal RQreleaseFragments ();
MbSymbolReadIf* RQactivateFragment( UInt uiFragIdx )
{
if( uiFragIdx < m_uiNumFragments ) {
m_uiCurrentFragment = uiFragIdx;
return m_apcFragmentReaders[uiFragIdx];
}
else
return 0;
}
ErrVal RQdecodeTCoeffsRef ( TCoeff* piCoeff,
TCoeff* piCoeffBase,
const UChar* pucScan,
UInt uiScanIndex,
UInt uiCtx );
Bool isEndOfSlice ();
Bool isMbSkipped ( MbDataAccess& rcMbDataAccess );
Bool isBLSkipped ( MbDataAccess& rcMbDataAccess );
ErrVal blockModes ( MbDataAccess& rcMbDataAccess );
ErrVal mbMode ( MbDataAccess& rcMbDataAccess );
ErrVal resPredFlag ( MbDataAccess& rcMbDataAccess );
ErrVal resPredFlag_FGS ( MbDataAccess& rcMbDataAccess, Bool bBaseCoeff );
ErrVal smoothedRefFlag ( MbDataAccess& rcMbDataAccess ); // JVT-R091
ErrVal mvd ( MbDataAccess& rcMbDataAccess, ListIdx eLstIdx );
ErrVal mvd ( MbDataAccess& rcMbDataAccess, ListIdx eLstIdx, ParIdx16x8 eParIdx );
ErrVal mvd ( MbDataAccess& rcMbDataAccess, ListIdx eLstIdx, ParIdx8x16 eParIdx );
ErrVal mvd ( MbDataAccess& rcMbDataAccess, ListIdx eLstIdx, ParIdx8x8 eParIdx );
ErrVal mvd ( MbDataAccess& rcMbDataAccess, ListIdx eLstIdx, ParIdx8x8 eParIdx, SParIdx8x4 eSParIdx );
ErrVal mvd ( MbDataAccess& rcMbDataAccess, ListIdx eLstIdx, ParIdx8x8 eParIdx, SParIdx4x8 eSParIdx );
ErrVal mvd ( MbDataAccess& rcMbDataAccess, ListIdx eLstIdx, ParIdx8x8 eParIdx, SParIdx4x4 eSParIdx );
ErrVal cbp ( MbDataAccess& rcMbDataAccess );
ErrVal refFrame ( MbDataAccess& rcMbDataAccess, ListIdx eLstIdx );
ErrVal refFrame ( MbDataAccess& rcMbDataAccess, ListIdx eLstIdx, ParIdx16x8 eParIdx );
ErrVal refFrame ( MbDataAccess& rcMbDataAccess, ListIdx eLstIdx, ParIdx8x16 eParIdx );
ErrVal refFrame ( MbDataAccess& rcMbDataAccess, ListIdx eLstIdx, ParIdx8x8 eParIdx );
ErrVal motionPredFlag ( MbDataAccess& rcMbDataAccess, ListIdx eLstIdx );
ErrVal motionPredFlag ( MbDataAccess& rcMbDataAccess, ListIdx eLstIdx, ParIdx16x8 eParIdx );
ErrVal motionPredFlag ( MbDataAccess& rcMbDataAccess, ListIdx eLstIdx, ParIdx8x16 eParIdx );
ErrVal motionPredFlag ( MbDataAccess& rcMbDataAccess, ListIdx eLstIdx, ParIdx8x8 eParIdx );
ErrVal residualBlock ( MbDataAccess& rcMbDataAccess, LumaIdx cIdx, ResidualMode eResidualMode, UInt& ruiMbExtCbp );
ErrVal residualBlock ( MbDataAccess& rcMbDataAccess, ChromaIdx cIdx, ResidualMode eResidualMode );
ErrVal deltaQp ( MbDataAccess& rcMbDataAccess );
ErrVal intraPredModeLuma ( MbDataAccess& rcMbDataAccess, LumaIdx cIdx );
ErrVal intraPredModeChroma ( MbDataAccess& rcMbDataAccess );
ErrVal fieldFlag ( MbDataAccess& rcMbDataAccess );
ErrVal samplesPCM ( MbDataAccess& rcMbDataAccess );
ErrVal residualBlock8x8 ( MbDataAccess& rcMbDataAccess, B8x8Idx cIdx );
ErrVal intraPredModeLuma8x8( MbDataAccess& rcMbDataAccess, B8x8Idx cIdx );
ErrVal transformSize8x8Flag( MbDataAccess& rcMbDataAccess);
protected:
ErrVal xRQdecodeNewTCoeffs ( TCoeff* piCoeff,
TCoeff* piCoeffBase,
UInt uiStop,
UInt uiCtx1,
UInt uiCtx2,
const UChar* pucScan,
UInt uiScanIndex,
Bool& rbLast,
UInt& ruiNumCoefRead,
const int* paiCtxEobMap = pos2ctx_nomap,
const int* paiCtxSigMap = pos2ctx_nomap,
UInt uiStride = 1 );
ErrVal xRQdecodeTCoeffsRef ( TCoeff* piCoeff,
TCoeff* piCoeffBase,
const UChar* pucScan,
UInt uiScanIndex,
UInt uiCtx );
ErrVal xInitFragments ( const SliceHeader& rcSliceHeader,
UChar** ppucFragBuffers,
UInt* puiFragLengthInBits,
UInt uiNumFragments );
Void xSetParentFlag ( Bool bParentFlag )
{
m_bParentFlag = bParentFlag;
}
ErrVal xGetMvd( MbDataAccess& rcMbDataAccess, Mv& rcMv, LumaIdx cIdx, ListIdx eLstIdx );
ErrVal xInitContextModels( const SliceHeader& rcSliceHeader );
ErrVal xGetMvdComponent( Short& rsMvdComp, UInt uiAbsSum, UInt uiCtx );
ErrVal xRefFrame ( MbDataAccess& rcMbDataAccess, UInt& ruiRefFrame, ListIdx eLstIdx, ParIdx8x8 eParIdx );
ErrVal xMotionPredFlag( Bool& bFlag, ListIdx eLstIdx );
ErrVal xReadBCbp( MbDataAccess& rcMbDataAccess, Bool& rbCoded, ResidualMode eResidualMode, LumaIdx cIdx );
ErrVal xReadBCbp( MbDataAccess& rcMbDataAccess, Bool& rbCoded, ResidualMode eResidualMode, ChromaIdx cIdx );
ErrVal xReadCoeff( TCoeff* piCoeff,
ResidualMode eResidualMode,
const UChar* pucScan,
Bool bFrame);
protected:
CabacContextModel2DBuffer m_cFieldFlagCCModel;
CabacContextModel2DBuffer m_cFldMapCCModel;
CabacContextModel2DBuffer m_cFldLastCCModel;
CabacContextModel2DBuffer m_cBCbpCCModel;
CabacContextModel2DBuffer m_cMapCCModel;
CabacContextModel2DBuffer m_cLastCCModel;
CabacContextModel2DBuffer m_cRefCCModel;
CabacContextModel2DBuffer m_cSigCCModel;
CabacContextModel2DBuffer m_cOneCCModel;
CabacContextModel2DBuffer m_cAbsCCModel;
CabacContextModel2DBuffer m_cChromaPredCCModel;
CabacContextModel2DBuffer m_cBLSkipCCModel;
CabacContextModel2DBuffer m_cMbTypeCCModel;
CabacContextModel2DBuffer m_cBlockTypeCCModel;
CabacContextModel2DBuffer m_cMvdCCModel;
CabacContextModel2DBuffer m_cRefPicCCModel;
CabacContextModel2DBuffer m_cBLPredFlagCCModel;
CabacContextModel2DBuffer m_cResPredFlagCCModel;
CabacContextModel2DBuffer m_cDeltaQpCCModel;
CabacContextModel2DBuffer m_cIntraPredCCModel;
CabacContextModel2DBuffer m_cCbpCCModel;
CabacContextModel2DBuffer m_cBCbpEnhanceCCModel;
CabacContextModel2DBuffer m_cCbpEnhanceCCModel;
CabacContextModel2DBuffer m_cTransSizeCCModel;
CabacContextModel2DBuffer m_cSRFlagCCModel; // JVT-R091
UInt m_uiBitCounter;
UInt m_uiPosCounter;
UInt m_uiLastDQpNonZero;
// new variables for switching bitstream inputs
Bool m_bParentFlag;
CabacReader* m_apcFragmentReaders[MAX_NUM_PD_FRAGMENTS];
BitReadBuffer* m_apcFragBitBuffers [MAX_NUM_PD_FRAGMENTS];
UInt m_uiNumFragments;
UInt m_uiCurrentFragment;
};
H264AVC_NAMESPACE_END
#endif // !defined(AFX_CABACREADER_H__06F9800B_44E9_4FB9_9BBC_BF5E02AFBBB3__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -