﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
1073	MotionModelIdc undefined when cu_affine_type_flag is not present	hanhuang		"In the JVET-R2001-vA, the MotionModelIdc is undefined when cu_affine_type_flag is not present. 

In equation (164), MotionModelIdc[ x ][ y ] = inter_affine_flag[ x0 ][ y0 ] + cu_affine_type_flag[ x0 ][ y0 ]. However, there's no inference value when cu_affine_type_flag is not present.   

It's suggested to add inference rule when cu_affine_type_flag is not present as follows:  When cu_affine_type_flag[ x0 ][ y0 ] is not present, it is inferred to be equal to 0.

Also note that in equation (163), when merge_subblock_flag[ x0 ][ y0 ] equals to 1, the value of  MotionModelIdc[ x ][ y ] is actually temporally set to 1 as the final value will be depend on the decoding process of subblock motion vector components and reference indices.  Therefore, it's suggested to initialize MotionModelIdc[ x ][ y ] to 0 at the beginning of coding unit semantics and remove equation (163). The semantics of cu_affine_type_flag can be cleaned as following:


cu_affine_type_flag[ x0 ][ y0 ] equal to 1 specifies that for the current coding unit, when decoding a P or B slice, 6-parameter affine model based motion compensation is used to generate the prediction samples of the current coding unit. cu_affine_type_flag[ x0 ][ y0 ] equal to 0 specifies that 4-parameter affine model based motion compensation is used to generate the prediction samples of the current coding unit. '''When cu_affine_type_flag[ x0 ][ y0 ] is not present, it is inferred to be equal to 0.''' 
The variable MotionModelIdc[ x ][ y ] is derived as follows for x = x0..x0 + cbWidth − 1 and y = y0..y0 + cbHeight − 1:
    MotionModelIdc[ x ][ y ] = inter_affine_flag[ x0 ][ y0 ] + cu_affine_type_flag[ x0 ][ y0 ]"	defect	closed	blocker	VVC D10	spec	VVC D9 vB	fixed		vzakharc yuwenhe jvet@…
