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

📄 sliceheaderbase.h

📁 JMVM MPEG MVC/3DAV 测试平台 国际通用标准
💻 H
📖 第 1 页 / 共 4 页
字号:
  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  setPicOrderCntLsb             ( UInt        ui )  { m_uiPicOrderCntLsb                  = ui; }
  Void  setDeltaPicOrderCntBottom     ( Int         i  )  { m_iDeltaPicOrderCntBottom           = i;  }
  Void  setDeltaPicOrderCnt           ( UInt        ui,
                                        Int         i  )  { m_aiDeltaPicOrderCnt[ui]            = i;  }
  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  setSnapShotId                 ( Int			ui )  { m_uiSnapShotId                      = ui; } //SEI 
  Void  setKeyPictureFlag             ( Bool        b  )  { m_bKeyPictureFlag                   = b;  }
  Void  setKeyPicFlagScalable         ( Bool        b  )  { m_bKeyPicFlagScalable               = b;  }  //JVT-S036 
  Void  setBaseLayerId                ( UInt        ui )  { m_uiBaseLayerId                     = ui; }
  Void  setBaseQualityLevel           ( UInt        ui )  { m_uiBaseQualityLevel                = ui; }
  Void  setAdaptivePredictionFlag     ( Bool        b  )  { m_bAdaptivePredictionFlag           = b;  }
  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 
  Void  setCabacInitIdc               ( UInt        ui )  { m_uiCabacInitIdc                    = ui; }
  Void  setSliceQpDelta               ( Int         i  )  { m_iSliceQpDelta                     = i;  }
  Void  setSliceHeaderQp              ( Int         i  )  { setSliceQpDelta( i - m_rcPPS.getPicInitQp() );  }

#if JMVM_ONLY  // JVT-W081
  Void  setGlobalDisparityL0         ( UInt  uiIdx, Short sHor, Short sVer ) 
								     {	m_iGlobalDisparityL0[uiIdx][0]=sHor;
										m_iGlobalDisparityL0[uiIdx][1]=sVer; }
  Void  setGlobalDisparityL1         ( UInt  uiIdx, Short sHor, Short sVer ) 
								     {	m_iGlobalDisparityL1[uiIdx][0]=sHor;
								        m_iGlobalDisparityL1[uiIdx][1]=sVer; }
  Void  setGlobalDisparityVIdL0      ( UInt  uiIdx, Int iVId ) { m_iGlobalDisparityRefVIdL0[uiIdx]=iVId; }
  Void  setGlobalDisparityVIdL1      ( UInt  uiIdx, Int iVId ) { m_iGlobalDisparityRefVIdL1[uiIdx]=iVId; }
  // JVT-W081
  //JVT-Z021

  Void  setMbMotionModeIdx           ( UInt uiList, UInt uiModeIdx )   { m_cMbMotionRd[uiList].m_uiModeIdx = uiModeIdx; }

  Void  setMbMotionModeNum           ( UInt uiList, Int iModeNumber )  { m_cMbMotionRd[uiList].m_iModeNumber = iModeNumber; }

  Void  setMbMotionInfo              ( UInt uiList, UInt uiIdx, MBMotion cMbMotionInfo )  

  {   

	  m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_iViewMode = cMbMotionInfo.m_iViewMode;

	  m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_uiFwdBwd = cMbMotionInfo.m_uiFwdBwd;

	  memcpy(&m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_iBlkMode, cMbMotionInfo.m_iBlkMode,4*sizeof(Int));

	  memcpy(&m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_iRefMultiViewL0, cMbMotionInfo.m_iRefMultiViewL0,4*sizeof(Int));

	  memcpy(&m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_iRefMultiViewL1, cMbMotionInfo.m_iRefMultiViewL1,4*sizeof(Int));

	  memcpy(&m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_iMvL0Hor, cMbMotionInfo.m_iMvL0Hor,16*sizeof(Int));

	  memcpy(&m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_iMvL0Ver, cMbMotionInfo.m_iMvL0Ver,16*sizeof(Int));

	  memcpy(&m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_iMvL1Hor, cMbMotionInfo.m_iMvL1Hor,16*sizeof(Int));

	  memcpy(&m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_iMvL1Ver, cMbMotionInfo.m_iMvL1Ver,16*sizeof(Int));

  }

