📄 gopencoder.h
字号:
PicBufferList& rcPicBufferOutputList,
PicBufferList& rcPicBufferUnusedList,
ParameterSetMng* pcParameterSetMng );
ErrVal finish ( UInt& ruiNumCodedFrames,
Double& rdOutputRate,
Double aaadOutputFramerate[MAX_LAYERS][MAX_TEMP_LEVELS][MAX_QUALITY_LEVELS],
Double aaadBits[MAX_LAYERS][MAX_TEMP_LEVELS][MAX_QUALITY_LEVELS] );
Int getFrameWidth () { return 16*m_uiFrameWidthInMb; }
Int getFrameHeight () { return 16*m_uiFrameHeightInMb; }
ErrVal getBaseLayerStatus ( Bool& bExists,
Bool& bMotion,
PicType ePicType,
UInt uiTemporalId );
ErrVal getBaseLayerDataAvailability( Frame*& pcFrame,
Frame*& pcResidual,
MbDataCtrl*& pcMbDataCtrl,
Bool bMotion,
PicType ePicType,
UInt uiTemporalId );
ErrVal getBaseLayerData ( SliceHeader& rcELSH,
Frame*& pcFrame,
Frame*& pcResidual,
MbDataCtrl*& pcMbDataCtrl,
MbDataCtrl*& pcMbDataCtrlEL, // ICU/ETRI FGS_MOT_USE
Bool bSpatialScalability,
Bool bMotion,
PicType ePicType,
UInt uiTemporalId );
UInt getNewBits () { UInt ui = m_uiNewlyCodedBits; m_uiNewlyCodedBits = 0; return ui; }
UInt getScalableLayer () const { return m_uiScalableLayerId; }
Frame* getMGSLPRec ();
Frame* getRefPic ( Int iPoc );
Void setNonRequiredWrite ( UInt ui ) {m_uiNonRequiredWrite = ui;} //NonRequired JVT-Q066 (06-04-08)
//Bug_Fix JVT-R057{
Bool getLARDOEnable( ){ return m_bLARDOEnable; }
Void setLARDOEnable(Bool bEnable){ m_bLARDOEnable= bEnable; }
//Bug_Fix JVT-R057{
MbDataCtrl* getBaseMbDataCtrl() {return m_pcBaseMbDataCtrl;}
Void setBaseMbDataCtrl(MbDataCtrl* pcMbDataCtrl) {m_pcBaseMbDataCtrl = pcMbDataCtrl;}
//JVT-T054{
Void setLayerCGSSNR(UInt ui) { m_uiLayerCGSSNR = ui;}
Void setQualityLevelCGSSNR(UInt ui) { m_uiQualityLevelCGSSNR = ui;}
UInt getLayerCGSSNR() { return m_uiLayerCGSSNR;}
UInt getQualityLevelCGSSNR() { return m_uiQualityLevelCGSSNR;}
Void setBaseLayerCGSSNR(UInt ui) { m_uiBaseLayerCGSSNR = ui;}
Void setBaseQualityLevelCGSSNR(UInt ui) { m_uiBaseQualityLevelCGSSNR = ui;}
UInt getBaseLayerCGSSNR() { return m_uiBaseLayerCGSSNR;}
UInt getBaseQualityLevelCGSSNR() { return m_uiBaseQualityLevelCGSSNR;}
//JVT-T054}
Frame* getBaseLayerResidual() {return m_pcBaseLayerResidual;} // this one is upsampled base layer's residual
UInt getIdrPicId () { return m_uiIdrPicId; } //JVT-W062
//EIDR bug-fix
Void setIDRAccessPeriod(Int i) { m_iIDRAccessPeriod = i;}
//JVT-W051 {
UInt xGetParameterSetBits() { return m_uiParameterSetBits; }
//JVT-W051 }
//JVT-X046 {
ErrVal xEncodeNonKeyPictureSlices( UInt uiBaseLevel,
UInt uiFrame,
AccessUnitData& rcAccessUnitData,
PicBufferList& rcPicBufferInputList,
PicOutputDataList& rcPicOutputDataList );
ErrVal xEncodeHighPassSignalSlices ( ExtBinDataAccessorList& rcOutExtBinDataAccessorList,
RefFrameList* pcRefFrameList0,
RefFrameList* pcRefFrameList1,
Frame* pcOrigFrame,
Frame* pcIntraRecFrame,
Frame* pcMCFrame,
Frame* pcResidual,
Frame* pcPredSignal,
ControlData& rcControlData,
Bool bBiPredOnly,
UInt uiNumMaxIter,
UInt uiIterSearchRange,
UInt uiFrameIdInGOP,
PicType ePicType,
UInt& ruiBits,
UInt& ruiBitsRes,
PicOutputDataList& rcPicOutputDataList,
Frame* pcFrame,
Frame* pcBLRecFrame,
UInt uiBaseLevel);
//JVT-X046 }
protected:
//===== data management =====
ErrVal xCreateData ( const SequenceParameterSet& rcSPS );
ErrVal xDeleteData ();
ErrVal xInitBitCounts ();
ErrVal xInitGOP ( PicBufferList& rcPicBufferInputList );
ErrVal xFinishGOP ( PicBufferList& rcPicBufferInputList,
PicBufferList& rcPicBufferOutputList,
PicBufferList& rcPicBufferUnusedList );
ErrVal xInitExtBinDataAccessor ( ExtBinDataAccessor& rcExtBinDataAccessor );
ErrVal xAppendNewExtBinDataAccessor ( ExtBinDataAccessorList& rcExtBinDataAccessorList,
ExtBinDataAccessor* pcExtBinDataAccessor );
//===== decomposition / composition =====
ErrVal xMotionEstimationFrame ( UInt uiBaseLevel,
UInt uiFrame
, PicType ePicType //TMM
);
ErrVal xDecompositionFrame ( UInt uiBaseLevel,
UInt uiFrame
, PicType ePicType //TMM
);
ErrVal xCompositionFrame ( UInt uiBaseLevel,
UInt uiFrame,
PicBufferList& rcPicBufferInputList
, PicType ePicType //TMM
);
ErrVal xStoreReconstruction ( PicBufferList& rcPicBufferOutputList );
//TMM_INTERLACE{
ErrVal xMotionCompensationMbAff( Frame* pcMCFrame,
RefFrameList* pcRefFrameList0,
RefFrameList* pcRefFrameList1,
MbDataCtrl* pcMbDataCtrl,
SliceHeader& rcSH );
ErrVal xMotionEstimationMbAff( RefFrameList* pcRefFrameList0,
RefFrameList* pcRefFrameList1,
Frame* pcOrigFrame,
Frame* pcIntraRecFrame,
ControlData& rcControlData,
Bool bBiPredOnly,
UInt uiNumMaxIter,
UInt uiIterSearchRange,
UInt uiIntraMode );
//TMM_INTERLACE}
//===== control data initialization =====
ErrVal xSetScalingFactors ( UInt uiBaseLevel );
ErrVal xSetScalingFactors ();
ErrVal xGetListSizes ( UInt uiTemporalLevel,
UInt uiFrameIdInGOP,
UInt auiPredListSize[2] );
ErrVal xSetBaseLayerData ( UInt uiFrameIdInGOP,
PicType ePicType );
ErrVal xInitReordering ( UInt uiFrameIdInGOP,
PicType ePicType
, Bool bUncompleteCOP = false // TMM
);
Void xPAffDecision ( UInt uiFrame );
ErrVal xInitSliceHeader ( UInt uiTemporalLevel,
UInt uiFrameIdInGOP,
PicType ePicType );
ErrVal xClearBufferExtensions ();
ErrVal xGetPredictionLists ( RefFrameList& rcRefList0,
RefFrameList& rcRefList1,
UInt uiBaseLevel,
UInt uiFrame,
RefListUsage eRefListUsage,
Bool bHalfPel = false );
ErrVal xGetCLRecPredictionLists ( RefFrameList& rcRefList0,
RefFrameList& rcRefList1,
UInt uiBaseLevel,
UInt uiFrame,
RefListUsage eRefListUsage,
Bool bHalfPel = false );
ErrVal xInitBaseLayerData ( ControlData& rcControlData,
UInt uiBaseLevel, //TMM_ESS
UInt uiFrame, //TMM_ESS
Bool bMotion,
RefFrameList* pcRefFrameList0,
RefFrameList* pcRefFrameList1,
PicType ePicType );
ErrVal xGetPredictionListsFieldKey ( RefFrameList& rcRefList0,
UInt uiList0Size,
PicType ePicType );
ErrVal xGetPredictionListsField ( RefFrameList& rcRefList0,
RefFrameList& rcRefList1,
UInt uiBaseLevel,
UInt uiFrame,
RefListUsage eRefListUsage,
Bool bHalfPel,
PicType ePicType );
ErrVal xInitControlDataMotion ( UInt uiBaseLevel,
UInt uiFrame,
Bool bMotionEstimation,
PicType ePicType );
ErrVal xInitControlDataLowPass ( UInt uiFrameIdInGOP,
UInt uiBaseLevel, //TMM_ESS
UInt uiFrame,
PicType ePicType );
ErrVal xInitControlDataHighPass ( UInt uiFrameIdInGOP,
UInt uiBaseLevel, //TMM_ESS
UInt uiFrame,
PicType ePicType );
ErrVal xGetConnections ( Double& rdL0Rate,
Double& rdL1Rate,
Double& rdBiRate );
//===== stage encoding =====
ErrVal xEncodeKeyPicture ( Bool& rbKeyPicCoded,
UInt uiFrame,
AccessUnitData& rcAccessUnitData,
PicOutputDataList& rcPicOutputDataList );
ErrVal xEncodeNonKeyPicture ( UInt uiBaseLevel,
UInt uiFrame,
AccessUnitData& rcAccessUnitData,
PicOutputDataList& rcPicOutputDataList
, PicType ePicType //TMM
);
ErrVal xOutputPicData ( PicOutputDataList& rcPicOutputDataList );
//===== basic encoding =====
ErrVal xEncodeLowPassSignal ( ExtBinDataAccessorList& rcOutExtBinDataAccessorList,
ControlData& rcResidualControlData,
Frame* pcOrgFrame,
Frame* pcFrame,
Frame* pcRecSubband,
Frame* pcPredSignal,
UInt& ruiBits,
PicOutputDataList& rcPicOutputDataList,
PicType ePicType );
ErrVal xEncodeHighPassSignal ( ExtBinDataAccessorList& rcOutExtBinDataAccessorList,
ControlData& rcControlData,
Frame* pcOrgFrame,
Frame* pcFrame,
Frame* pcResidual,
Frame* pcPredSignal,
UInt& ruiBits,
UInt& ruiBitsRes,
PicOutputDataList& rcPicOutputDataList,
PicType ePicType );
//===== motion estimation / compensation =====
ErrVal xMotionCompensation ( Frame* pcMCFrame,
RefFrameList* pcRefFrameList0,
RefFrameList* pcRefFrameList1,
MbDataCtrl* pcMbDataCtrl,
SliceHeader& rcSH);
ErrVal xMotionEstimation ( RefFrameList* pcRefFrameList0,
RefFrameList* pcRefFrameList1,
Frame* pcOrigFrame,
Frame* pcIntraRec,
ControlData& rcControlData,
Bool bBiPredOnly,
UInt uiNumMaxIter,
// JVT-S054 (REPLACE) ->
//UInt uiIterSearchRange );
UInt uiIterSearchRange,
UInt uiFrameIdInGOP ,
PicType ePicType );
// JVT-S054 (REPLACE) <-
//--
//===== auxiliary functions =====
ErrVal xCalculateAndAddPSNR ( UInt uiStage,
UInt uiFrame,
PicBufferList& rcPicBufferInputList,
PicOutputDataList& rcPicOutputDataList );
ErrVal xFillAndUpsampleFrame ( Frame* pcFrame,
PicType ePicType,
Bool bFrameMbsOnlyFlag );
ErrVal xFillAndExtendFrame ( Frame* pcFrame,
PicType ePicType,
Bool bFrameMbsOnlyFlag );
ErrVal xZeroIntraMacroblocks ( Frame* pcFrame,
ControlData& pcCtrlData,
PicType ePicType );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -