#1098 closed defect (fixed)

bug in DMVR bounding box calculation

Reported by: lenchik Owned by:
Priority: trivial Milestone:
Component: spec Version: VVC D8 vB
Keywords: Cc: chenhuanbang@…, ksuehring, bbross, XiangLi, fbossen, jvet@…

Description

there seems to be a bug in the spec related to the DMVR memory bounding box. one additional sample seems to be fetched at the right and bottom of the box.

for a 16x16 luma subblock, the size of the bounding box should be 23x23, but in the current VVC spec it seems to be 24x24. the fix is below, the software seems to work as intended.
current VVC spec:
– When dmvrFlag is equal to 1, the following applies:
xInti = Clip3( xSbIntL − 3, xSbIntL + sbWidth + 4, xInti ) (957)
yInti = Clip3( ySbIntL − 3, ySbIntL + sbHeight + 4, yInti ) (958)

should be:
– When dmvrFlag is equal to 1, the following applies:
xInti = Clip3( xSbIntL − 3, xSbIntL + sbWidth + 3, xInti ) (957)
yInti = Clip3( ySbIntL − 3, ySbIntL + sbHeight + 3, yInti ) (958)

And similarly for chroma interpolation filtering, if the subblock size is 8x8, the size of bounding box should be 11x11.
current VVC spec:
– When dmvrFlag is equal to 1, the following applies:
xInti = Clip3( xSbIntC − 1, xSbIntC + sbWidth + 2, xInti ) (975)
yInti = Clip3( ySbIntC − 1, ySbIntC + sbHeight + 2, yInti ) (976)

should be:
– When dmvrFlag is equal to 1, the following applies:
xInti = Clip3( xSbIntC − 1, xSbIntC + sbWidth + 1, xInti ) (975)
yInti = Clip3( ySbIntC − 1, ySbIntC + sbHeight + 1, yInti ) (976)

Change history (2)

comment:1 Changed 15 months ago by jlchen

Thanks for pointing this out. You're correct.

The intention is to clap the position within 4 luma samples to the right board of luma block as follows:

xInti = Clip3( xSbIntL − 3, xSbIntL + sbWidth - 1 + 4, xInti ) (957)
yInti = Clip3( ySbIntL − 3, ySbIntL + sbHeight - 1 + 4, yInti ) (958)

Therefore the four equations should be fixed as suggested.

comment:2 Changed 15 months ago by bbross

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

Good catch, thanks!

This will be fixed in first verison of D10.

Note: See TracTickets for help on using tickets.