📄 mbencoder.h
字号:
RefFrameList& rcList0,
RefFrameList& rcList1,
UInt uiNumMaxIter,
UInt uiIterSearchRange,
Double dLambda );
//TMM_WP
ErrVal getPredWeights( SliceHeader& rcSH, ListIdx eLstIdx,
Double(*pafWeight)[3], Frame* pOrgFrame,
RefFrameList& rcRefFrameListX);
ErrVal getPredOffsets( SliceHeader& rcSH, ListIdx eLstIdx,
Double(*pafOffsets)[3], Frame* pOrgFrame,
RefFrameList& rcRefFrameListX);
//TMM_WP
//JVT-R057 LA-RDO{
Void setLARDOEnable( Bool bLARDO) { m_bLARDOEnable= bLARDO; }
//JVT-V079 Low-complexity MB mode decision
Void setLowComplexMbEnable( Int iLayer, Bool bEnable ) { m_bLowComplexMbEnable[iLayer] = bEnable; }
Void setLayerID (UInt uiLayer) { m_uiLayerID=uiLayer;}
Void setPLR( UInt auiPLR[5]) { for(UInt i=0;i<5;i++) m_auiPLR[i] = auiPLR[i];}
Void setRatio( Double adRatio[5][2])
{
for(UInt i=0;i<5;i++)
for(UInt j=0;j<2;j++)
m_aadRatio[i][j] = adRatio[i][j];
}
Void setMBSSD ( UInt uiSSD) { m_uiMBSSD=uiSSD; }
Bool getLARDOEnable(){ return m_bLARDOEnable;}
Void setFrameEcEp ( Frame* p1) { m_pcFrameEcEp=p1; }
Int GetEC_REC ( YuvPicBuffer* pPic1,
YuvPicBuffer* pPic2,
Int blockX,
Int blockY);
Void getChannelDistortion( MbDataAccess& rcMbDataAccess,
Frame& rcRefFrame,
Int *distortion,
Int iMvX,
Int iMvY,
Int startX,
Int startY,
Int blockX,
Int blockY,
Bool bSpatial=false);
Int getEpRef() { return m_iEpRef; }
Void setEpRef(Int iRef) { m_iEpRef=iRef; }
Void getDistortion (Int iDList0,
Int iDList1,
SampleWeighting* pcSampleWeighting,
MbDataAccess& rcMbDataAccess);
//JVT-R057 LA-RDO}
//S051{
Void setUseBDir ( Bool bUse){ m_bUseBDir = bUse;}
//S051}
Void setBaseLayerRec ( Frame* pcBaseLayerRec ) { m_pcBaseLayerFrame = pcBaseLayerRec; }
Frame* getBaseLayerRec () { return m_pcBaseLayerFrame; }
Void setBaseModeAllowedFlag( Bool b ) { m_bBaseModeAllowedFlag = b; }
protected:
ErrVal xScale4x4Block ( TCoeff* piCoeff,
const UChar* pucScale,
UInt uiStart,
const QpParameter& rcQP );
ErrVal xScale8x8Block ( TCoeff* piCoeff,
const UChar* pucScale,
const QpParameter& rcQP );
ErrVal xScaleTCoeffs ( MbDataAccess& rcMbDataAccess,
MbTransformCoeffs& rcTCoeffs );
ErrVal xSetRdCostIntraMb ( IntMbTempData& rcMbTempData,
UInt uiCoeffBits,
Bool bBSlice,
Bool bBLSkip );
ErrVal xSetRdCostInterMb ( IntMbTempData& rcMbTempData,
MbDataAccess* pcMbDataAccessBase,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
Bool bBLSkip = false,
UInt uiAdditionalBits = 0,
Bool bSkipMCPrediction = false,
Frame* pcBaseLayerRec = 0,
Bool bLowComplexity=false // JVT-V079
);
ErrVal xSetRdCost8x8InterMb ( IntMbTempData& rcMbTempData,
MbDataAccess* pcMbDataAccessBaseMotion,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
Bool bBLSkip = false,
UInt uiAdditionalBits = 0,
Bool bSkipMCPrediction = false,
Frame* pcBaseLayerRec = 0
);
ErrVal xSetRdCostInterSubMb ( IntMbTempData& rcMbTempData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
B8x8Idx c8x8Idx,
Bool bTrafo8x8,
UInt uiAddBits,
Bool bLowComplexity=false // JVT-V079
);
ErrVal xEncodeChromaIntra ( IntMbTempData& rcMbTempData, UInt& ruiExtCbp, UInt& ruiBits,
Bool bLowComplexity=false );
ErrVal xEncode4x4IntraBlock ( IntMbTempData& rcMbTempData, LumaIdx cIdx, UInt& ruiBits, UInt& ruiExtCbp, UInt mpMode, UInt lambda_val, Bool LowComplex=false );
ErrVal xEncode4x4InterBlock ( IntMbTempData& rcMbTempData,
LumaIdx cIdx,
UInt& ruiBits,
UInt& ruiExtCbp );
ErrVal xEncode8x8InterBlock ( IntMbTempData& rcMbTempData,
B8x8Idx c8x8Idx,
UInt& ruiBits,
UInt& ruiExtCbp );
ErrVal xEncode8x8IntraBlock ( IntMbTempData& rcMbTempData, B8x8Idx cIdx, UInt& ruiBits, UInt& ruiExtCbp );
ErrVal xEncodeChromaTexture ( IntMbTempData& rcMbTempData, UInt& ruiExtCbp, UInt& ruiBits, Bool bLowComplexity = false );
Void xReStoreParameter ( MbDataAccess& rcMbDataAccess, IntMbTempData& rcMbBestData );
Void xUpDateBest ( IntMbTempData& rcMbTempData );
ErrVal xCheckInterMbMode8x8 ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
IntMbTempData* pcMbRefData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
Bool bBLSkip,
MbDataAccess* pcMbDataAccessBaseMotion,
Frame* pcBaseLayerRec = 0
);
ErrVal xEstimateMbIntraBL ( MbDataAccess& rcMbDataAccess, // JVT-V079,
IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
const Frame* pcBaseLayerRec,
Bool bBSlice,
MbDataAccess* pcMbDataAccessBase );
ErrVal xEstimateMbIntraBL8x8 ( IntMbTempData*& rpcMbTempData,
MbDataAccess* pcMbDataAccessBase,
IntMbTempData*& rpcMbBestData,
const Frame* pcBaseLayerRec,
Bool bBSlice,
Bool bBLSkip );
ErrVal xEstimateMbIntra16 ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
Bool bBSlice,
Bool bBLSkip=false );
ErrVal xEstimateMbIntra8 ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
Bool bBSlice,
Bool bBLSkip=false );
ErrVal xEstimateMbIntra4 ( MbDataAccess& rcMbDataAccess, // JVT-V079
IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
Bool bBSlice,
Bool bBLSkip=false );
ErrVal xEstimateMbPCM ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
Bool bBSlice );
// JVT-W043 {
UInt jsvmCalcMAD ( IntMbTempData*& rpcMbBestData,
MbDataAccess& rcMbDataAccess );
// JVT-W043 }
ErrVal xEstimateMbSkip ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1 );
ErrVal xEstimateMbBLSkip ( IntMbTempData*& rpcIntMbTempData,
IntMbTempData*& rpcIntMbBestData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
const Frame* pcBaseLayerRec,
Bool bBSlice,
MbDataAccess* pcMbDataAccessBaseMotion,
MbDataAccess& rcMbDataAccess,
Bool bResidualPred );
ErrVal xEstimateMbDirect ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
MbDataAccess* pcMbDataAccessBaseMotion,
Bool bResidualPred,
UInt Qp,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -