Opened 4 years ago
Closed 4 years ago
#1300 closed defect (fixed)
Possibility of PredFlagL1 to be 1 in P Slice when subblokc-based temporal merging candidate is chosen
Reported by: | ksthey | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | spec | Version: | |
Keywords: | Cc: | ksuehring, bbross, XiangLi, fbossen, jvet@… |
Description
In 8.5.5.3:
The derivation process for collocated motion vectors as specified in subclause 8.5.2.12 is invoked with currCb, colCb, ( xColCb, yColCb ), refIdxL1 set equal to 0 and sbFlag set equal to 1 as inputs and the output being assigned to the motion vector of the subblock mvL1SbCol[ xSbIdx ][ ySbIdx ] and availableFlagL1SbCol.
In 8.5.5.4:
The derivation process for collocated motion vectors specified in subclause 8.5.2.12 is invoked with currCb, colCb, (xColCb, yColCb), refIdxL1 set equal to 0, and sbFlag set equal to 1 as inputs and the output being assigned to ctrMvL1 and ctrPredFlagL1.
The abovementioned texts are invoked regardless of the slice type.
As the result, it is possible to have predFlagL1[ xSbIdx ][ ySbIdx ] equals to 1, even if current slice is a P slice, when subblockMergeCandList[ merge_subblock_idx[ xCb ][ yCb ] ] is equal to SbCol in 8.5.5.2 .
Change history (2)
comment:1 Changed 4 years ago by chhuanb
comment:2 Changed 4 years ago by jlchen
- Resolution set to fixed
- Status changed from new to closed
Many thanks to ksthey for reporting the issue and Huanbang for further study on it. I think Huanbang's suggestion solves the issue in this ticket as well as ticket #1301.
I will incorporate this in S2001-vH release.
Suggest fixes for 8.5.5.3:
– The variable colCb specifies the luma coding block covering the location ( xColCb, yColCb ) inside the collocated picture specified by ColPic.
– The prediction list utilization flags predFlagL0SbCol[ xSbIdx ][ ySbIdx ] and predFlagL1SbCol[ xSbIdx ][ ySbIdx ] are initialzed to be equal to FALSE.
– The derivation process for collocated motion vectors as specified in subclause 8.5.2.12 is invoked with currCb, colCb, ( xColCb, yColCb ), refIdxL0 set equal to 0 and sbFlag set equal to 1 as inputs and the output being assigned to the motion vector of the subblock mvL0SbCol[ xSbIdx ][ ySbIdx ] and
availableFlagL0SbColpredFlagL0SbCol[ xSbIdx ][ ySbIdx ].– When sh_slice_type is equal to B, the derivation process for collocated motion vectors as specified in subclause 8.5.2.12 is invoked with currCb, colCb, ( xColCb, yColCb ), refIdxL1 set equal to 0 and sbFlag set equal to 1 as inputs and the output being assigned to the motion vector of the subblock mvL1SbCol[ xSbIdx ][ ySbIdx ] and
availableFlagL1SbColpredFlagL1SbCol[ xSbIdx ][ ySbIdx ].– When
availableFlagL0SbColpredFlagL0SbCol[ xSbIdx ][ ySbIdx ] andavailableFlagL1SbColpredFlagL1SbCol[ xSbIdx ][ ySbIdx ] are both equal to 0, the following applies for X = 0..1:mvLXSbCol[ xSbIdx ][ ySbIdx ] = ctrMvLX (717)
predFlagLXSbCol[ xSbIdx ][ ySbIdx ] = ctrPredFlagLX (718)
Suggest fixes for 8.5.5.4:
– The variable currCb specifies the luma coding block covering ( xCtrCb ,yCtrCb ) inside the current picture.
– The luma location ( xColCb, yColCb ) is set equal to ( ( xColCb >> 3 ) << 3, ( yColCb >> 3 ) << 3 ).
– The variable colCb specifies the luma coding block covering the location ( xColCb, yColCb ) inside the collocated picture specified by ColPic.
– The prediction list utilization flags ctrPredFlagL0 and ctrPredFlagL1 are initialized to be equal to FALSE.
– The derivation process for collocated motion vectors specified in subclause 8.5.2.12 is invoked with currCb, colCb, (xColCb, yColCb), refIdxL0 set equal to 0, and sbFlag set equal to 1 as inputs and the output being assigned to ctrMvL0 and ctrPredFlagL0.
– When sh_slice_type is equal to B, the derivation process for collocated motion vectors specified in subclause 8.5.2.12 is invoked with currCb, colCb, (xColCb, yColCb), refIdxL1 set equal to 0, and sbFlag set equal to 1 as inputs and the output being assigned to ctrMvL1 and ctrPredFlagL1.
The suggests fixes also solve the ticket https://jvet.hhi.fraunhofer.de/trac/vvc/ticket/1301.