📄 mbencoder.h
字号:
RefFrameList& rcList0,
RefFrameList& rcList1,
UInt uiNumMaxIter,
UInt uiIterSearchRange,
Double dLambda );
ErrVal encodeFGS ( MbDataAccess& rcMbDataAccess,
MbDataAccess* pcMbDataAccessBase,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
const IntFrame& rcOrigFrame,
IntFrame* pcPredSignal,
IntFrame* pcBQPredSignal,
RefFrameList* pcRefFrameListDiff,
FGSCoder* pcFGSCoder,
IntYuvMbBuffer& rcBaseLayerBuffer,
UInt uiNumMaxIter,
UInt uiIterSearchRange,
Double dLambda,
Int iMaxQpDelta );
//TMM_WP
ErrVal getPredWeights( SliceHeader& rcSH, ListIdx eLstIdx,
Double(*pafWeight)[3], IntFrame* pOrgFrame,
RefFrameList& rcRefFrameListX);
ErrVal getPredOffsets( SliceHeader& rcSH, ListIdx eLstIdx,
Double(*pafOffsets)[3], IntFrame* pOrgFrame,
RefFrameList& rcRefFrameListX);
//TMM_WP
//JVT-R057 LA-RDO{
Void setLARDOEnable( Bool bLARDO) { m_bLARDOEnable= bLARDO; }
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 ( IntFrame* p1) { m_pcFrameEcEp=p1; }
Int GetEC_REC ( IntYuvPicBuffer* pPic1,
IntYuvPicBuffer* pPic2,
Int blockX,
Int blockY);
Void getChannelDistortion( MbDataAccess& rcMbDataAccess,
IntFrame& 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 ( IntFrame* pcBaseLayerRec ) { m_pcBaseLayerFrame = pcBaseLayerRec; }
IntFrame* getBaseLayerRec () { return m_pcBaseLayerFrame; }
//JVT-U106 Behaviour at slice boundaries{
void setIntraBLFlag(Bool b){ m_bIntraBLFlag=b; }
//JVT-U106 Behaviour at slice boundaries}
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,
IntFrame* pcBaseLayerRec = 0
);
//-- JVT-R012
ErrVal xSetRdCostInterMbSR ( IntMbTempData& rcMbTempData,
MbDataAccess* pcMbDataAccessBase,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
IntFrame* pcBaseLayerSbb,
Bool bBLSkip = false,
UInt uiAdditionalBits = 0,
IntFrame* pcBaseLayerRec = 0
);
//--
ErrVal xSetRdCost8x8InterMb ( IntMbTempData& rcMbTempData,
MbDataAccess* pcMbDataAccessBaseMotion,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
Bool bBLSkip = false,
UInt uiAdditionalBits = 0,
Bool bSkipMCPrediction = false,
IntFrame* pcBaseLayerRec = 0
);
//-- JVT-R012
ErrVal xSetRdCost8x8InterMbSR( IntMbTempData& rcMbTempData,
MbDataAccess* pcMbDataAccessBaseMotion,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
IntFrame* pcBaseLayerSbb,
Bool bBLSkip = false,
UInt uiAdditionalBits = 0,
IntFrame* pcBaseLayerRec = 0
);
//--
ErrVal xSetRdCostInterSubMb ( IntMbTempData& rcMbTempData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
B8x8Idx c8x8Idx,
Bool bTrafo8x8,
UInt uiAddBits );
ErrVal xEncodeChromaIntra ( IntMbTempData& rcMbTempData, UInt& ruiExtCbp, UInt& ruiBits );
ErrVal xEncode4x4IntraBlock ( IntMbTempData& rcMbTempData, LumaIdx cIdx, UInt& ruiBits, UInt& ruiExtCbp );
ErrVal xEncode4x4InterBlock ( IntMbTempData& rcMbTempData,
LumaIdx cIdx,
UInt& ruiBits,
UInt& ruiExtCbp,
RefCtx* pcRefCtx = NULL );
ErrVal xEncode8x8InterBlock ( IntMbTempData& rcMbTempData,
B8x8Idx c8x8Idx,
UInt& ruiBits,
UInt& ruiExtCbp,
RefCtx* pcRefCtx = NULL );
ErrVal xEncode8x8IntraBlock ( IntMbTempData& rcMbTempData, B8x8Idx cIdx, UInt& ruiBits, UInt& ruiExtCbp );
ErrVal xEncodeChromaTexture ( IntMbTempData& rcMbTempData, UInt& ruiExtCbp, UInt& ruiBits, MbFGSCoefMap* pcMbFGSCoefMap = NULL );
Void xReStoreParameter ( MbDataAccess& rcMbDataAccess, IntMbTempData& rcMbBestData );
Void xUpDateBest ( IntMbTempData& rcMbTempData );
ErrVal xCheckInterMbMode8x8 ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
IntMbTempData* pcMbRefData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
MbDataAccess* pcMbDataAccessBaseMotion,
IntFrame* pcBaseLayerRec = 0
);
//-- JVT-R012
ErrVal xCheckInterMbMode8x8SR( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
IntMbTempData* pcMbRefData,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
IntFrame* pcBaseLayerSbb,
MbDataAccess* pcMbDataAccessBaseMotion,
IntFrame* pcBaseLayerRec = 0
);
//--
ErrVal xEstimateMbIntraBL ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
const IntFrame* pcBaseLayerRec,
Bool bBSlice,
MbDataAccess* pcMbDataAccessBase );
ErrVal xEstimateMbIntraBL8x8 ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
const IntFrame* 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 ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
Bool bBSlice,
Bool bBLSkip=false );
ErrVal xEstimateMbPCM ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
Bool bBSlice );
ErrVal xEstimateMbSkip ( IntMbTempData*& rpcMbTempData,
IntMbTempData*& rpcMbBestData,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -