📄 gopencoder.h
字号:
ErrVal xInitBaseLayerData ( ControlData& rcControlData,
UInt uiBaseLevel, //TMM_ESS
UInt uiFrame, //TMM_ESS
Bool bMotion,
PicType ePicType );
ErrVal xGetPredictionListsFieldKey ( RefFrameList& rcRefList0,
UInt uiList0Size,
PicType ePicType );
ErrVal xGetPredictionListsField ( RefFrameList& rcRefList0,
RefFrameList& rcRefList1,
UInt uiBaseLevel,
UInt uiFrame,
RefListUsage eRefListUsage,
Bool bHalfPel,
IntFrame* pcTmpFrame,
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,
AccessUnitList& rcAccessUnitList,
PicOutputDataList& rcPicOutputDataList );
ErrVal xEncodeNonKeyPicture ( UInt uiBaseLevel,
UInt uiFrame,
AccessUnitList& rcAccessUnitList,
PicOutputDataList& rcPicOutputDataList );
ErrVal xOutputPicData ( PicOutputDataList& rcPicOutputDataList );
//===== basic encoding =====
ErrVal xEncodeLowPassSignal ( ExtBinDataAccessorList& rcOutExtBinDataAccessorList,
ControlData& rcResidualControlData,
IntFrame* pcOrgFrame,
IntFrame* pcFrame,
IntFrame* pcRecSubband,
IntFrame* pcPredSignal,
UInt& ruiBits,
PicOutputDataList& rcPicOutputDataList,
PicType ePicType );
ErrVal xEncodeHighPassSignal ( ExtBinDataAccessorList& rcOutExtBinDataAccessorList,
ControlData& rcControlData,
IntFrame* pcOrgFrame,
IntFrame* pcFrame,
IntFrame* pcResidual,
IntFrame* pcPredSignal,
IntFrame* pcSRFrame, // JVT-R091
UInt& ruiBits,
UInt& ruiBitsRes,
PicOutputDataList& rcPicOutputDataList,
PicType ePicType );
ErrVal xEncodeFGSLayer ( ExtBinDataAccessorList& rcOutExtBinDataAccessorList,
ControlData& rcControlData,
IntFrame* pcFrame,
IntFrame* pcResidual,
IntFrame* pcPredSignal,
IntFrame* pcTempFrame,
IntFrame* pcSubband,
IntFrame* pcCLRec,
UInt uiFrameIdInGOP,
IntFrame* pcOrgFrame,
IntFrame* pcHighPassPredSignal,
RefFrameList& rcRefFrameList0,
RefFrameList& rcRefFrameList1,
UInt& ruiBits,
PicOutputDataList& rcPicOutputDataList,
PicType ePicType );
//===== motion estimation / compensation =====
ErrVal xMotionCompensation ( IntFrame* pcMCFrame,
RefFrameList* pcRefFrameList0,
RefFrameList* pcRefFrameList1,
MbDataCtrl* pcMbDataCtrl,
SliceHeader& rcSH,
Bool bSR = false );
ErrVal xMotionCompensationSRFrame ( IntFrame* pcMCFrame,
RefFrameList* pcRefFrameList0,
RefFrameList* pcRefFrameList1,
MbDataCtrl* pcMbDataCtrl,
SliceHeader& rcSH,
MbDataCtrl* pcBaseMbDataCtrl
);
ErrVal xMotionEstimation ( RefFrameList* pcRefFrameList0,
RefFrameList* pcRefFrameList1,
IntFrame* pcOrigFrame,
IntFrame* pcIntraRec,
ControlData& rcControlData,
Bool bBiPredOnly,
UInt uiNumMaxIter,
// JVT-S054 (REPLACE) ->
//UInt uiIterSearchRange );
UInt uiIterSearchRange,
UInt uiFrameIdInGOP ,
PicType ePicType );
// JVT-S054 (REPLACE) <-
ErrVal xFixOrgResidual ( IntFrame* pcFrame,
IntFrame* pcOrgPred,
IntFrame* pcResidual,
IntFrame* pcSRFrame,
ControlData& pcCtrlData );
//--
//===== auxiliary functions =====
ErrVal xCalculateAndAddPSNR ( UInt uiStage,
UInt uiFrame,
PicBufferList& rcPicBufferInputList,
PicOutputDataList& rcPicOutputDataList );
ErrVal xFillAndUpsampleFrame ( IntFrame* pcFrame,
PicType ePicType,
Bool bFrameMbsOnlyFlag );
ErrVal xFillAndExtendFrame ( IntFrame* pcFrame,
PicType ePicType,
Bool bFrameMbsOnlyFlag );
ErrVal xZeroIntraMacroblocks ( IntFrame* pcFrame,
ControlData& pcCtrlData,
PicType ePicType );
ErrVal xClipIntraMacroblocks ( IntFrame* pcFrame,
ControlData& rcCtrlData,
Bool bClipAll,
PicType ePicType );
ErrVal xAddBaseLayerResidual ( ControlData& rcControlData,
IntFrame* pcFrame,
Bool bSubtract,
PicType ePicType );
ErrVal xUpdateLowPassRec ();
IntFrame* xGetRefFrame ( IntFrame** papcRefFrameList,
UInt uiRefIndex,
RefListUsage eRefListUsage );
ErrVal xClearELPics ();
ErrVal xUpdateELPics ();
//===== slice header =====
ErrVal xSetRplr ( RplrBuffer& rcRplrBuffer, UIntList cPicNumList, UInt uiCurrPicNr, PicType ePicType );
ErrVal xSetRplrAndMmco ( SliceHeader& rcSH );
ErrVal xSetRplrAndMmcoFld ( SliceHeader& rcSH );
ErrVal xWriteSEI ( ExtBinDataAccessorList& rcOutExtBinDataAccessorList, SliceHeader& rcSH, UInt& ruiBit );
ErrVal xWriteSuffixUnit ( ExtBinDataAccessorList& rcOutExtBinDataAccessorList, SliceHeader& rcSH, UInt& ruiBit );//JVT-S036 lsj
ErrVal xWritePrefixUnit ( ExtBinDataAccessorList& rcOutExtBinDataAccessorList, SliceHeader& rcSH, UInt& ruiBit );//prefix unit
ErrVal xSetMmcoBase ( SliceHeader& rcSH, UInt iNum ); //JVT-S036 lsj
//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)}}
ErrVal xGetFrameNumList ( SliceHeader& rcSH, UIntList& rcFrameNumList, ListIdx eLstIdx, UInt uiCurrBasePos );
ErrVal xGetFieldNumList ( SliceHeader& rcSH, UIntList& rcFrameNumList, ListIdx eLstIdx, UInt uiCurrBasePos );
MbDataCtrl* xGetMbDataCtrlL1 ( SliceHeader& rcSH, UInt uiCurrBasePos );
Void xAssignSimplePriorityId ( SliceHeader *pcSliceHeader );
//===== ESS =====
ErrVal xFillPredictionLists_ESS( UInt uiBaseLevel , UInt uiFrame );
ErrVal setDiffPrdRefLists ( RefFrameList& diffPrdRefList,
IntFrame* baseFrame,
IntFrame* enhFrame,
YuvBufferCtrl* pcYuvFullPelBufferCtrl);
ErrVal freeDiffPrdRefLists ( RefFrameList& diffPrdRefList);
UInt getPreAndSuffixUnitEnable() {return m_uiPreAndSuffixUnitEnable;} //JVT-S036 lsj
UInt getMMCOBaseEnable () const { return m_uiMMCOBaseEnable; } //JVT-S036 lsj
//S051{
Bool xSIPCheck (UInt POC);
int xGetMbDataCtrlL1Pos( const SliceHeader& rcSH, UInt uiCurrBasePos );
//S051}
Void setMCResizeParameters (ResizeParameters* resizeParameters);
//JVT-U106 Behaviour at slice boundaries{
ErrVal xConstrainedIntraUpsampling(IntFrame*pcFrame,
IntFrame*pcUpsampling,
IntFrame*pcTemp,
MbDataCtrl* pcBaseDataCtrl,
ReconstructionBypass* pcReconstructionBypass,
ResizeParameters* pcResizeParameters
, PicType ePicType);
void xGetPosition(ResizeParameters* pcResizeParameters,Int*px,Int*py,bool uv_flag);
//JVT-U106 Behaviour at slice boundaries{
protected:
//----- instances -----
ExtBinDataAccessor m_cExtBinDataAccessor;
BinData m_cBinData;
DownConvert m_cDownConvert;
//----- references -----
const SequenceParameterSet* m_pcSPS;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -