Opened 4 months ago

Last modified 4 weeks ago

#1631 new defect

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 (1)

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

Note: See TracTickets for help on using tickets.