📄 mbencoder.h
字号:
Bool bSkipModeAllowed=true);
ErrVal xEstimateMb16x16 ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
Bool bBiPredOnly,
UInt uiNumMaxIter,
UInt uiIterSearchRange,
Bool bQPelRefinementOnly,
MbDataAccess* pcMbDataAccessBaseMotion,
Bool bResidualPred );
ErrVal xEstimateMb16x8 ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
Bool bBiPredOnly,
UInt uiNumMaxIter,
UInt uiIterSearchRange,
Bool bQPelRefinementOnly,
MbDataAccess* pcMbDataAccessBaseMotion,
Bool bResidualPred );
ErrVal xEstimateMb8x16 ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
Bool bBiPredOnly,
UInt uiNumMaxIter,
UInt uiIterSearchRange,
Bool bQPelRefinementOnly,
MbDataAccess* pcMbDataAccessBaseMotion,
Bool bResidualPred );
ErrVal xEstimateMb8x8 ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
Bool bBiPredOnly,
UInt uiNumMaxIter,
UInt uiIterSearchRange,
Bool bQPelRefinementOnly,
MbDataAccess* pcMbDataAccessBaseMotion,
Bool bResidualPred );
ErrVal xEstimateMb8x8Frext ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
Bool bBiPredOnly,
UInt uiNumMaxIter,
UInt uiIterSearchRange,
Bool bQPelRefinementOnly,
MbDataAccess* pcMbDataAccessBaseMotion,
Bool bResidualPred );
ErrVal xEstimateSubMbDirect ( Par8x8 ePar8x8,
IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
Bool bTrafo8x8,
UInt uiAddBits,
MbDataAccess* pcMbDataAccessBaseMotion );
ErrVal xEstimateSubMb8x8 ( Par8x8 ePar8x8,
IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
Bool bTrafo8x8,
Bool bBiPredOnly,
UInt uiNumMaxIter,
UInt uiIterSearchRange,
UInt uiAddBits,
Bool bQPelRefinementOnly,
MbDataAccess* pcMbDataAccessBaseMotion );
ErrVal xEstimateSubMb8x4 ( Par8x8 ePar8x8,
IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
Bool bBiPredOnly,
UInt uiNumMaxIter,
UInt uiIterSearchRange,
UInt uiAddBits,
Bool bQPelRefinementOnly,
MbDataAccess* pcMbDataAccessBaseMotion );
ErrVal xEstimateSubMb4x8 ( Par8x8 ePar8x8,
IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
Bool bBiPredOnly,
UInt uiNumMaxIter,
UInt uiIterSearchRange,
UInt uiAddBits,
Bool bQPelRefinementOnly,
MbDataAccess* pcMbDataAccessBaseMotion );
ErrVal xEstimateSubMb4x4 ( Par8x8 ePar8x8,
IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
Bool bBiPredOnly,
UInt uiNumMaxIter,
UInt uiIterSearchRange,
UInt uiAddBits,
Bool bQPelRefinementOnly,
MbDataAccess* pcMbDataAccessBaseMotion );
ErrVal xCheckBestEstimation ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData );
ErrVal xStoreEstimation ( MbDataAccess& rcMbDataAccess,
IntMbTempData& rcMbBestData,
Frame* pcRecSubband,
Frame* pcPredSignal,
RefFrameList* pcRefList0,
RefFrameList* pcRefList1,
Bool bMotionFieldEstimation,
YuvMbBuffer* pcBaseLayerBuffer );
Bool xCheckUpdate ( YuvMbBuffer& rcPredBuffer,
YuvMbBuffer& rcOrigBuffer,
LumaIdx cIdx,
Int iXSize,
Int iYSize );
ErrVal xEncode16x16ResidualMB( IntMbTempData& rcMbTempData,
UInt& ruiBits,
UInt& ruiExtCbp );
UInt xCalcMbCbp ( UInt uiExtCbp );
Void reCalcBlock4x4 ( IntMbTempData& rcMbTempData, LumaIdx c4x4Idx );
Void reCalcBlock8x8 ( IntMbTempData& rcMbTempData, B8x8Idx c8x8Idx, Int mode );
Void reCalcChroma ( IntMbTempData& rcMbTempData );
ErrVal reCalcBlock4x4Rewrite ( IntMbTempData& rcMbTempData, LumaIdx c4x4Idx );
ErrVal reCalcBlock8x8Rewrite ( IntMbTempData& rcMbTempData, B8x8Idx c8x8Idx, Int mode );
ErrVal reCalcBlock16x16Rewrite ( IntMbTempData& rcMbTempData );
ErrVal reCalcChromaRewrite ( IntMbTempData& rcMbTempData );
ErrVal xCheckSkipSliceMb ( IntMbTempData& rcMbTempData );
ErrVal xCheckSkipSliceMbIntra4 ( IntMbTempData& rcMbTempData, LumaIdx c4x4Idx, UInt& ruiAbsSum );
ErrVal xCheckSkipSliceMbIntra8 ( IntMbTempData& rcMbTempData, B8x8Idx c8x8Idx, UInt& ruiAbsSum );
ErrVal xCheckSkipSliceMbIntra16 ( IntMbTempData& rcMbTempData, UInt& ruiAcAbs );
ErrVal xCheckSkipSliceMbIntraChroma ( IntMbTempData& rcMbTempData, UInt& ruiChromaCbp );
ErrVal xAdjustRewriteReconstruction ( IntMbTempData& rcMbTempData );
private:
UChar xGetFrameBits ( ListIdx eLstIdx, Int iRefPic );
protected:
CodingParameter* m_pcCodingParameter;
Transform* m_pcTransform;
IntraPredictionSearch* m_pcIntraPrediction;
MotionEstimation *m_pcMotionEstimation;
RateDistortionIf* m_pcRateDistortionIf;
XDistortion* m_pcXDistortion;
Bool bInitDone;
Bool m_bISlice;
Bool m_bBSlice;
Bool m_bCabac;
IntMbTempData m_acIntMbTempData[5];
IntMbTempData* m_pcIntMbBestData;
IntMbTempData* m_pcIntMbTempData;
IntMbTempData* m_pcIntMbBest8x8Data;
IntMbTempData* m_pcIntMbTemp8x8Data;
IntMbTempData* m_pcIntMbBestIntraChroma;
YuvMbBuffer *m_pcIntOrgMbPelData;
YuvPicBuffer *m_pcIntPicBuffer;
YuvPicBuffer *m_pcIntraPredPicBuffer;
UInt m_uiMaxRefFrames[2];
UInt m_uiMaxRefPics[2];
BitWriteBufferIf* m_BitCounter;
//JVT-V079 Low-complexity MB mode decision
Bool m_bLowComplexMbEnable[MAX_LAYERS];
//JVT-R057 LA-RDO{
Bool m_bLARDOEnable;
UInt m_uiLayerID;
UInt m_auiPLR[5];
Double m_aadRatio[5][2];
UInt m_uiMBSSD;
Frame* m_pcFrameEcEp;
Frame* m_pcBaseLayerFrame;
Int m_iEpRef;
Double m_dWr0;
Double m_dWr1;
//JVT-R057 LA-RDO}
//S051{
Bool m_bUseBDir;
//S051}
Bool m_bBaseModeAllowedFlag;
};
H264AVC_NAMESPACE_END
#endif // !defined(AFX_MBENCODER_H__F725C8AD_2589_44AD_B904_62FE2A7F7D8D__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -