#119 closed defect (fixed)

picture referred to by collocated_ref_idx shall not be the current picture itself

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


The collocated picture can be the current picture itself when coding the first frame (P slice) in the condition of CPR enabled. It causes getting motion information from current block in getColocatedMVP(...) .

The encoder need to put some constrain in CompressGOP(...) as in SCM, shown in the following.

if ( !pcSlice->isIntra() && pcSlice->getEnableTMVPFlag() )

TComPic *pColPic = pcSlice->getRefPic( RefPicList( pcSlice->isInterB() ? 1-pcSlice->getColFromL0Flag() : 0 ), pcSlice->getColRefIdx() );
if ( pColPic->getPOC() == pcSlice->getPOC() )

pcSlice->setEnableTMVPFlag( false );



Change history (2)

comment:1 Changed 20 months ago by axink

From Xiaozhong Xu:

Current picture itself cannot be the collocated picture, this one is agreed.
In the current VTM implementation, CPR mode will not use temporal MV prediction. In the case the current picture is the only reference picture (as Han indicated where the issue would be), the getColocatedMVP(...) will return false as CPR mode will not use temporal MV prediction. For other cases (there are temporal ref picture in addition to current picture), the encoder will choose a temporal picture as the collocated picture. So there is no immediate problem there.

To prevent potential bugs when people developing collocated picture related methods, a decoder check should be added: it is not allowed that collocated picture equals to current picture. But this can be in low priority, for example, after VTM3 is released.

Last edited 20 months ago by axink (previous) (diff)

comment:2 Changed 19 months ago by ksuehring

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