Opened 4 years ago

Last modified 3 years ago

#1391 new enhancement

Unnecessary setting of mrgTypeNeighbours in getInterMergeCandidates() and checking condition in getInterMMVDMergeCandidates()

Reported by: wangyang.cs Owned by:
Priority: minor Milestone: VTM-10.1
Component: VTM Version: VTM-10.0
Keywords: Cc: ksuehring, bbross, XiangLi, fbossen, jvet@…, jvet@…

Description

The unnecessary setting of mrgTypeNeighbours in PU::getInterMergeCandidates() should be removed.

void PU::getInterMergeCandidates()
{
  if ( mrgCtx.interDirNeighbours[uiArrayAddr] == 1 && pu.cs->slice->getRefPic(REF_PIC_LIST_0, mrgCtx.mvFieldNeighbours[uiArrayAddr << 1].refIdx)->getPOC() == pu.cs->slice->getPOC())
    {
      mrgCtx.mrgTypeNeighbours[uiArrayAddr] = MRG_TYPE_IBC;
    }
}

Since the merge types for all merge candidates for MMVD are MRG_TYPE_DEFAULT_N, the unnecessary checking condition in PU::getInterMMVDMergeCandidates() should be removed.

void PU::getInterMMVDMergeCandidates()
{
  for (k = 0; k < maxNumMergeCand; k++)
  {
    if (mrgCtx.mrgTypeNeighbours[k] == MRG_TYPE_DEFAULT_N)
    {
      refIdxList0 = mrgCtx.mvFieldNeighbours[(k << 1)].refIdx;       
      refIdxList1 = mrgCtx.mvFieldNeighbours[(k << 1) + 1].refIdx;
      ...
    }
  }
}

Change history (3)

comment:1 Changed 4 years ago by wangyang.cs

It may cause problems for multilayer coding when the reference picture and the current picture has the same POC.

comment:3 Changed 3 years ago by fbossen

  • Type changed from defect to enhancement
Note: See TracTickets for help on using tickets.