📄 cabacwriter.h
字号:
ResidualMode eResidualMode,
ChromaIdx cIdx,
UInt uiScanIndex,
Bool& rbLast,
UInt& ruiNumCoefWritten );
ErrVal RQencodeTCoeffRef_Chroma ( MbDataAccess& rcMbDataAccess,
MbDataAccess& rcMbDataAccessBase,
ResidualMode eResidualMode,
ChromaIdx cIdx,
UInt uiScanIndex );
ErrVal RQencodeCycleSymbol ( UInt uiCycle );
Bool RQpeekCbp4x4(MbDataAccess& rcMbDataAccess, MbDataAccess& rcMbDataAccessBase, LumaIdx cIdx);
ErrVal RQencodeEobOffsets_Luma ( UInt* pauiSeq ) { return Err::m_nOK; };
ErrVal RQencodeEobOffsets_Chroma( UInt* pauiSeq ) { return Err::m_nOK; };
ErrVal RQencodeBestCodeTableMap ( UInt* pauiTable, UInt uiMaxH ) { return Err::m_nOK; };
ErrVal RQupdateVlcTable () { return Err::m_nOK; };
ErrVal RQvlcFlush () { return Err::m_nOK; };
ErrVal blockModes( MbDataAccess& rcMbDataAccess );
ErrVal mbMode( MbDataAccess& rcMbDataAccess/*, Bool bBLQRefFlag*/ );
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 );
#if JMVM_ONLY // JVT-U052
ErrVal Icpd( MbDataAccess& rcMbDataAccess );
#endif
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 );
ErrVal residualBlock( MbDataAccess& rcMbDataAccess, ChromaIdx cIdx, ResidualMode eResidualMode );
ErrVal transformSize8x8Flag( MbDataAccess& rcMbDataAccess );
ErrVal residualBlock8x8 ( MbDataAccess& rcMbDataAccess, B8x8Idx cIdx, ResidualMode eResidualMode );
ErrVal deltaQp( MbDataAccess& rcMbDataAccess );
ErrVal intraPredModeLuma( MbDataAccess& rcMbDataAccess, LumaIdx cIdx );
ErrVal intraPredModeChroma( MbDataAccess& rcMbDataAccess );
ErrVal samplesPCM( MbDataAccess& rcMbDataAccess );
ErrVal skipFlag( MbDataAccess& rcMbDataAccess, Bool bNotAllowed );
ErrVal BLSkipFlag( MbDataAccess& rcMbDataAccess );
#if JMVM_ONLY
ErrVal MotionSkipFlag( MbDataAccess& rcMbDataAccess ); // JVT-W081
//JVT-Z021
ErrVal MotionSkipOffset( MbDataAccess& rcMbDataAccess );
ErrVal xWriteOffset( MbDataAccess& rcMbDataAccess, Mv cMv, ListIdx eLstIdx );
ErrVal xWriteOffsetComponent( Short sMvdComp, UInt uiAbsSum, UInt uiCtx );
ErrVal MotionSkipListXFlag( MbDataAccess& rcMbDataAccess );
#endif //JMVM_ONLY
ErrVal terminatingBit ( UInt uiIsLast );
UInt getNumberOfWrittenBits();
protected:
ErrVal xInitContextModels( const SliceHeader& rcSliceHeader );
ErrVal xRQencodeNewTCoeffs ( TCoeff* piCoeff,
TCoeff* piCoeffBase,
UInt uiStop,
UInt uiCtx1,
UInt uiCtx2,
const UChar* pucScan,
UInt uiScanIndex,
Bool& rbLast,
UInt& ruiNumCoefWritten,
const int* paiCtxEobMap = pos2ctx_nomap,
const int* paiCtxSigMap = pos2ctx_nomap,
UInt uiStride = 1 );
ErrVal xRQencodeTCoeffsRef ( TCoeff* piCoeff,
TCoeff* piCoeffBase,
const UChar* pucScan,
UInt uiScanIndex );
ErrVal xWriteMvdComponent( Short sMvdComp, UInt uiAbsSum, UInt uiCtx );
ErrVal xWriteMvd( MbDataAccess& rcMbDataAccess, Mv cMv, LumaIdx cIdx, ListIdx eLstIdx );
#if JMVM_ONLY // JVT-U052
ErrVal xWriteIcAct( MbDataAccess& rcMbDataAccess, UInt uiIcAct );
ErrVal xWriteIcpd( Icp cIcp );
ErrVal xWriteIcSymbol( Short sOffset );
#endif
ErrVal xRefFrame ( MbDataAccess& rcMbDataAccess, UInt uiRefFrame, ListIdx eLstIdx, ParIdx8x8 eParIdx );
ErrVal xMotionPredFlag( Bool bFlag, ListIdx eLstIdx );
ErrVal xWriteBCbp( MbDataAccess& rcMbDataAccess, UInt uiNumSig, ResidualMode eResidualMode, LumaIdx cIdx );
ErrVal xWriteBCbp( MbDataAccess& rcMbDataAccess, UInt uiNumSig, ResidualMode eResidualMode, ChromaIdx cIdx );
ErrVal xWriteCoeff( UInt uiNumSig,
TCoeff* piCoeff,
ResidualMode eResidualMode,
const UChar* pucScan );
UInt xGetNumberOfSigCoeff( TCoeff* piCoeff, ResidualMode eResidualMode, const UChar* pucScan );
ErrVal xWriteBlockMode( UInt uiBlockMode );
protected:
CabacContextModel2DBuffer m_cBLSkipCCModel;
#if JMVM_ONLY
CabacContextModel2DBuffer m_cMotionSkipCCModel; // JVT-W081
//JVT-Z021
CabacContextModel2DBuffer m_cMotionSkipListXFlagCCModel;
CabacContextModel2DBuffer m_cOffsetCCModel;
#endif //JMVM_ONLY
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_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_cSRFlagCCModel; // JVT-R091
CabacContextModel2DBuffer m_cBCbpEnhanceCCModel;
CabacContextModel2DBuffer m_cCbpEnhanceCCModel;
CabacContextModel2DBuffer m_cTransSizeCCModel;
#if JMVM_ONLY // JVT-U052
CabacContextModel2DBuffer m_cIcActCCModel;
CabacContextModel2DBuffer m_cIcSymbolCCModel;
#endif
const SliceHeader* m_pcSliceHeader;
UInt m_uiBitCounter;
UInt m_uiPosCounter;
UInt m_uiLastDQpNonZero;
Bool m_bTraceEnable;
};
H264AVC_NAMESPACE_END
#endif // !defined(AFX_CABACWRITER_H__06F9800B_44E9_4FB9_9BBC_BF5E02AFBBB3__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -