📄 codingparameter.h
字号:
UInt m_uiBaseQualityLevel;
UInt m_uiMotionInfoMode;
std::string m_cMotionInfoFilename;
//JVT-V079 Low-complexity MB mode decision {
Int m_uiLowComplexMbEnable;
//JVT-V079 Low-complexity MB mode decision }
//----- derived parameters -----
UInt m_uiDecompositionStages;
UInt m_uiNotCodedStages ;
UInt m_uiTemporalResolution;
UInt m_uiFrameDelay;
//----- for scalable SEI ----
UInt m_uiBaseLayerSpatRes;
UInt m_uiBaseLayerTempRes;
//----- ESS ----
ResizeParameters m_cResizeParameters;
std::string m_cESSFilename;
UInt m_uiMbAff;
UInt m_uiPAff;
//--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
UInt m_uiUseRedundantKeySlice; //JVT-W049
// JVT-S054 (ADD) ->
Bool m_bSliceDivisionFlag;
UInt m_uiNumSliceMinus1;
//UInt m_uiSliceDivisionType;//SEI changes update
Bool m_bGridFlag;//SEI changes update
UInt* m_puiGridSliceWidthInMbsMinus1;
UInt* m_puiGridSliceHeightInMbsMinus1;
UInt* m_puiFirstMbInSlice;
UInt* m_puiLastMbInSlice;
UInt* m_puiSliceId;
// JVT-S054 (ADD) <-
// JVT-V035
UInt m_bAVCRewriteFlag;
UInt m_bAVCAdaptiveRewriteFlag;
UInt m_uiSliceSkip;
UInt m_uiSliceSkipTLevelStart;
// JVT-Q065 EIDR{
Int m_iIDRPeriod;
Bool m_bBLSkipEnable;
// JVT-Q065 EIDR}
UInt m_uiPLR; //JVT-R057 LA-RDO
UInt m_uiMGSVectorMode;
UInt m_uiMGSVect[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;
UInt m_uiQLDiscardable; //DS_FIX_FT_09_2007
//JVT-T054}
UInt m_uiExplicitQPCascading;
Double m_adDeltaQPTLevel[MAX_TEMP_LEVELS];
Bool m_bInterlaced;
};
//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_uiAVCmode ( 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_uiEssRPChkEnable ( 0 )
, m_uiMVThres ( 20 )
, m_uiPreAndSuffixUnitEnable ( 0 ) //JVT-S036 lsj
, m_uiMMCOBaseEnable ( 0 ) //JVT-S036 lsj
//JVT-T073 {
, m_uiNestingSEIEnable ( 0 )
, m_uiSceneInfoEnable ( 0 )
//JVT-T073 }
, m_uiIntegrityCheckSEIEnable ( 0 )//JVT-W052 wxwan
//JVT-T054{
, m_uiCGSSNRRefinementFlag ( 0 )
//JVT-T054}
// JVT-U085 LMI
, m_uiTlevelNestingFlag ( 1 )
// JVT-U116 W062 LMI
, m_uiTl0DepRepIdxSeiEnable ( 0 )
, m_uiCIUFlag ( 0 ) //JV
, m_uiEncodeKeyPictures ( 0 )
, m_uiMGSKeyPictureControl ( 0 )
// JVT-W043 {
, m_uiRCMinQP ( 12 )
, m_uiRCMaxQP ( 40 )
, m_uiMaxQpChange ( 2 )
, m_uiInitialQp ( 30 )
, m_uiBasicUnit ( 99 )
, m_uiBitRate ( 64000 )
, m_uiRateControlEnable ( 0 )
, m_uiAdaptInitialQP ( 0 )
// JVT-W043 }
{
for( UInt uiLayer = 0; uiLayer < 6; uiLayer++ )
{
m_adDeltaQpLayer[uiLayer] = 0;
}
}
virtual ~CodingParameter()
{
}
public:
const MotionVectorSearchParams& getMotionVectorSearchParams () const {return m_cMotionVectorSearchParams; }
const LoopFilterParams& getLoopFilterParams () const {return m_cLoopFilterParams; }
const LoopFilterParams& getInterLayerLoopFilterParams () const {return m_cInterLayerLoopFilterParams; }
MotionVectorSearchParams& getMotionVectorSearchParams () {return m_cMotionVectorSearchParams; }
LoopFilterParams& getLoopFilterParams () {return m_cLoopFilterParams; }
LoopFilterParams& getInterLayerLoopFilterParams () {return m_cInterLayerLoopFilterParams; }
const LayerParameters& getLayerParameters ( UInt n ) const { return m_acLayerParameters[n]; }
LayerParameters& getLayerParameters ( UInt n ) { return m_acLayerParameters[n]; }
//TMM_WP
SampleWeightingParams& getSampleWeightingParams(UInt uiLayerId) {return m_cSampleWeightingParams[uiLayerId];}
//TMM_WP
const std::string& getInputFile () const { return m_cInputFile; }
Double getMaximumFrameRate () const { return m_dMaximumFrameRate; }
Double getMaximumDelay () const { return m_dMaximumDelay; }
UInt getTotalFrames () const { return m_uiTotalFrames; }
UInt getGOPSize () const { return m_uiGOPSize; }
UInt getDecompositionStages () const { return m_uiDecompositionStages; }
UInt getIntraPeriod () const { return m_uiIntraPeriod; }
UInt getIntraPeriodLowPass () const { return m_uiIntraPeriodLowPass; }
UInt getNumRefFrames () const { return m_uiNumRefFrames; }
UInt getBaseLayerMode () const { return m_uiBaseLayerMode; }
UInt getNumberOfLayers () const { return m_uiNumberOfLayers; }
/* Void getSimplePriorityMap ( UInt uiSimplePri, UInt& uiTemporalLevel, UInt& uiLayer, UInt& uiQualityLevel )
{ uiTemporalLevel = m_uiTemporalLevelList[uiSimplePri];
uiLayer = m_uiDependencyIdList [uiSimplePri];
uiQualityLevel = m_uiQualityLevelList [uiSimplePri];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -