Opened 6 years ago
Closed 6 years ago
#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@… |
Description
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 6 years ago by axink
comment:2 Changed 6 years ago by ksuehring
- Resolution set to fixed
- Status changed from new to closed
The related merge request
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/merge_requests/112
was merged.
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.