﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
433	Mismatch between SW and Spec on chroma DM derivation	LiZhang	LiZhang	"8.4.3	Derivation process for chroma intra prediction mode
...
The corresponding luma intra prediction mode lumaIntraPredMode is derived as follows:
–	If intra_mip_flag'''[ xCb ][ yCb ]''' is equal to 1, lumaIntraPredMode is set equal to INTRA_PLANAR.
–	Otherwise, if CuPredMode[ 0 ]'''[ xCb ][ yCb ]''' is equal to MODE_IBC or MODE_PLT, lumaIntraPredMode is set equal to INTRA_DC.
–	Otherwise, lumaIntraPredMode is set equal to IntraPredModeY'''[ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ]'''.

It could seen that when checking the luma prediction mode equal to MIP/IBC/Palette, the CU covering the corresponding luma sample of the top-left position of current chroma block (named top CU) is used. However, in the SW, CU covering the corresponding luma sample of the center position of current chroma block (named center CU) is checked.

In addition, if the decoder follows the spec, IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ] may be used without being defined. For example, the center CU may be coded with IBC/Palette mode while the top CU is intra coded.

A possible solution is to check center CU's mode, and the spec changes could be like:
The corresponding luma intra prediction mode lumaIntraPredMode is derived as follows:
–	If intra_mip_flag[ xCb '''+ cbWidth / 2''' ][ yCb '''+ cbHeight / 2'''] is equal to 1, lumaIntraPredMode is set equal to INTRA_PLANAR.
–	Otherwise, if CuPredMode[ 0 ][ xCb '''+ cbWidth / 2'''][ yCb '''+ cbHeight / 2'''] is equal to MODE_IBC or MODE_PLT, lumaIntraPredMode is set equal to INTRA_DC.
–	Otherwise, lumaIntraPredMode is set equal to IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ].
"	defect	closed	minor		spec	VVC D7 vC	fixed		vzakharc yuwenhe jvet@…