#endif //JVT-Z021
  Void  setAnchorPicFlag    (Bool anchor_pic_flag)          { m_anchor_pic_flag   = anchor_pic_flag;  }
  Void	setSvcMvcFlag       (Bool svc_mvc_flag)             { m_svc_mvc_flag      = svc_mvc_flag;     } 
  Void  setAVCFlag          (Bool bAVCFlag)                 { m_bAVCFlag          = bAVCFlag;         } 
  Void  setViewId           (UInt view_id)                  { m_view_id           = view_id;          }
  Void  setIDRFlag          (Bool bIDRFlag)                 { m_bIDRFlag          = bIDRFlag;         } 
	Void	setInterViewFalg				(Bool inter_view_flag)			{ m_inter_view_flag	=	inter_view_flag;	}  // JVT-W056  Samsung
  Void  setReservedZeroBits (UInt reserved_zero_bits)       { m_reserved_zero_bits=reserved_zero_bits;} 
// JVT-W035

  //{{Variable Lengh NAL unit header data with priority and dead substream flag
  //France Telecom R&D- (nathalie.cammas@francetelecom.com)
  Void setSimplePriorityId			  (UInt			ui)	   { m_uiSimplePriorityId = ui;}
  Void setDiscardableFlag			  (Bool			b)	   { m_bDiscardableFlag = b;}
  Void setReservedZeroBit    		  (Bool         b)	   { m_bReservedZeroBit = b;}  //JVT-S036 
  //}}Variable Lengh NAL unit header data with priority and dead substream flag

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

  Void  setSliceGroupChangeCycle(UInt uiSliceGroupChangeCycle){m_uiSliceGroupChangeCycle = uiSliceGroupChangeCycle;};
  ErrVal FMOInit();
//	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
//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}

  Void          setIsEncodingFlag(Bool b) { m_bIsEncodingFlag = b;}
  Bool          getIsEncodingFlag() { return m_bIsEncodingFlag;}
#if JMVM_ONLY  // JVT-U052
  Void   setIcEnable                  ( UInt        ui )  { m_uiIcEnable                = ui; }
  Void   setMotionSkip                ( UInt        ui )  { m_bMotionSkip               = (ui!=0); }
#endif
  Void   setInterViewRef              ( Bool        b)    { m_bInterViewRef=b;}             // 
  Bool   getInterViewRef              ( )                 { return m_bInterViewRef;}
	

protected:
  ErrVal xReadH264AVCCompatible       ( HeaderSymbolReadIf*   pcReadIf );
  ErrVal xReadScalable                ( HeaderSymbolReadIf*   pcReadIf );
  ErrVal xWriteScalable               ( HeaderSymbolWriteIf*  pcWriteIf ) const;
  ErrVal xWriteH264AVCCompatible      ( HeaderSymbolWriteIf*  pcWriteIf ) const; 
  ErrVal xReadMVCCompatible           ( HeaderSymbolReadIf*   pcReadIf );
  
protected:
  const PictureParameterSet&  m_rcPPS;
  const SequenceParameterSet& m_rcSPS;
  Bool                        m_bInterViewRef; //  may be removed later

  Bool						  m_eAVCCompatible;	//JVT-S036 lsj
  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;
  UInt                        m_uiPicOrderCntLsb;
  Int                         m_iDeltaPicOrderCntBottom;
  Int                         m_aiDeltaPicOrderCnt[2];
  Bool                        m_bBasePredWeightTableFlag;
  UInt                        m_uiLumaLog2WeightDenom;
  UInt                        m_uiChromaLog2WeightDenom;
  PredWeightTable             m_acPredWeightTable[2];

  Bool                        m_bDirectSpatialMvPredFlag;

  Int						  m_uiSnapShotId; //SEI 

  Bool                        m_bKeyPictureFlag;
  Bool						  m_bKeyPicFlagScalable;   //JVT-S036 
  UInt                        m_uiBaseLayerId;
  UInt                        m_uiBaseQualityLevel;
  UInt						            m_uiBaseFragmentOrder;
  Bool                        m_bAdaptivePredictionFlag;
  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  start 
  Bool						  m_bAdaptiveRefPicMarkingModeFlag;
  UInt						  m_bMemoryManagementControlOperation;
  UInt						  m_bDifferenceOfPicNumsMinus1;
  UInt						  m_bLongTermPicNum;
  MmcoBuffer				  m_cMmmcoBaseBuffer; 
//JVT-S036  end
  MmcoBuffer                  m_cMmmcoBuffer;
  UInt                        m_uiCabacInitIdc;
  Int                         m_iSliceQpDelta;
  DeblockingFilterParameter   m_cDeblockingFilterParameter;

  UInt                        m_uiSliceGroupChangeCycle;
  FMO*                        m_pcFMO;

  Bool                        m_bBaseLayerUsesConstrainedIntraPred;

#if JMVM_ONLY  // JVT-W081
  Int						  m_iGlobalDisparityL0[100][2];
  Int						  m_iGlobalDisparityL1[100][2];
  UInt						  m_iGlobalDisparityRefVIdL0[100];
  UInt						  m_iGlobalDisparityRefVIdL1[100];
  // JVT-W081
  class MBMotion_RD           m_cMbMotionRd[2]; //JVT-Z021

#endif //JMVM_ONLY

  //{{Variable Lengh NAL unit header data with priority and dead substream flag
  //France Telecom R&D- (nathalie.cammas@francetelecom.com)
  UInt						            m_uiSimplePriorityId;
  Bool					              m_bDiscardableFlag;
  Bool                        m_bReservedZeroBit;  //JVT-S036 
  //}}Variable Lengh NAL unit header data with priority and dead substream flag

  Bool		m_svc_mvc_flag; // u(1)
  Bool 		m_bAVCFlag; // no bit for this temporal flag
  Bool 		m_anchor_pic_flag; // u(1)
  UInt		m_view_id; // u(10)
  Bool    m_bIDRFlag;
	Bool		m_inter_view_flag; //u(1)  JVT-W056 Samsung
  UInt		m_reserved_zero_bits; // u(1)
 
  //JVT-P031
  Bool                        m_bFragmentedFlag;
  UInt                        m_uiFragmentOrder;
  Bool                        m_bLastFragmentFlag;
  //~JVT-P031
  UInt                        m_uiRedundantPicCnt;  // JVT-Q054 Red. Picture
//JVT-T054{
  UInt                        m_uiLayerCGSSNR;
  UInt                        m_uiQualityLevelCGSSNR;
  UInt                        m_uiBaseLayerCGSSNR;
  UInt                        m_uiBaseQualityLevelCGSSNR;
//JVT-T054}

#if JMVM_ONLY  // JVT-U052
  UInt                        m_uiIcEnable;
#endif

// 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_bIsEncodingFlag; // ying to fix Spatial Direct
protected:
  UInt          m_uiBaseChromaPhaseXPlus1;
  UInt          m_uiBaseChromaPhaseYPlus1;

  Int           m_iScaledBaseLeftOffset;
  Int           m_iScaledBaseTopOffset;
  Int           m_iScaledBaseRightOffset;
  Int           m_iScaledBaseBottomOffset;
// TMM_ESS }

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

#define IS_KEY_PICTURE(pcSH)    ( (pcSH)->getKeyPictureFlag() )


#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 + -