codingparameter.h
来自「SVC最新更新代码」· C头文件 代码 · 共 1,067 行 · 第 1/4 页
H
1,067 行
Bool xIsIntraOnly ( CodingParameter* pcCodingParameter );
Bool xHasRestrictedESS ( CodingParameter* pcCodingParameter );
Bool xIsScalableBaselineProfile ( CodingParameter* pcCodingParameter );
ErrVal xForceScalableBaselineProfile ( CodingParameter* pcCodingParameter );
Bool xIsScalableHighProfile ( CodingParameter* pcCodingParameter );
ErrVal xForceScalableHighProfile ( CodingParameter* pcCodingParameter );
public:
UInt m_uiLayerId;
UInt m_uiDependencyId;
UInt m_uiFrameWidthInSamples;
UInt m_uiFrameHeightInSamples;
Double m_dInputFrameRate;
Double m_dOutputFrameRate;
std::string m_cInputFilename;
std::string m_cOutputFilename;
UInt m_uiEntropyCodingModeFlag;
UInt m_uiEnable8x8Trafo;
UInt m_uiScalingMatricesPresent;
UInt m_uiMaxAbsDeltaQP;
Double m_dBaseQpResidual;
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;
//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;
// 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];
UInt m_uiIPCMRate;
std::string m_acScalMatFiles [8];
UChar m_aaucScalingMatrices [8][64];
UInt m_uiBiPred8x8Disable;
UInt m_uiMCBlks8x8Disable;
UInt m_uiBotFieldFirst;
UInt m_uiUseLongTerm;
UInt m_uiPicCodingType;
UInt m_uiNumDependentDId;
UInt m_uiProfileIdc;
UInt m_uiLevelIdc;
Bool m_bIntraOnly;
Bool m_bConstrainedSetFlag0;
Bool m_bConstrainedSetFlag1;
Bool m_bConstrainedSetFlag2;
Bool m_bConstrainedSetFlag3;
};
//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
{
friend class LayerParameters;
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_uiEnable8x8Trafo ( 0 )
, m_uiScalingMatricesPresent ( 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 }
, m_uiBiPred8x8Disable ( 0 )
, m_uiMCBlks8x8Disable ( 0 )
{
for( UInt uiLayerId = 0; uiLayerId < MAX_LAYERS; uiLayerId++ )
{
m_acLayerParameters[uiLayerId].setLayerId( uiLayerId );
}
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; }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?