gopencoder.h
来自「SVC最新更新代码」· C头文件 代码 · 共 864 行 · 第 1/3 页
H
864 行
Bool firstGOPCoded () { return m_bFirstGOPCoded; }
ErrVal initGOP ( AccessUnitData& rcAccessUnitData,
PicBufferList& rcPicBufferInputList );
ErrVal process ( UInt uiAUIndex,
AccessUnitData& rcAccessUnitData,
PicBufferList& rcPicBufferInputList,
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; }
UInt getPicCodingType ( UInt uiTemporalId,
UInt uiFrmIdInTLayer );
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 ( UInt uiLowPassIndex );
Frame* getRefPic ( UInt uiTemporalId, UInt uiFrameIdInTId );
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
//JVT-W051 {
UInt xGetParameterSetBits() { return m_uiParameterSetBits; }
//JVT-W051 }
//JVT-X046 {
ErrVal xEncodeNonKeyPictureSlices( UInt uiBaseLevel,
UInt uiFrame,
AccessUnitData& rcAccessUnitData,
PicBufferList& rcPicBufferInputList,
PicOutputDataList& rcPicOutputDataList,
PicType ePicType );
ErrVal xEncodeHighPassSignalSlices ( ExtBinDataAccessorList& rcOutExtBinDataAccessorList,
RefFrameList* pcRefFrameList0,
RefFrameList* pcRefFrameList1,
MbDataCtrl* pcMbDataCtrlCol,
Frame* pcOrigFrame,
Frame* pcIntraRecFrame,
Frame* pcMCFrame,
Frame* pcResidual,
Frame* pcPredSignal,
ControlData& rcControlData,
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,
MbDataCtrl* pcMbDataCtrlCol,
Frame* pcOrigFrame,
Frame* pcIntraRecFrame,
ControlData& rcControlData,
UInt uiNumMaxIter,
UInt uiIterSearchRange,
UInt uiIntraMode );
//TMM_INTERLACE}
//===== control data initialization =====
ErrVal xSetScalingFactors ( UInt uiBaseLevel );
ErrVal xSetScalingFactors ();
ErrVal xSetBaseLayerData ( UInt uiFrameIdInGOP,
PicType ePicType );
Void xPAffDecision ( UInt uiFrame );
ErrVal xClearBufferExtensions ();
ErrVal xGetPredictionLists ( RefFrameList& rcRefList0,
RefFrameList& rcRefList1,
UInt& ruiFrameIdCol,
UInt uiFrameIdInGOP,
PicType ePicType,
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 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 );
//===== 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,
UInt uiFrameIdInGOP,
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,
MbDataCtrl* pcMbDataCtrlCol,
Frame* pcOrigFrame,
Frame* pcIntraRec,
ControlData& rcControlData,
UInt uiNumMaxIter,
UInt uiIterSearchRange,
UInt uiFrameIdInGOP ,
PicType ePicType );
//===== 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 );
ErrVal xClipIntraMacroblocks ( Frame* pcFrame,
ControlData& rcCtrlData,
Bool bClipAll,
PicType ePicType );
ErrVal xAddBaseLayerResidual ( ControlData& rcControlData,
Frame* pcFrame,
Bool bSubtract,
PicType ePicType );
ErrVal xUpdateLowPassRec ( UInt uiLowPassIndex );
Frame* xGetRefFrame ( UInt uiRefIndex,
RefListUsage eRefListUsage );
ErrVal xClearELPics ();
ErrVal xUpdateELPics ();
//===== slice header =====
ErrVal xWriteSEI ( ExtBinDataAccessorList& rcOutExtBinDataAccessorList, SliceHeader& rcSH, UInt& ruiBit );
ErrVal xWritePrefixUnit ( ExtBinDataAccessorList& rcOutExtBinDataAccessorList, SliceHeader& rcSH, UInt& ruiBit );//prefix unit
//NonRequired JVT-Q066 (06-04-08){{
ErrVal xWriteNonRequiredSEI( ExtBinDataAccessorList& rcOutExtBinDataAccessorList, SEI::NonRequiredSei* pcNonRequiredSei, UInt& ruiBit );
ErrVal xSetNonRequiredSEI ( SliceHeader* pcSliceHeader, SEI::NonRequiredSei* pcNonRequiredSei);
//ErrVal xWriteNonRequiredSEI( ExtBinDataAccessorList& rcOutExtBinDataAccessorList, UInt& ruiBit );
//NonRequired JVT-Q066 (06-04-08)}}
// JVT-V068 HRD {
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?