Beispiel #1
0
Void
MbData::switchMotionRefinement()
{
  ROFVS( m_bHasMotionRefinement );

  // switch mb_type
  MbMode  eMbModeTemp = m_eMbMode;
  m_eMbMode = m_eMbModeBase;
  m_eMbModeBase = eMbModeTemp;

  // switch sub-mb_type
  BlkMode aBlkModeTemp[4];  ::memcpy( aBlkModeTemp, m_aBlkMode, sizeof( m_aBlkMode ) );
  ::memcpy( m_aBlkMode, m_aBlkModeBase, sizeof( m_aBlkMode ) );
  ::memcpy( m_aBlkModeBase, aBlkModeTemp, sizeof( m_aBlkMode ) );

  // switch motion vectors
  for( UInt ui = 0; ui < 2; ui++ )
  {
    MbMotionData cMbMotionDataTemp;
    cMbMotionDataTemp.copyFrom( *m_apcMbMotionData[ui] );
    m_apcMbMotionData[ui]->copyFrom( *m_apcMbMotionDataBase[ui] );
    m_apcMbMotionDataBase[ui]->copyFrom( cMbMotionDataTemp );
  }
}
Beispiel #2
0
Void MbDataStruct::clearIntraPredictionModes( Bool bAll )
{
  ::memset( m_ascIPredMode, DC_PRED, sizeof(UChar)* 16 );
  ROFVS( bAll );
  m_ucChromaPredMode = 0;
}