Opened 22 months ago

Closed 4 weeks ago

#1631 closed defect (fixed)

Should "Motion vector storing process for geometric partitioning mode" store HpelIfIdx?

Reported by: peterderivaz Owned by:
Priority: minor Milestone: H.266/VVC v4
Component: spec Version: H.266/VVC v3
Keywords: Cc: ksuehring, bbross, XiangLi, fbossen, jvet@…

Description

In the General clause of "Decoding process for inter blocks", the array HpelIfIdx is written at the same time as other motion vector information is stored:

MvL0[ xSb + x ][ ySb + y ] = mvL0[ xSbIdx ][ ySbIdx ] (887)
MvL1[ xSb + x ][ ySb + y ] = mvL1[ xSbIdx ][ ySbIdx ] (888)
MvDmvrL0[ xSb + x ][ ySb + y ] = refMvL0[ xSbIdx ][ ySbIdx ] (889)
MvDmvrL1[ xSb + x ][ ySb + y ] = refMvL1[ xSbIdx ][ ySbIdx ] (890)
RefIdxL0[ xSb + x ][ ySb + y ] = refIdxL0 (891)
RefIdxL1[ xSb + x ][ ySb + y ] = refIdxL1 (892)
PredFlagL0[ xSb + x ][ ySb + y ] = predFlagL0[ xSbIdx ][ ySbIdx ] (893)
PredFlagL1[ xSb + x ][ ySb + y ] = predFlagL1[ xSbIdx ][ ySbIdx ] (894)
HpelIfIdx[ xSb + x ][ ySb + y ] = hpelIfIdx (895)
BcwIdx[ xSb + x ][ ySb + y ] = bcwIdx (896)

However, in the "Motion vector storing process for geometric partitioning mode", HpelIfIdx is not written:

MvL0[ ( xSbIdx << 2 ) + x ][ ( ySbIdx << 2 ) + y ] = mvL0 (1045)
MvL1[ ( xSbIdx << 2 ) + x ][ ( ySbIdx << 2 ) + y ] = mvL1 (1046)
MvDmvrL0[ ( xSbIdx << 2 ) + x ][ ( ySbIdx << 2 ) + y ] = mvL0 (1047)
MvDmvrL1[ ( xSbIdx << 2 ) + x ][ ( ySbIdx << 2 ) + y ] = mvL1 (1048)
RefIdxL0[ ( xSbIdx << 2 ) + x ][ ( ySbIdx << 2 ) + y ] = refIdxL0 (1049)
RefIdxL1[ ( xSbIdx << 2 ) + x ][ ( ySbIdx << 2 ) + y ] = refIdxL1 (1050)
PredFlagL0[ ( xSbIdx << 2 ) + x ][ ( ySbIdx << 2 ) + y ] = predFlagL0 (1051)
PredFlagL1[ ( xSbIdx << 2 ) + x ][ ( ySbIdx << 2 ) + y ] = predFlagL1 (1052)
BcwIdx[ ( xSbIdx << 2 ) + x ][ ( ySbIdx << 2 ) + y ] = 0 (1053)

As far as I can understand, I think it is possible for these unspecified HpelIfIdx values to affect the decoding process?

Change history (2)

comment:1 Changed 19 months ago by bbross

  • Milestone set to H.266/VVC v4
  • Version set to H.266/VVC v3

Good catch, thanks! HpekIfIdx should always be written since it might be accessed later so it is definitely missing in "Motion vector storing process for geometric partitioning mode" and shall be added for v4.

comment:2 Changed 4 weeks ago by yk

  • Resolution set to fixed
  • Status changed from new to closed

Fixed in JVET-AN2001-v1.

Note: See TracTickets for help on using tickets.