📄 gopencoder.h
字号:
enum
{
NUM_TMP_FRAMES = 6
};
enum RefListUsage
{
RLU_UNDEFINED = 0,
RLU_MOTION_ESTIMATION = 1,
RLU_GET_RESIDUAL = 2,
RLU_RECONSTRUCTION = 3
};
protected:
MCTFEncoder ();
virtual ~MCTFEncoder ();
public:
static ErrVal create ( MCTFEncoder*& rpcMCTFEncoder );
ErrVal destroy ();
ErrVal init ( CodingParameter* pcCodingParameter,
LayerParameters* pcLayerParameters,
H264AVCEncoder* pcH264AVCEncoder,
SliceEncoder* pcSliceEncoder,
RQFGSEncoder* pcRQFGSEncoder,
LoopFilter* pcLoopFilter,
PocCalculator* pcPocCalculator,
NalUnitEncoder* pcNalUnitEncoder,
YuvBufferCtrl* pcYuvFullPelBufferCtrl,
YuvBufferCtrl* pcYuvHalfPelBufferCtrl,
QuarterPelFilter* pcQuarterPelFilter,
MotionEstimation* pcMotionEstimation
//JVT-U106 Behaviour at slice boundaries{
,ReconstructionBypass* pcReconstructionBypass
//JVT-U106 Behaviour at slice boundaries}
);
ErrVal initParameterSets ( const SequenceParameterSet& rcSPS,
const PictureParameterSet& rcPPSLP,
const PictureParameterSet& rcPPSHP );
ErrVal initParameterSetsForFGS( const SequenceParameterSet& rcSPS,
const PictureParameterSet& rcPPSLP,
const PictureParameterSet& rcPPSHP );
ErrVal uninit ();
ErrVal addParameterSetBits ( UInt uiParameterSetBits );
Bool firstGOPCoded () { return m_bFirstGOPCoded; }
ErrVal initGOP ( AccessUnitList& rcAccessUnitList,
PicBufferList& rcPicBufferInputList );
ErrVal process ( UInt uiAUIndex,
AccessUnitList& rcAccessUnitList,
PicBufferList& rcPicBufferInputList,
PicBufferList& rcPicBufferOutputList,
PicBufferList& rcPicBufferUnusedList,
Double m_aaauidSeqBits[MAX_LAYERS][MAX_TEMP_LEVELS][MAX_QUALITY_LEVELS] );
ErrVal finish ( UInt& ruiNumCodedFrames,
Double& rdOutputRate,
Double* rdOutputFramerate,
Double* rdOutputBitrate,
Double aaadBits[MAX_LAYERS][MAX_TEMP_LEVELS][MAX_QUALITY_LEVELS] );
// BUG_FIX liuhui{
ErrVal SingleLayerFinish( Double aaadBits[MAX_LAYERS][MAX_TEMP_LEVELS][MAX_QUALITY_LEVELS],
Double aaadSingleBitrate[MAX_LAYERS][MAX_TEMP_LEVELS][MAX_QUALITY_LEVELS] );
// BUG_FIX liuhui}
Int getFrameWidth () { return 16*m_uiFrameWidthInMb; }
Int getFrameHeight () { return 16*m_uiFrameHeightInMb; }
ErrVal getBaseLayerStatus ( Bool& bExists,
Bool& bMotion,
Int iPoc,
PicType ePicType );
ErrVal getBaseLayerDataAvailability( IntFrame*& pcFrame,
IntFrame*& pcResidual,
MbDataCtrl*& pcMbDataCtrl,
Bool& bConstrainedIPredBL,
Bool& bForCopyOnly,
Int iSpatialScalability,
Int iPoc,
Bool bMotion,
PicType ePicType );
ErrVal getBaseLayerData ( IntFrame*& pcFrame,
IntFrame*& pcResidual,
MbDataCtrl*& pcMbDataCtrl,
MbDataCtrl*& pcMbDataCtrlEL, // ICU/ETRI FGS_MOT_USE
Bool& bConstrainedIPredBL,
Bool& bForCopyOnly,
Int iSpatialScalability,
Int iPoc,
Bool bMotion,
PicType ePicType );
ErrVal getBaseLayerSH ( SliceHeader*& rpcSliceHeader,
Int iPoc,
PicType ePicType );
UInt getNewBits () { UInt ui = m_uiNewlyCodedBits; m_uiNewlyCodedBits = 0; return ui; }
UInt* getGOPBits () { return m_auiCurrGOPBits; }
Void setScalableLayer (UInt p) { m_uiScalableLayerId = p; }
UInt getScalableLayer () const { return m_uiScalableLayerId; }
IntFrame* getMGSLPRec ();
IntFrame* getRefPic ( Int iPoc );
//===== ESS =====
Int getSpatialScalabilityType() { return m_pcResizeParameters->m_iSpatialScalabilityType; }
ResizeParameters* getResizeParameters() { return m_pcResizeParameters; }
Bool getUseDiscardableUnit() { return m_bUseDiscardableUnit;} //JVT-P031
Void setDiscardableUnit( Bool b) {m_bUseDiscardableUnit = b;} //JVT-P031
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}
//EIDR bug-fix
Void setIDRAccessPeriod(Int i) { m_iIDRAccessPeriod = i;}
protected:
//===== data management =====
ErrVal xCreateData ( const SequenceParameterSet& rcSPS );
ErrVal xDeleteData ();
ErrVal xInitBitCounts ();
ErrVal xInitGOP ( PicBufferList& rcPicBufferInputList );
ErrVal xFinishGOP ( PicBufferList& rcPicBufferInputList,
PicBufferList& rcPicBufferOutputList,
PicBufferList& rcPicBufferUnusedList,
Double m_aaauidSeqBits[MAX_LAYERS][MAX_TEMP_LEVELS][MAX_QUALITY_LEVELS] );
ErrVal xInitExtBinDataAccessor ( ExtBinDataAccessor& rcExtBinDataAccessor );
ErrVal xAppendNewExtBinDataAccessor ( ExtBinDataAccessorList& rcExtBinDataAccessorList,
ExtBinDataAccessor* pcExtBinDataAccessor,
Bool bModifyDataAccessor = true );
//===== decomposition / composition =====
ErrVal xMotionEstimationFrame ( UInt uiBaseLevel,
UInt uiFrame );
ErrVal xDecompositionFrame ( UInt uiBaseLevel,
UInt uiFrame );
ErrVal xCompositionFrame ( UInt uiBaseLevel,
UInt uiFrame,
PicBufferList& rcPicBufferInputList );
ErrVal xStoreReconstruction ( PicBufferList& rcPicBufferOutputList );
//TMM_INTERLACE{
ErrVal xMotionCompensationMbAff( IntFrame* pcMCFrame,
RefFrameList* pcRefFrameList0,
RefFrameList* pcRefFrameList1,
MbDataCtrl* pcMbDataCtrl,
SliceHeader& rcSH );
ErrVal xMotionEstimationMbAff( RefFrameList* pcRefFrameList0,
RefFrameList* pcRefFrameList1,
IntFrame* pcOrigFrame,
IntFrame* 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 );
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 xGetBQPredictionLists ( RefFrameList& rcRefList0,
RefFrameList& rcRefList1,
UInt uiBaseLevel,
UInt uiFrame );
ErrVal xGetCLRecPredictionLists ( RefFrameList& rcRefList0,
RefFrameList& rcRefList1,
UInt uiBaseLevel,
UInt uiFrame,
RefListUsage eRefListUsage,
Bool bHalfPel = false );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -