📄 codingparameter.h
字号:
Void setIndependentParsing( UInt ui ) { m_uiIndependentParsing = ui; }
#endif
//S051{
const std::string& getInSIPFileName () const { return m_cInSIPFileName; }
const std::string& getOutSIPFileName () const { return m_cOutSIPFileName; }
Void setInSIPFileName (Char* p) { m_cInSIPFileName=p; }
Void setOutSIPFileName (Char* p) { m_cOutSIPFileName=p; }
Void setAnaSIP (UInt uiAnaSIP){ m_uiAnaSIP = uiAnaSIP;}
Void setEncSIP (Bool bEncSIP){ m_bEncSIP = bEncSIP;}
UInt getAnaSIP (){ return m_uiAnaSIP; }
Bool getEncSIP (){ return m_bEncSIP; }
//S051}
public:
UInt m_uiLayerId;
UInt m_uiFrameWidth;
UInt m_uiFrameHeight;
Double m_dInputFrameRate;
Double m_dOutputFrameRate;
std::string m_cInputFilename;
std::string m_cOutputFilename;
UInt m_uiClosedLoop;
UInt m_uiEntropyCodingModeFlag;
UInt m_uiAdaptiveTransform;
UInt m_uiMaxAbsDeltaQP;
Double m_dBaseQpResidual;
Double m_dNumFGSLayers;
Double m_adQpModeDecision[MAX_DSTAGES];
Double m_dQpModeDecisionLP;
UInt m_uiInterLayerPredictionMode;
UInt m_uiDecodingLoops;
Bool m_bConstrainedIntraPredForLP;
UInt m_uiForceReorderingCommands;
UInt m_uiBaseLayerId;
UInt m_uiBaseQualityLevel;
UInt m_uiMotionInfoMode;
std::string m_cMotionInfoFilename;
UInt m_uiFGSMode;
std::string m_cFGSRateFilename;
Double m_dFGSRate;
//----- derived parameters -----
UInt m_uiDecompositionStages;
UInt m_uiNotCodedMCTFStages;
UInt m_uiTemporalResolution;
UInt m_uiFrameDelay;
//----- for scalable SEI ----
UInt m_uiBaseLayerSpatRes;
UInt m_uiBaseLayerTempRes;
//----- ESS ----
ResizeParameters m_ResizeParameter;
Double m_dLowPassEnhRef;
UInt m_uiBaseWeightZeroBaseBlock;
UInt m_uiBaseWeightZeroBaseCoeff;
UInt m_uiFgsEncStructureFlag;
//--ICU/ETRI FMO Implementation : FMO start
UInt m_uiNumSliceGroupsMinus1;
UInt m_uiSliceGroupMapType;
UInt m_uiRunLengthMinus1[CodParMAXNumSliceGroupsMinus1];
UInt m_uiTopLeft[CodParMAXNumSliceGroupsMinus1];
UInt m_uiBottomRight[CodParMAXNumSliceGroupsMinus1];
Bool m_bSliceGroupChangeDirection_flag;
UInt m_uiSliceGroupChangeRateMinus1;
UInt m_uiNumSliceGroupMapUnitsMinus1;
UInt m_uiSliceGroupId[CodParMAXNumSliceGroupsMinus1];
UInt m_uiSliceMode;
UInt m_uiSliceArgument;
std::string m_cSliceGroupConfigFileName;
std::string m_cROIConfigFileName;
UInt m_uiNumROI;
UInt m_uiROIID[CodParMAXNumSliceGroupsMinus1];
UInt m_uiSGID[CodParMAXNumSliceGroupsMinus1];
UInt m_uiSLID[CodParMAXNumSliceGroupsMinus1];
//--ICU/ETRI FMO Implementation : FMO end
UInt m_uiUseRedundantSlice; // JVT-Q054 Red. Picture
// JVT-S054 (ADD) ->
Bool m_bSliceDivisionFlag;
UInt m_uiNumSliceMinus1;
UInt m_uiSliceDivisionType;
UInt* m_puiGridSliceWidthInMbsMinus1;
UInt* m_puiGridSliceHeightInMbsMinus1;
UInt* m_puiFirstMbInSlice;
UInt* m_puiLastMbInSlice;
UInt* m_puiSliceId;
// JVT-S054 (ADD) <-
//JVT-P031
Bool m_bUseDiscardable; //indicate if discardable stream is coded for this layer
//discardable stream should not be used for inter-layer prediction
Double m_dPredFGSRate; //rate use for inter-layer prediction (after that rate, stream is discardable)
UInt m_uiFGSMotionMode;
// JVT-Q065 EIDR{
Int m_iIDRPeriod;
Bool m_bBLSkipEnable;
// JVT-Q065 EIDR}
UInt m_uiPLR; //JVT-R057 LA-RDO
UInt m_uiFGSCodingMode;
UInt m_uiGroupingSize;
UInt m_uiPosVect[16];
#if INDEPENDENT_PARSING
UInt m_uiIndependentParsing;
#endif
//S051{
std::string m_cOutSIPFileName;
std::string m_cInSIPFileName;
UInt m_uiAnaSIP;
Bool m_bEncSIP;
//S051}
};
//TMM_WP
class H264AVCENCODERLIB_API SampleWeightingParams
{
public:
SampleWeightingParams() : m_uiIPMode(0), m_uiBMode(0), m_uiLumaDenom(5), m_uiChromaDenom(5), m_fDiscardThr(1) { }
ErrVal check() const ;
ErrVal checkForValidChanges( const SampleWeightingParams& rcSW )const;
Bool operator == ( const SampleWeightingParams& rcSWP ) const ;
Bool operator != ( const SampleWeightingParams& rcSWP ) const { return !((*this) == rcSWP); }
ErrVal writeBinary( BinDataAccessor& rcBinDataAccessor ) const;
ErrVal readBinary( BinDataAccessor& rcBinDataAccessor );
UInt getIPMode() const { return m_uiIPMode; }
UInt getBMode() const { return m_uiBMode; }
UInt getLumaDenom() const { return m_uiLumaDenom; }
UInt getChromaDenom() const { return m_uiChromaDenom; }
Float getDiscardThr() const { return m_fDiscardThr; }
Void setIPMode( UInt uiIPMode ) { m_uiIPMode = uiIPMode; }
Void setBMode( UInt uiBMode ) { m_uiBMode = uiBMode; }
Void setLumaDenom( UInt uiDenom ) { m_uiLumaDenom = uiDenom; }
Void setChromaDenom( UInt uiDenom ) { m_uiChromaDenom = uiDenom; }
Void setDiscardThr( Float fDiscardThr ) { m_fDiscardThr = fDiscardThr; }
protected:
UInt m_uiIPMode; // 0 off, 1 on, 2 random
UInt m_uiBMode; // 0 off, 1 explicit, 2 implicit, 3 random
UInt m_uiLumaDenom; // 0-7
UInt m_uiChromaDenom; // 0-7
Float m_fDiscardThr;
};
//TMM_WP
class H264AVCENCODERLIB_API CodingParameter
{
public:
CodingParameter()
: m_dMaximumFrameRate ( 0.0 )
, m_dMaximumDelay ( 1e6 )
, m_uiTotalFrames ( 0 )
, m_uiGOPSize ( 0 )
, m_uiDecompositionStages ( 0 )
, m_uiIntraPeriod ( 0 )
, m_uiIntraPeriodLowPass ( 0 )
, m_uiNumRefFrames ( 0 )
, m_uiBaseLayerMode ( 0 )
, m_uiNumberOfLayers ( 0 )
, m_bExtendedPriorityId ( 0 )
, m_uiNumSimplePris (0)
//{{Adaptive GOP structure
// --ETRI & KHU
, m_uiUseAGS (0)
, m_uiWriteGOPMode (0)
//}}Adaptive GOP structure
, m_dLowPassEnhRef ( -1.0 )
, m_uiBaseWeightZeroBaseBlock ( MSYS_UINT_MAX )
, m_uiBaseWeightZeroBaseCoeff ( MSYS_UINT_MAX )
, m_uiFgsEncStructureFlag ( MSYS_UINT_MAX )
, m_uiLowPassFgsMcFilter ( AR_FGS_DEFAULT_FILTER )
, m_uiMVCmode ( 0 )
, m_uiFrameWidth ( 0 )
, m_uiFrameHeight ( 0 )
, m_uiSymbolMode ( 0 )
, m_ui8x8Mode ( 0 )
, m_dBasisQp ( 0 )
, m_uiDPBSize ( 0 )
, m_uiNumDPBRefFrames ( 0 )
, m_uiLog2MaxFrameNum ( 0 )
, m_uiLog2MaxPocLsb ( 0 )
, m_cSequenceFormatString ()
, m_uiMaxRefIdxActiveBL0 ( 0 )
, m_uiMaxRefIdxActiveBL1 ( 0 )
, m_uiMaxRefIdxActiveP ( 0 )
//TMM_WP
, m_uiIPMode (0)
, m_uiBMode (0)
//TMM_WP
, m_bNonRequiredEnable ( 0 ) //NonRequired JVT-Q066
, m_uiLARDOEnable (0) //JVT-R057 LA-RDO
, m_uiSuffixUnitEnable (0) //JVT-S036 lsj
, m_uiMMCOBaseEnable ( 0 ) //JVT-S036 lsj
{
for( UInt uiLayer = 0; uiLayer < 6; uiLayer++ )
{
m_adDeltaQpLayer[uiLayer] = 0;
}
/* for ( UInt uiLoop = 0; uiLoop < (1 << PRI_ID_BITS); uiLoop++ )
{
m_uiTemporalLevelList[uiLoop] = 0;
m_uiDependencyIdList [uiLoop] = 0;
m_uiQualityLevelList [uiLoop] = 0;
}
JVT-S036 lsj */
}
virtual ~CodingParameter()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -