Opened 7 weeks ago

Closed 4 weeks 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 weeks ago by chhuanb

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 availableFlagL1SbCol predFlagL1SbCol[ xSbIdx ][ ySbIdx ].
– When availableFlagL0SbColpredFlagL0SbCol[ xSbIdx ][ ySbIdx ] and availableFlagL1SbColpredFlagL1SbCol[ 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.

comment:2 Changed 4 weeks 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.

Note: See TracTickets for help on using tickets.