Opened 5 years ago

Closed 5 years ago

#117 closed enhancement (fixed)

Redundant memory copy in predInterSearch()

Reported by: chiaming Owned by:
Priority: minor Milestone:
Component: VTM Version: VTM-3.0rc1
Keywords: Cc: ksuehring, XiangLi, fbossen, jvet@…

Description

In predInterSearch(), the cMvTemp would be copied two times as follows:

if ( cu.Y().width > 8 && cu.Y().height > 8 && cu.partSize == SIZE_2Nx2N && cu.slice->getSPS()->getSpsNext().getUseAffine() 
  && cu.imv == 0
  )
{
  ::memcpy( cMvHevcTemp, cMvTemp, sizeof( cMvTemp ) );
}
if ( cu.Y().width > 8 && cu.Y().height > 8 && cu.partSize == SIZE_2Nx2N && cu.slice->getSPS()->getSpsNext().getUseAffine() )
{
  ::memcpy( cMvHevcTemp, cMvTemp, sizeof( cMvTemp ) );
}

Suggest to remove the redundant memory copy and also sync the conditions as doing affine search

if (cu.Y().width > 8 && cu.Y().height > 8 && cu.partSize == SIZE_2Nx2N && cu.slice->getSPS()->getSpsNext().getUseAffine() && cu.imv == 0
#if JVET_L0646_GBI
  && (gbiIdx == GBI_DEFAULT || m_affineModeSelected || !m_pcEncCfg->getUseGBiFast())
#endif      
  )
{
  ::memcpy( cMvHevcTemp, cMvTemp, sizeof( cMvTemp ) );
}

Change history (1)

comment:1 Changed 5 years ago by fbossen

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.