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

📄 sliceheaderbase.h

📁 jsvm开发代码包括抽样,编码,抽取,解码等一系列功能,可以做工具或研究用
💻 H
📖 第 1 页 / 共 4 页
字号:
  //JVT-U106 Behaviour at slice boundaries}

  //===== set parameters =====
  Void  setNalRefIdc                  ( NalRefIdc   e  )  { m_eNalRefIdc                        = e;  }
  Void  setNalUnitType                ( NalUnitType e  )  { m_eNalUnitType                      = e;  }
  Void  setLayerId                    ( UInt        ui )  { m_uiLayerId                         = ui; }
  Void  setTemporalLevel              ( UInt        ui )  { m_uiTemporalLevel                   = ui; }
  Void  setQualityLevel               ( UInt        ui )  { m_uiQualityLevel                    = ui; }
  Void  setFirstMbInSlice             ( UInt        ui )  { m_uiFirstMbInSlice                  = ui; }
  Void  setSliceType                  ( SliceType   e  )  { m_eSliceType                        = e;  }
  Void  setPicParameterSetId          ( UInt        ui )  { m_uiPicParameterSetId               = ui; }
  Void  setFrameNum                   ( UInt        ui )  { m_uiFrameNum                        = ui; }
  Void  setNumMbsInSlice              ( UInt        ui )  { m_uiNumMbsInSlice                   = ui; }
  Void  setFgsComponentSep            ( Bool        b  )  { m_bFgsComponentSep                  = b;  }
  Void  setIdrPicId                   ( UInt        ui )  { m_uiIdrPicId                        = ui; }
  
  Void  setBasePredWeightTableFlag    ( Bool        b  )  { m_bBasePredWeightTableFlag          = b;  }
  Void  setLumaLog2WeightDenom        ( UInt        ui )  { m_uiLumaLog2WeightDenom             = ui; }
  Void  setChromaLog2WeightDenom      ( UInt        ui )  { m_uiChromaLog2WeightDenom           = ui; }
  Void  setDirectSpatialMvPredFlag    ( Bool        b  )  { m_bDirectSpatialMvPredFlag          = b;  }
  Void  setUseBaseRepresentationFlag  ( Bool        b  )  { m_bUseBasePredictionFlag            = b; 
                                                            m_bStoreBaseRepresentationFlag      = b; }
 
  Void  setBaseLayerId                ( UInt        ui )  { m_uiBaseLayerId                     = ui; 
                                                            m_bLayerBaseFlag                    = (m_uiBaseLayerId==MSYS_UINT_MAX);}
  Void  setLayerBaseFlag              ( Bool        b  )  { m_bLayerBaseFlag = b; 
                                                            if (m_bLayerBaseFlag) m_uiBaseLayerId=MSYS_UINT_MAX;}
  Void  setBaseQualityLevel           ( UInt        ui )  { m_uiBaseQualityLevel                = ui; }
  Void  setAdaptivePredictionFlag     ( Bool        b  )  { m_bAdaptivePredictionFlag           = b;  }
  // JVT-U160 LMI {
  Void  setAdaptiveResPredictionFlag  ( Bool        b  )  { m_bAdaptiveResPredictionFlag        = b;  }
  Void  setAdaptiveMotPredictionFlag  ( Bool        b  )  { m_bAdaptiveMotPredictionFlag        = b;  }
  Void  setDefaultBaseModFlag         ( Bool        b  )  { m_bDefaultBaseModeFlag              = b;  }
  Void  setDefaultMotPredictionFlag   ( Bool        b  )  { m_bDefaultMotPredictionFlag         = b;  }
// JVT-U160 LMI }
  Void  setNumRefIdxActiveOverrideFlag( Bool        b  )  { m_bNumRefIdxActiveOverrideFlag      = b;  }
  Void  setNumRefIdxActive            ( ListIdx     e,
                                        UInt        ui )  { m_auiNumRefIdxActive[e]             = ui; }
  Void  setNumRefIdxUpdate            ( UInt        ui,
                                        ListIdx     e,
                                        UInt        p  )  { m_aauiNumRefIdxActiveUpdate[ui][e]  = p;  }
  Void  setNoOutputOfPriorPicsFlag    ( Bool        b  )  { m_bNoOutputOfPriorPicsFlag          = b;  }
  Void  setAdaptiveRefPicBufferingFlag( Bool        b  )  { m_bAdaptiveRefPicBufferingModeFlag  = b;  }
  Void  setAdaptiveRefPicMarkingFlag  (Bool  		b  )  { m_bAdaptiveRefPicMarkingModeFlag    = b;  }//JVT-S036 lsj
  Void  setCabacInitIdc               ( UInt        ui )  { m_uiCabacInitIdc                    = ui; }
  Void  setSliceQpDelta               ( Int         i  )  { m_iSliceQpDelta                     = i;  }
  Void  setSliceHeaderQp              ( Int         i  )  { setSliceQpDelta( i - m_rcPPS.getPicInitQp() );  }
  
  Void setSimplePriorityId			  (UInt			ui)	   { m_uiPriorityId = ui;}
  Void setDiscardableFlag			  (Bool			b)	   { m_bDiscardableFlag = b;}

  Void setBaseLayerUsesConstrainedIntraPred( Bool b ) { m_bBaseLayerUsesConstrainedIntraPred = b; }

  Void  setSliceGroupChangeCycle(UInt uiSliceGroupChangeCycle){m_uiSliceGroupChangeCycle = uiSliceGroupChangeCycle;};
  ErrVal FMOInit();
  ErrVal FMOUninit(); //TMM_INTERLACE

  Void setFieldPicFlag                ( Bool        b  )  { m_bFieldPicFlag                     = b;  }
  Void setBottomFieldFlag             ( Bool        b  )  { m_bBottomFieldFlag                  = b;  }
  Void  setPicOrderCntLsb             ( UInt        ui )  { m_uiPicOrderCntLsb                  = ui; }
  Void setDeltaPicOrderCntBottom      ( Int         i  )  { m_iDeltaPicOrderCntBottom           = i;  }
  Void setDeltaPicOrderCnt            ( UInt        ui,
		                                    Int         i  )  { m_aiDeltaPicOrderCnt[ui]            = i;  }
  
//	TMM_EC {{
	Bool	getTrueSlice()	const	{ return	m_bTrueSlice;}
	Void	setTrueSlice( Bool bTrueSlice)	{ m_bTrueSlice = bTrueSlice;}
	ERROR_CONCEAL	m_eErrorConceal;
	Bool	m_bTrueSlice;
//  TMM_EC }}
  Void  setRedundantPicCnt            (UInt         ui )  { m_uiRedundantPicCnt                 = ui; }  // JVT-Q054 Red. Picture
  Void            setFGSCycleAlignedFragment    ( Bool bFlag )  { m_bFGSCycleAlignedFragment = bFlag; }
  Bool            getFGSCycleAlignedFragment    ()              { return m_bFGSCycleAlignedFragment;  }
  Void            setFGSCodingMode      ( Bool b  )             { m_bFGSCodingMode = b;     }
  Bool            getFGSCodingMode      ()                      { return m_bFGSCodingMode;  }
  Void            setGroupingSize       ( UInt ui )             { m_uiGroupingSize = ui;    }
  UInt            getGroupingSize       ()                      { return m_uiGroupingSize;  }

//JVT-T054{
  Void          setLayerCGSSNR(UInt ui) { m_uiLayerCGSSNR = ui;}
  UInt          getLayerCGSSNR() { return m_uiLayerCGSSNR;}
  Void          setQualityLevelCGSSNR(UInt ui) { m_uiQualityLevelCGSSNR = ui;}
  UInt          getQualityLevelCGSSNR() { return m_uiQualityLevelCGSSNR;}
  Void          setBaseLayerCGSSNR(UInt ui) { m_uiBaseLayerCGSSNR = ui;}
  Void          setBaseQualityLevelCGSSNR(UInt ui) { m_uiBaseQualityLevelCGSSNR = ui;}
//JVT-T054}

  //EIDR bug-fix
  Void			setInIDRAccess(Bool b)	{ m_bInIDRAccess = b; }
  Bool			getInIDRAccess()		{ return m_bInIDRAccess; }

  Bool          getUseSmoothedRef() { return m_bUseSmoothedRef;} //JVT-V058
  Void          setUseSmoothedRef(Bool b) {m_bUseSmoothedRef = b;}//JVT-V058 

protected:
  ErrVal xReadH264AVCCompatible       ( HeaderSymbolReadIf*   pcReadIf );
  ErrVal xReadScalable                ( HeaderSymbolReadIf*   pcReadIf );
  ErrVal xWriteScalable               ( HeaderSymbolWriteIf*  pcWriteIf ) const;
  ErrVal xWriteH264AVCCompatible      ( HeaderSymbolWriteIf*  pcWriteIf ) const;

public:
  ErrVal ReadLastBit                  (  );
  HeaderSymbolReadIf*                 m_pcReadIf;
  
protected:
  const PictureParameterSet&  m_rcPPS;
  const SequenceParameterSet& m_rcSPS;

  NalRefIdc                   m_eNalRefIdc;
  NalUnitType                 m_eNalUnitType;
  UInt                        m_uiLayerId;
  UInt                        m_uiTemporalLevel;
  UInt                        m_uiQualityLevel;
  UInt                        m_uiFirstMbInSlice;
  SliceType                   m_eSliceType;
  UInt                        m_uiPicParameterSetId;
  UInt                        m_uiFrameNum;
  UInt                        m_uiNumMbsInSlice;
  Bool                        m_bFgsComponentSep;
  UInt                        m_uiIdrPicId;
  Bool                        m_bBasePredWeightTableFlag;
  UInt                        m_uiLumaLog2WeightDenom;
  UInt                        m_uiChromaLog2WeightDenom;
  PredWeightTable             m_acPredWeightTable[2];

  Bool                        m_bDirectSpatialMvPredFlag;

  Bool                        m_bUseBasePredictionFlag;
  Bool                        m_bStoreBaseRepresentationFlag;
  Bool                        m_bLayerBaseFlag;
  UInt                        m_uiBaseLayerId;
  UInt                        m_uiBaseQualityLevel;
  UInt						            m_uiBaseFragmentOrder;
  Bool                        m_bAdaptivePredictionFlag;
// JVT-U160 LMI {
  Bool                        m_bAdaptiveResPredictionFlag;
  Bool                        m_bDefaultBaseModeFlag;
  Bool                        m_bAdaptiveMotPredictionFlag;
  Bool                        m_bDefaultMotPredictionFlag;
  // JVT-U160 LMI }
  Bool                        m_bNumRefIdxActiveOverrideFlag;
  UInt                        m_auiNumRefIdxActive[2];
  RplrBuffer                  m_acRplrBuffer      [2];
  UInt                        m_aauiNumRefIdxActiveUpdate[MAX_TEMP_LEVELS][2];
  Bool                        m_bNoOutputOfPriorPicsFlag;
  Bool                        m_bAdaptiveRefPicBufferingModeFlag;
//JVT-S036 lsj start 
  Bool						            m_bAdaptiveRefPicMarkingModeFlag;
  UInt						            m_bMemoryManagementControlOperation;
  UInt						            m_bDifferenceOfPicNumsMinus1;
  UInt						            m_bLongTermPicNum;
  MmcoBuffer				          m_cMmmcoBaseBuffer; 
//JVT-S036 lsj end
  MmcoBuffer                  m_cMmmcoBuffer;
  UInt                        m_uiCabacInitIdc;
  Int                         m_iSliceQpDelta;
  DeblockingFilterParameterScalable   m_cDeblockingFilterParameterScalable;
  

  UInt                        m_uiSliceGroupChangeCycle;
  FMO*                        m_pcFMO;

  Bool                        m_bBaseLayerUsesConstrainedIntraPred;

  UInt						            m_uiPriorityId;
  Bool					              m_bDiscardableFlag;
  
  //JVT-P031
  Bool                        m_bFragmentedFlag;
  UInt                        m_uiFragmentOrder;
  Bool                        m_bLastFragmentFlag;
  //~JVT-P031
  // JVT-V088 LMI {
  // JVT-U116 LMI {
  Bool                        m_bTl0PicIdxPresentFlag;
  UInt                        m_uiTl0PicIdx;
  UInt                        m_uiPrevTl0PicIdx;
  Bool                        m_bTl0PicIdxResetFlag;
  UInt                        m_uiNumTl0PicIdxUpdate;
  // JVT-U116 LMI }
  // JVT-V088 LMI }
  UInt                        m_uiRedundantPicCnt;  // JVT-Q054 Red. Picture

  Bool                        m_bFieldPicFlag;
  Bool                        m_bBottomFieldFlag;
	UInt                        m_uiPicOrderCntLsb;
  Int                         m_iDeltaPicOrderCntBottom;
  Int                         m_aiDeltaPicOrderCnt[2];

