Opened 9 months ago

Closed 8 months ago

#1114 closed defect (fixed)

Address the editor's note on 4x4 affine MC for chroma components.

Reported by: zhangkai Owned by:
Priority: blocker Milestone: VVC D10
Component: spec Version: VVC D9 vB
Keywords: Cc: ksuehring, bbross, XiangLi, fbossen, jvet@…


There is an editor's note in of JVET-R2001-v10.
[Ed. (BB): This way four 2×2 chroma subblocks (4×4 chroma block) share the same motion vector which is derived from the average of two 4×4 luma subblock motion vectors. In the decoding process motion compensation is still performed on 2×2 chroma blocks which is however a motion compensation on a chroma 4×4 block because all chroma MVs inside a 4×4 chroma block are the same. I would prefer an editorial change that makes it more clear that affine chroma MC is performed on 4×4 chroma blocks.]

To address this note, changes can be made to as below the attached.

Attachments (3)

JVET-R2001-vA-chroma4x4-changepart.docx (47.7 KB) - added by zhangkai 9 months ago.
Example.docx (15.0 KB) - added by zhangkai 8 months ago.
An example of mismatch between 2x2 or 4x4 chroma subblocks
JVET-R2001-vA-chroma4x4-changepart-r1.docx (50.2 KB) - added by zhangkai 8 months ago.

Download all attachments as: .zip

Change history (8)

Changed 9 months ago by zhangkai

comment:1 Changed 8 months ago by bbross

  • Milestone set to VVC D10
  • Version set to VVC D9 vB

Changed 8 months ago by zhangkai

An example of mismatch between 2x2 or 4x4 chroma subblocks

comment:2 Changed 8 months ago by zhangkai

There will be a mismatch between spec and SW for the RPR case though no issue for the non-RPR case, due to the 2x2 chroma subblock MC manner in the spec.
From eq.(935) and eq.(936), we can find that for the top-left position of each sub-block, we keep a precision of 14 bit + 5 bit = 19 bits (14 scaling window + 5 MV), as shown in (935). But for other positions, the calculated precision is 10 bits. That's why we have ( ( Sign( refxSbC ) * ( ( Abs( refxSbC ) + 256 ) >> 9 ) in eq. (936).
As a results of rounding, for a specific position, whether it is calculated as the top-left sample of a subblock, or it is calculated as an inner sample, the results may be different. Attached is an example to show such a difference.

Last edited 8 months ago by zhangkai (previous) (diff)

Changed 8 months ago by zhangkai

comment:3 Changed 8 months ago by bbross

  • Priority changed from minor to blocker

comment:4 Changed 8 months ago by zhou

Because of the RPR, the calculation of reference sample locations is PU size dependent in the VVC motion compensation in general (not just in the affine MC), so the original PU size and top-left PU corner coordinate must be used to avoid mismatches that can be caused by rounding errors. Since the affine chroma MC is defined to be 4x4 based, but the 2x2 based MC is still used in the spec text, a mismatch between the spec text and SW needs to be fixed. The spec text should be changed to do 4x4 based chroma affine MC to resolve the issue. The suggested spec text fix looks good to me.

comment:5 Changed 8 months ago by bbross

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

Thanks for providing the spec text and confirming, this is fixed in JVET-S2001-v9.

Note: See TracTickets for help on using tickets.