⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 codingparameter.h

📁 JMVM MPEG MVC/3DAV 测试平台 国际通用标准
💻 H
📖 第 1 页 / 共 5 页
字号:
  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 + -