Opened 3 years ago

Closed 3 years ago

#1507 closed defect (invalid)

Clarification questions on VTM compression for collocated motion vectors

Reported by: iole_moccagatta Owned by:
Priority: major Milestone: VTM-14.0
Component: VTM Version:
Keywords: Cc: ksuehring, fbossen, bbross, iole.moccagatta, iole_moccagatta, XiangLi, jvet@…

Description

Two clarification questions on VTM compression for collocated motion vectors:

A) collocated motion vector = +130,048 compresses to 0x00D decompresses to +131,072

This is outside the legal range of 18-bit. There are 3 paths in the code using the decompressed motion vectors: in two paths the clipping is done immediately by

rcMv.clipToStorageBitDepth()

and in the 3rd path the clipping is done by

scaleMv()

forcing to keep the 19-bit precision till that point. Is this the intent ?

B)

(mantissa ^ MV_MANTISSA_LIMIT)

is flipping the msb of the 6-bit mantissa. But the msb of the 6-bit mantissa is overloaded, meaning it is used to indicate sign and “units”. Is this the intent ?

Change history (1)

comment:1 Changed 3 years ago by fbossen

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

Regarding A: the case where the resulting MV is a function of a scale is applied to the value +131072 may indeed arise. There may be several ways to implement this.

Regarding B: in the code, mantissa is a 32-bit variable (essentially the sign-extended version of a 6-bit signed value). The operation XOR MV_MANTISSA_LIMIT flips a bit in a 32-bit value, not a 6-bit one.

Note: See TracTickets for help on using tickets.