//JVT-T054{
  UInt                        m_uiLayerCGSSNR;
  UInt                        m_uiQualityLevelCGSSNR;
  UInt                        m_uiBaseLayerCGSSNR;
  UInt                        m_uiBaseQualityLevelCGSSNR;
//JVT-T054}
  //JVT-U106 Behaviour at slice boundaries{
  Bool                        m_bCIUFlag;
  //JVT-U106 Behaviour at slice boundaries}
  Bool                        m_bAVCRewriteFlag;   // V-035

// TMM_ESS {
public:
  Int           getLeftOffset ()   const { return m_iScaledBaseLeftOffset; }
  Int           getRightOffset ()  const { return m_iScaledBaseRightOffset; }
  Int           getTopOffset ()    const { return m_iScaledBaseTopOffset; }
  Int           getBottomOffset () const { return m_iScaledBaseBottomOffset; }
  Int           getBaseChromaPhaseX () const { return (Int)m_uiBaseChromaPhaseXPlus1-1; }
  Int           getBaseChromaPhaseY () const { return (Int)m_uiBaseChromaPhaseYPlus1-1; }
  Void          setLeftOffset   ( Int i ) { m_iScaledBaseLeftOffset = i; }
  Void          setRightOffset  ( Int i ) { m_iScaledBaseRightOffset = i; }
  Void          setTopOffset    ( Int i ) { m_iScaledBaseTopOffset = i; }
  Void          setBottomOffset ( Int i ) { m_iScaledBaseBottomOffset = i; }
  Void          setBaseChromaPhaseX ( Int i)  { m_uiBaseChromaPhaseXPlus1 = i+1; }
  Void          setBaseChromaPhaseY ( Int i)  { m_uiBaseChromaPhaseYPlus1 = i+1; }
  Void          Print               ( );

  Bool          m_bBaseFrameFromBotFieldFlag;
  Bool          m_bBaseBotFieldSyncFlag;
  Bool          m_bBaseFrameMbsOnlyFlag;
  Bool          m_bBaseFieldPicFlag;
  Bool          m_bBaseBotFieldFlag;

protected:
  UInt          m_uiBaseChromaPhaseXPlus1;
  UInt          m_uiBaseChromaPhaseYPlus1;

  Int           m_iScaledBaseLeftOffset;
  Int           m_iScaledBaseTopOffset;
  Int           m_iScaledBaseRightOffset;
  Int           m_iScaledBaseBottomOffset;
#ifdef _JVTV074_
public:
  Void          setResampleFilterIdx ( Int i ) { m_uiResampleFilterIdx = i; }
  Int           getResampleFilterIdx ( ) const { return m_uiResampleFilterIdx; }
protected:
  UInt          m_uiResampleFilterIdx;
#endif //_JVTV074_
// TMM_ESS }

  Bool          m_bArFgsUsageFlag;
  Bool          m_bFgsEntropyOrderFlag;
  UInt          m_uiLowPassFgsMcFilter;
  UInt          m_uiBaseWeightZeroBaseBlock;
  UInt          m_uiBaseWeightZeroBaseCoeff;

  UInt          m_uiVectorModeIndex; 
  UInt          m_uiGroupingSize; 
  Bool          m_bFGSCycleAlignedFragment; 
  Bool          m_bFGSCodingMode;
  UInt          m_uiNumPosVectors;
  UInt          m_uiPosVect[16];
  Bool          m_bFGSVectorModeOverrideFlag;
  //EIDR bug-fix
  Bool			m_bInIDRAccess; 

  Bool          m_bUseSmoothedRef;//JVT-V058
};


#if defined( WIN32 )
# pragma warning( default: 4251 )
# pragma warning( default: 4275 )
#endif

typedef SliceHeaderBase::PredWeight PW;

H264AVC_NAMESPACE_END



#endif // !defined(AFX_SLICEHEADERBASE_H__2CC1FD0F_CACB_4799_84BE_FC5FC9B9C245__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -