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

📄 mbdatastruct.h

📁 JMVM MPEG MVC/3DAV 测试平台 国际通用标准
💻 H
📖 第 1 页 / 共 2 页
字号:
  Void    setResidualPredFlag   ( Bool        bFlag,
                                  ParIdx8x16  eParIdx   );
  Void    setResidualPredFlag   ( Bool        bFlag,
                                  ParIdx8x8   eParIdx,
                                  SParIdx8x8  eSParIdx  );
  Void    setResidualPredFlag   ( Bool        bFlag,
                                  ParIdx8x8   eParIdx,
                                  SParIdx8x4  eSParIdx  );
  Void    setResidualPredFlag   ( Bool        bFlag,
                                  ParIdx8x8   eParIdx,
                                  SParIdx4x8  eSParIdx  );
  Void    setResidualPredFlag   ( Bool        bFlag,
                                  ParIdx8x8   eParIdx,
                                  SParIdx4x4  eSParIdx  );
// TMM_ESS 
  Void    setInCropWindowFlag   ( Bool        bFlag  )       { m_bInCropWindowFlag = bFlag; } 


  ErrVal  save( FILE* pFile );
  ErrVal  load( FILE* pFile );


  ErrVal  upsampleMotion    ( const MbDataStruct& rcMbDataStruct,
                              Par8x8              ePar8x8, Bool bDirect8x8 );

  Void    setBLSkipFlag         ( Bool b )  { m_bBLSkipFlag = b; }
  Bool    getBLSkipFlag         () const    { return m_bBLSkipFlag; }

#if JMVM_ONLY  // JVT-W081 
  Void	  setMotionSkipFlag		( Bool b )  { m_bMotionSkipFlag = b; }
  Bool    getMotionSkipFlag     () const    { return m_bMotionSkipFlag; }  
#endif  // JVT-W081

  Bool is8x8TrafoFlagPresent()                          const;
  Bool isTransformSize8x8   ()                          const     { return m_bTransformSize8x8; }
  Void setTransformSize8x8  ( Bool bTransformSize8x8)             { m_bTransformSize8x8 = bTransformSize8x8; }

	//-- JVT-R091
  Void    setSmoothedRefFlag    ( Bool b )  { m_bSmoothedRefFlag = b;			}
  Bool    getSmoothedRefFlag    () const    { return m_bSmoothedRefFlag;	}
	//--

public:
  UInt    m_uiSliceId;
  Bool    m_bBLSkipFlag;
#if JMVM_ONLY  // JVT-W081
  Bool    m_bMotionSkipFlag;
#endif  // JVT-W081
  MbMode  m_eMbMode;
  UInt    m_uiMbCbp;
  UInt    m_uiBCBP;
  UShort  m_usFwdBwd;
  UChar   m_ucChromaPredMode;
  BlkMode m_aBlkMode[4];
  SChar   m_ascIPredMode[16];
  UChar   m_ucQp;

  UShort  m_usResidualPredFlags;

  Bool    m_bTransformSize8x8;
  Bool    m_bSkipFlag;
#if JMVM_ONLY 
  Bool    m_bSkipFlagTmp; //JVT-W031
#endif

  // TMM_ESS 
  Bool    m_bInCropWindowFlag;  // indicates if the scaled base layer MB is inside the cropping window

	//-- JVT-R091
	Bool		m_bSmoothedRefFlag;		// indicates if the smoothed reference mode is used
	//--

public:
  static const UChar m_aucACTab[6];
};




__inline
Void
MbDataStruct::setResidualPredFlag( Bool bFlag, LumaIdx cIdx )
{
  m_usResidualPredFlags &= ~(UShort)(1<<cIdx.b4x4());
  ROFVS( bFlag );
  m_usResidualPredFlags += (1<<cIdx.b4x4());
}


__inline
Void
MbDataStruct::setResidualPredFlag( Bool bFlag/*, ParIdx16x16 eParIdx*/ )
{
  setResidualPredFlag( bFlag, B4x4Idx( 0) );  
  setResidualPredFlag( bFlag, B4x4Idx( 1) );  
  setResidualPredFlag( bFlag, B4x4Idx( 2) );  
  setResidualPredFlag( bFlag, B4x4Idx( 3) );  
  setResidualPredFlag( bFlag, B4x4Idx( 4) );  
  setResidualPredFlag( bFlag, B4x4Idx( 5) );  
  setResidualPredFlag( bFlag, B4x4Idx( 6) );  
  setResidualPredFlag( bFlag, B4x4Idx( 7) );  
  setResidualPredFlag( bFlag, B4x4Idx( 8) );  
  setResidualPredFlag( bFlag, B4x4Idx( 9) );  
  setResidualPredFlag( bFlag, B4x4Idx(10) );  
  setResidualPredFlag( bFlag, B4x4Idx(11) );  
  setResidualPredFlag( bFlag, B4x4Idx(12) );  
  setResidualPredFlag( bFlag, B4x4Idx(13) );  
  setResidualPredFlag( bFlag, B4x4Idx(14) );  
  setResidualPredFlag( bFlag, B4x4Idx(15) );  
}

__inline
Void
MbDataStruct::setResidualPredFlag( Bool bFlag, ParIdx16x8 eParIdx )
{
  UInt ui = eParIdx;

  setResidualPredFlag( bFlag, B4x4Idx(ui+ 0) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 1) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 2) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 3) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 4) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 5) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 6) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 7) );  
}

__inline
Void
MbDataStruct::setResidualPredFlag( Bool bFlag, ParIdx8x16 eParIdx )
{
  UInt ui = eParIdx;

  setResidualPredFlag( bFlag, B4x4Idx(ui+ 0) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 1) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 4) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 5) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 8) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 9) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+12) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+13) );  
}

__inline
Void
MbDataStruct::setResidualPredFlag( Bool bFlag, ParIdx8x8 eParIdx, SParIdx8x8 eSParIdx )
{
  UInt ui = eParIdx+eSParIdx;

  setResidualPredFlag( bFlag, B4x4Idx(ui+ 0) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 1) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 4) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 5) );  
}

__inline
Void
MbDataStruct::setResidualPredFlag( Bool bFlag, ParIdx8x8 eParIdx, SParIdx8x4 eSParIdx )
{
  UInt ui = eParIdx+eSParIdx;

  setResidualPredFlag( bFlag, B4x4Idx(ui+ 0) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 1) );  
}

__inline
Void
MbDataStruct::setResidualPredFlag( Bool bFlag, ParIdx8x8 eParIdx, SParIdx4x8 eSParIdx )
{
  UInt ui = eParIdx+eSParIdx;

  setResidualPredFlag( bFlag, B4x4Idx(ui+ 0) );  
  setResidualPredFlag( bFlag, B4x4Idx(ui+ 4) );  
}

__inline
Void
MbDataStruct::setResidualPredFlag( Bool bFlag, ParIdx8x8 eParIdx, SParIdx4x4 eSParIdx )
{
  UInt ui = eParIdx+eSParIdx;

  setResidualPredFlag( bFlag, B4x4Idx(ui+ 0) );  
}



H264AVC_NAMESPACE_END

#endif // !defined(AFX_MBDATASTRUCT_H__353D9AA9_2CC4_4959_94DB_97456E3C2454__INCLUDED_)

⌨️ 快捷键说明

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