📄 codingparameter.h
字号:
#endif
, m_dQpModeDecisionLP ( 0.00 )
, m_uiNumSliceGroupMapUnitsMinus1 ( 0 )
// JVT-S054 (ADD) ->
, m_uiNumSliceMinus1 (0)
, m_bSliceDivisionFlag (false)
, m_uiSliceDivisionType (0)
, m_puiGridSliceWidthInMbsMinus1 (0)
, m_puiGridSliceHeightInMbsMinus1 (0)
, m_puiFirstMbInSlice (0)
, m_puiLastMbInSlice (0)
, m_puiSliceId (0)
// JVT-S054 (ADD) <-
//S051{
, m_cOutSIPFileName ("none")
, m_cInSIPFileName ("none")
, m_uiAnaSIP (0)
, m_bEncSIP (false)
//S051}
{
for( UInt ui = 0; ui < MAX_DSTAGES; ui++ ) m_adQpModeDecision[ui] = 0.00;
::memset( m_uiPosVect, 0x00, 16*sizeof(UInt) );
}
virtual ~LayerParameters()
{
// JVT-S054 (ADD) ->
if (m_puiGridSliceWidthInMbsMinus1 != NULL)
{
free(m_puiGridSliceWidthInMbsMinus1);
m_puiGridSliceWidthInMbsMinus1 = NULL;
}
if (m_puiGridSliceHeightInMbsMinus1 != NULL)
{
free(m_puiGridSliceHeightInMbsMinus1);
m_puiGridSliceHeightInMbsMinus1 = NULL;
}
if (m_puiFirstMbInSlice != NULL)
{
free(m_puiFirstMbInSlice);
m_puiFirstMbInSlice = NULL;
}
if (m_puiLastMbInSlice != NULL)
{
free(m_puiLastMbInSlice);
m_puiLastMbInSlice = NULL;
}
if (m_puiSliceId != NULL)
{
free(m_puiSliceId);
m_puiSliceId = NULL;
}
// JVT-S054 (ADD) <-
}
//===== get =====
UInt getLayerId () const {return m_uiLayerId; }
UInt getFrameWidth () const {return m_uiFrameWidth; }
UInt getFrameHeight () const {return m_uiFrameHeight; }
Double getInputFrameRate () const {return m_dInputFrameRate; }
Double getOutputFrameRate () const {return m_dOutputFrameRate; }
const std::string& getInputFilename () const {return m_cInputFilename; }
const std::string& getOutputFilename () const {return m_cOutputFilename; }
UInt getClosedLoop () const {return m_uiClosedLoop; }
Bool getEntropyCodingModeFlag () const {return m_uiEntropyCodingModeFlag == 1; }
UInt getAdaptiveTransform () const {return m_uiAdaptiveTransform; }
UInt getMaxAbsDeltaQP () const {return m_uiMaxAbsDeltaQP; }
Double getBaseQpResidual () const {return m_dBaseQpResidual; }
Double getNumFGSLayers () const {return m_dNumFGSLayers; }
Double getQpModeDecision (UInt ui) const {return m_adQpModeDecision[ui]; }
Double getQpModeDecisionLP () const {return m_dQpModeDecisionLP; }
UInt getInterLayerPredictionMode () const {return m_uiInterLayerPredictionMode; }
UInt getBaseQualityLevel () const {return m_uiBaseQualityLevel; }
UInt getMotionInfoMode () const {return m_uiMotionInfoMode; }
const std::string& getMotionInfoFilename () const {return m_cMotionInfoFilename; }
UInt getFGSMode () const {return m_uiFGSMode; }
const std::string& getFGSFilename () const {return m_cFGSRateFilename; }
Double getFGSRate () const {return m_dFGSRate; }
UInt getDecompositionStages () const {return m_uiDecompositionStages; }
UInt getNotCodedMCTFStages () const {return m_uiNotCodedMCTFStages; }
UInt getTemporalResolution () const {return m_uiTemporalResolution; }
UInt getFrameDelay () const {return m_uiFrameDelay; }
UInt getBaseLayerSpatRes () const {return m_uiBaseLayerSpatRes; }
UInt getBaseLayerTempRes () const {return m_uiBaseLayerTempRes; }
UInt getDecodingLoops () const {return m_uiDecodingLoops; }
Bool getContrainedIntraForLP () const {return m_bConstrainedIntraPredForLP; }
UInt getForceReorderingCommands () const {return m_uiForceReorderingCommands; }
UInt getBaseLayerId () const {return m_uiBaseLayerId; }
Bool getUseDiscardable () const {return m_bUseDiscardable;} //JVT-P031
Double getPredFGSRate () const {return m_dPredFGSRate;} //JVT-P031
Bool getUseRedundantSliceFlag () const {return m_uiUseRedundantSlice == 1; } //JVT-Q054 Red. Picture
//--ICU/ETRI FMO Implementation : FMO start
UInt getNumSliceGroupsMinus1() const {return m_uiNumSliceGroupsMinus1;} //for test
UInt getSliceGroupMapType() const {return m_uiSliceGroupMapType; }
Bool getSliceGroupChangeDirection_flag () const {return m_bSliceGroupChangeDirection_flag;}
UInt getSliceGroupChangeRateMinus1 () const {return m_uiSliceGroupChangeRateMinus1;}
UInt getNumSliceGroupMapUnitsMinus1() const {return m_uiNumSliceGroupMapUnitsMinus1;}
UInt getSliceGroupId(Int i) const {return m_uiSliceGroupId[i];}
UInt getSliceMode() const {return m_uiSliceMode;}
UInt getSliceArgument() const { return m_uiSliceArgument ;}
const std::string& getSliceGroupConfigFileName() const{ return m_cSliceGroupConfigFileName;}
UInt getUseRedundantSlice() const { return m_uiUseRedundantSlice;}
UInt* getArrayRunLengthMinus1 () const {return (UInt*)m_uiRunLengthMinus1;}
UInt* getArrayTopLeft () const {return (UInt*)m_uiTopLeft;}
UInt* getArrayBottomRight () const {return (UInt*)m_uiBottomRight;}
UInt* getArraySliceGroupId() const {return (UInt*)m_uiSliceGroupId;}
//--ICU/ETRI FMO Implementation : FMO end
//<-- consider ROI Extraction ICU/ETRI DS
const std::string& getROIConfigFileName() const{ return m_cROIConfigFileName;}
UInt getNumROI() const {return m_uiNumROI;} //for test
UInt* getROIID () const {return (UInt*)m_uiROIID;}
UInt* getSGID () const {return (UInt*)m_uiSGID;}
UInt* getSLID () const {return (UInt*)m_uiSLID;}
//--> consider ROI Extraction ICU/ETRI DS
UInt getFGSCodingMode () { return m_uiFGSCodingMode; }
UInt getGroupingSize () { return m_uiGroupingSize; }
UInt getPosVect (UInt uiNum) {return m_uiPosVect[uiNum];}
#if INDEPENDENT_PARSING
UInt getIndependentParsing() const { return m_uiIndependentParsing; }
#endif
//===== set =====
Void setLayerId (UInt p) { m_uiLayerId = p; }
Void setFrameWidth (UInt p) { m_uiFrameWidth = p; }
Void setFrameHeight (UInt p) { m_uiFrameHeight = p; }
Void setInputFrameRate (Double p) { m_dInputFrameRate = p; }
Void setOutputFrameRate (Double p) { m_dOutputFrameRate = p; }
Void setInputFilename (Char* p) { m_cInputFilename = p; }
Void setOutputFilename (Char* p) { m_cOutputFilename = p; }
Void setClosedLoop (UInt p) { m_uiClosedLoop = p; }
Void setEntropyCodingModeFlag (Bool p) { m_uiEntropyCodingModeFlag = p; }
Void setAdaptiveTransform (UInt p) { m_uiAdaptiveTransform = p; }
Void setMaxAbsDeltaQP (UInt p) { m_uiMaxAbsDeltaQP = p; }
Void setBaseQpResidual (Double p) { m_dBaseQpResidual = p; }
Void setNumFGSLayers (Double p) { m_dNumFGSLayers = p; }
Void setQpModeDecision (UInt n,
Double p) { m_adQpModeDecision [n] = p; }
Void setQpModeDecisionLP (Double p) { m_dQpModeDecisionLP = p; }
Void setInterLayerPredictionMode (UInt p) { m_uiInterLayerPredictionMode = p; }
Void setMotionInfoMode (UInt p) { m_uiMotionInfoMode = p; }
Void setMotionInfoFilename (Char* p) { m_cMotionInfoFilename = p; }
Void setFGSMode (UInt p) { m_uiFGSMode = p; }
Void setFGSFilename (Char* p) { m_cFGSRateFilename = p; }
Void setFGSRate (Double p) { m_dFGSRate = p; }
Void setDecompositionStages (UInt p) { m_uiDecompositionStages = p; }
Void setNotCodedMCTFStages (UInt p) { m_uiNotCodedMCTFStages = p; }
Void setTemporalResolution (UInt p) { m_uiTemporalResolution = p; }
Void setFrameDelay (UInt p) { m_uiFrameDelay = p; }
Void setBaseLayerSpatRes (UInt p) { m_uiBaseLayerSpatRes = p; }
Void setBaseLayerTempRes (UInt p) { m_uiBaseLayerTempRes = p; }
Void setBaseQualityLevel (UInt p) { m_uiBaseQualityLevel = p; }
Void setDecodingLoops (UInt p) { m_uiDecodingLoops = p; }
Void setContrainedIntraForLP () { m_bConstrainedIntraPredForLP = true; }
Void setForceReorderingCommands (UInt p) { m_uiForceReorderingCommands = p; }
Void setBaseLayerId (UInt p) { m_uiBaseLayerId = p; }
Void setUseDiscardable (Bool b) {m_bUseDiscardable = b;} //JVT-P031
Void setPredFGSRate (Double d) {m_dPredFGSRate = d;} //JVT-P031
Void setFGSCodingMode ( UInt ui ) { m_uiFGSCodingMode = ui; }
Void setGroupingSize ( UInt ui ) { m_uiGroupingSize = ui; }
Void setPosVect ( UInt uiNum, UInt uiVect) { m_uiPosVect[uiNum] = uiVect; }
// TMM_ESS {
int getExtendedSpatialScalability () { return m_ResizeParameter.m_iExtendedSpatialScalability; }
int getSpatialScalabilityType () { return m_ResizeParameter.m_iSpatialScalabilityType; }
Void setResizeParameters (ResizeParameters *p) { memcpy(&m_ResizeParameter, p, sizeof(ResizeParameters)); }
ResizeParameters* getResizeParameters () {return &m_ResizeParameter; }
// TMM_ESS }
// JVT-Q065 EIDR{
Int getIDRPeriod () { return m_iIDRPeriod; }
Bool getBLSkipEnable () { return m_bBLSkipEnable; }
Void setBLSkipEnable( Bool b ) { m_bBLSkipEnable = b; }
// JVT-Q065 EIDR}
UInt getPLR () { return m_uiPLR; } //JVT-R057 LA-RDO
//===== check =====
ErrVal check();
//--ICU/ETRI FMO Implementation
Void setSliceGroupId(int i, UInt value) { m_uiSliceGroupId[i] = value;}
Void setLowPassEnhRef ( Double d )
{
m_dLowPassEnhRef = ( d < 0.0 ) ? 0.0 : ( ( d > 1.0 ) ? 1.0 : d );
}
Double getLowPassEnhRef () { return m_dLowPassEnhRef; }
Void setAdaptiveRefFGSWeights( UInt uiBlock, UInt uiCoeff )
{
// do not allow AR_FGS_MAX_BASE_WEIGHT - 1, to store it in 5-bit fixed-length
m_uiBaseWeightZeroBaseBlock = (uiBlock >= AR_FGS_MAX_BASE_WEIGHT - 1)
? AR_FGS_MAX_BASE_WEIGHT : uiBlock;
// do not allow AR_FGS_MAX_BASE_WEIGHT - 1, to store it in 5-bit fixed-length
m_uiBaseWeightZeroBaseCoeff = (uiCoeff >= AR_FGS_MAX_BASE_WEIGHT - 1)
? AR_FGS_MAX_BASE_WEIGHT : uiCoeff;
}
Void getAdaptiveRefFGSWeights( UInt& uiBlock, UInt& uiCoeff )
{
uiBlock = m_uiBaseWeightZeroBaseBlock;
uiCoeff = m_uiBaseWeightZeroBaseCoeff;
}
Void setFgsEncStructureFlag( UInt flag )
{
m_uiFgsEncStructureFlag = flag;
}
UInt getFgsEncStructureFlag( )
{
return m_uiFgsEncStructureFlag;
}
UInt getFGSMotionMode() { return m_uiFGSMotionMode; }
Void setFGSMotionMode( UInt uiFGSMotionMode ) { m_uiFGSMotionMode = uiFGSMotionMode; }
Void setUseRedundantSliceFlag(Bool b) { m_uiUseRedundantSlice = b; } // JVT-Q054 Red. Picture
#if INDEPENDENT_PARSING
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -