﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
1220	Issue on coordinates derivation for TMVP (8.5.2.11, 8.5.5.3, 8.5.5.4, and 8.5.5.6)	parkmw		"TMVP should be able to use subblock level MVs from colocated picture since MVs are stored and accessed in subblock level. However, the current spec description does not support this. Therefore, the following parts in the spec should be modified.

== The subclause 8.5.2.11 should be modified as follows: ==

1. The bottom right collocated motion vector and the bottom and right boundary sample locations are derived as follows:
...
 – If yCb  >>  CtbLog2SizeY is equal to yColBr  >>  CtbLog2SizeY, yColBr is less than or equal to botBoundaryPos and xColBr is less than or equal to rightBoundaryPos, the following applies:
  – The variable colCb specifies the luma coding block covering the modified location given by ( ( xColBr  >>  3 )  <<  3, ( yColBr  >>  3 )  <<  3 ) inside the collocated picture specified by ColPic.
  ~~– The luma location ( xColCb, yColCb ) is set equal to the top-left sample of the collocated luma coding block specified by colCb relative to the top-left luma sample of the collocated picture specified by ColPic.~~
  – The derivation process for collocated motion vectors as specified in subclause 8.5.2.12 is invoked with currCb, colCb, ~~( xColCb, yColCb )~~[[span(style=color: #FF0000, ( ( xColBr  >>  3 )  <<  3, ( yColBr  >>  3 )  <<  3 ) )]], refIdxLX and sbFlag set equal to 0 as inputs, and the output is assigned to mvLXCol and availableFlagLXCol.
...
2. When availableFlagLXCol is equal to 0, the central collocated motion vector is derived as follows:
...
 – The variable colCb specifies the luma coding block covering the modified location given by ( ( xColCtr  >>  3 )  <<  3, ( yColCtr  >>  3 )  <<  3 ) inside the collocated picture specified by ColPic.
 ~~– The luma location ( xColCb, yColCb ) is set equal to the top-left sample of the collocated luma coding block specified by colCb relative to the top-left luma sample of the collocated picture specified by ColPic.~~
 – The derivation process for collocated motion vectors as specified in subclause 8.5.2.12 is invoked with currCb, colCb, ~~( xColCb, yColCb )~~[[span(style=color: #FF0000, ( ( xColCtr  >>  3 )  <<  3, ( yColCtr  >>  3 )  <<  3 )]], refIdxLX and sbFlag set equal to 0 as inputs, and the output is assigned to mvLXCol and availableFlagLXCol.


== The subclause 8.5.5.3 should be modified as follows: ==
...
 – The variable colCb specifies the luma coding block covering the modified location given by ( ( xColSb >> 3 ) << 3, ( yColSb >> 3 ) << 3 ) inside the ColPic.
 ~~– The luma location ( xColCb, yColCb ) is set equal to the top-left sample of the collocated luma coding block specified by colCb relative to the top-left luma sample of the collocated picture specified by ColPic.~~
 – The derivation process for collocated motion vectors as specified in subclause 8.5.2.12 is invoked with currCb, colCb, ~~( xColCb, yColCb )~~[[span(style=color: #FF0000, ( ( xColSb >> 3 ) << 3, ( yColSb >> 3 ) << 3 )]], refIdxL0 set equal to 0 and sbFlag set equal to 1 as inputs and the output being assigned to the motion vector of the subblock mvL0SbCol[ xSbIdx ][ ySbIdx ] and availableFlagL0SbCol.
 – The derivation process for collocated motion vectors as specified in subclause 8.5.2.12 is invoked with currCb, colCb, ~~( xColCb, yColCb )~~[[span(style=color: #FF0000, ( ( xColSb >> 3 ) << 3, ( yColSb >> 3 ) << 3 )]], refIdxL1 set equal to 0 and sbFlag set equal to 1 as inputs and the output being assigned to the motion vector of the subblock mvL1SbCol[ xSbIdx ][ ySbIdx ] and availableFlagL1SbCol.
...

== The subclause 8.5.5.4 should be modified as follows: ==
...
 – The variable colCb specifies the luma coding block covering the modified location given by ( ( xColCb  >>  3 )  <<  3, ( yColCb  >>  3 )  <<  3 ) inside the ColPic.
 ~~– The luma location ( xColCb, yColCb ) is set equal to the top-left sample of the collocated luma coding block specified by colCb relative to the top-left luma sample of the collocated picture specified by ColPic.~~
 – The derivation process for collocated motion vectors specified in subclause 8.5.2.12 is invoked with currCb, colCb,  ~~(xColCb, yColCb)~~[[span(style=color: #FF0000, ( ( xColCb  >>  3 )  <<  3, ( yColCb  >>  3 )  <<  3 )]], refIdxL0 set equal to 0, and sbFlag set equal to 1 as inputs and the output being assigned to ctrMvL0 and ctrPredFlagL0.
 – The derivation process for collocated motion vectors specified in subclause 8.5.2.12 is invoked with currCb, colCb,  ~~(xColCb, yColCb)~~[[span(style=color: #FF0000, ( ( xColCb  >>  3 )  <<  3, ( yColCb  >>  3 )  <<  3 )]], refIdxL1 set equal to 0, and sbFlag set equal to 1 as inputs and the output being assigned to ctrMvL1 and ctrPredFlagL1.
...

== The subclause 8.5.5.6 should be modified as follows: ==
...
 – If yCb  >>  CtbLog2SizeY is equal to yColBr  >>  CtbLog2SizeY, yColBr is less than or equal to botBoundaryPos and xColBr is less than or equal to rightBoundaryPos, the following applies:
  – The variable colCb specifies the luma coding block covering the modified location given by ( ( xColBr  >>  3 )  <<  3, ( yColBr  >>  3 )  <<  3 ) inside the collocated picture specified by ColPic.
  ~~– The luma location ( xColCb, yColCb ) is set equal to the top-left sample of the collocated luma coding block specified by colCb relative to the top-left luma sample of the collocated picture specified by ColPic.~~
  – The derivation process for collocated motion vectors as specified in subclause 8.5.2.12 is invoked with currCb, colCb, ~~( xColCb, yColCb )~~[[span(style=color: #FF0000, ( ( xColBr  >>  3 )  <<  3, ( yColBr  >>  3 )  <<  3 )]], refIdxLXCorner[ 3 ] and sbFlag set equal to 0 as inputs, and the output is assigned to mvLXCol and availableFlagLXCol.
...

This issue was confirmed by several experts. Please check my suggestion for this issue."	defect	closed	minor		spec	VVC D10 vD	fixed		ksuehring bbross XiangLi fbossen jvet@…
