📄 codingparameter.h
字号:
UInt getBaseQualityLevelCGSSNR () { return m_uiBaseQualityLevelCGSSNR;}
Void setLayerCGSSNR (UInt ui) { m_uiLayerCGSSNR = ui;}
Void setQualityLevelCGSSNR (UInt ui) { m_uiQualityLevelCGSSNR = ui;}
Void setBaseLayerCGSSNR (UInt ui) { m_uiBaseLayerCGSSNR = ui;}
Void setBaseQualityLevelCGSSNR (UInt ui) { m_uiBaseQualityLevelCGSSNR = ui;}
Bool isDiscardable () { return m_bDiscardable;}
//JVT-T054}
public:
UInt m_uiLayerId;
UInt m_uiFrameWidth;
UInt m_uiFrameHeight;
Double m_dInputFrameRate;
Double m_dOutputFrameRate;
std::string m_cInputFilename;
std::string m_cOutputFilename;
#if JMVM_ONLY // JVT-W081
std::string m_cMotionFilename;
std::string *m_cFwdMotionFilename;
std::string *m_cBwdMotionFilename;
std::string m_cFwdMotionFilenameSLD; // JVT-Y042
std::string m_cBwdMotionFilenameSLD;
#endif // JVT-W081
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;
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];
//S051{
std::string m_cOutSIPFileName;
std::string m_cInSIPFileName;
UInt m_uiAnaSIP;
Bool m_bEncSIP;
//S051}
//JVT-T054{
UInt m_uiLayerCGSSNR;
UInt m_uiQualityLevelCGSSNR;
UInt m_uiBaseLayerCGSSNR;
UInt m_uiBaseQualityLevelCGSSNR;
Bool m_bDiscardable;
//JVT-T054}
};
//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)
, 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
//SEI {
, m_uiNestingSEIEnable ( 0 )
, m_uiSnapShotEnable ( 0 )
, m_uiActiveViewSEIEnable ( 0 )
, m_uiViewScalInfoSEIEnable ( 0 )
, m_uiMultiviewSceneInfoSEIEnable ( 0 ) // SEI JVT-W060
, m_uiMultiviewAcquisitionInfoSEIEnable ( 0 ) // SEI JVT-W060
//SEI }
//JVT-T054{
, m_uiCGSSNRRefinementFlag ( 0 )
, m_uiMaxLayerCGSSNR ( 0 )
, m_uiMaxQualityLevelCGSSNR ( 0 )
//JVT-T054}
, m_uiInterPredPicsFirst ( 0 )
//JVT-W080
, m_uiPdsEnable ( 0 )
, m_uiPdsInitialDelayAnc ( 0 )
, m_uiPdsInitialDelayNonAnc ( 0 )
, m_uiPdsBlockSize ( 0 )
, m_ppuiPdsInitialDelayMinus2L0Anc ( 0 )
, m_ppuiPdsInitialDelayMinus2L1Anc ( 0 )
, m_ppuiPdsInitialDelayMinus2L0NonAnc ( 0 )
, m_ppuiPdsInitialDelayMinus2L1NonAnc ( 0 )
//~JVT-W080
{
for( UInt uiLayer = 0; uiLayer < 6; uiLayer++ )
{
m_adDeltaQpLayer[uiLayer] = 0;
}
}
virtual ~CodingParameter()
{
//JVT-W080
if( m_uiMVCmode && m_uiPdsEnable )
{
UInt uiViewNum = (UInt)SpsMVC.m_num_views_minus_1+1;
for( UInt i = 0; i < uiViewNum; i++ )
{
delete[] m_ppuiPdsInitialDelayMinus2L0Anc[i];
delete[] m_ppuiPdsInitialDelayMinus2L1Anc[i];
delete[] m_ppuiPdsInitialDelayMinus2L0NonAnc[i];
delete[] m_ppuiPdsInitialDelayMinus2L1NonAnc[i];
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -