﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
1002	Wrong upper bounds of numTopRight and numLeftBelow in 8.4.5.2.13. Specification of INTRA_LT_CCLM, INTRA_L_CCLM and INTRA_T_CCLM intra prediction mode	afilippov		"VVC D8 vE (JVET-Q2001-vE) specifies the numbers of available top-right numTopRight and left-below numLeftBelow neighbouring chroma samples as follows:
–	The number of available top-right neighbouring chroma samples numTopRight is derived as follows:
	–	The variable numTopRight is set equal to 0 and availTR is set equal to TRUE.
	–	When predModeIntra is equal to INTRA_T_CCLM, the following applies for x = nTbW..2 * nTbW − 1 until availTR is equal to FALSE or x is equal to 2 * nTbW − 1:
		–	The derivation process for neighbouring block availability as specified in clause 6.4.4 is invoked with the current luma location ( xCurr, yCurr ) set equal to ( xTbY , yTbY ) the neighbouring luma location ( xTbY + x, yTbY − 1 ), checkPredModeY set equal to FALSE, and cIdx as inputs, and the output is assigned to availTR
		–	When availTR is equal to TRUE, numTopRight is incremented by one.
–	The number of available left-below neighbouring chroma samples numLeftBelow is derived as follows:
	–	The variable numLeftBelow is set equal to 0 and availLB is set equal to TRUE.
	–	When predModeIntra is equal to INTRA_L_CCLM, the following applies for y = nTbH..2 * nTbH − 1 until availLB is equal to FALSE or y is equal to 2 * nTbH − 1:
		–	The derivation process for neighbouring block availability as specified in clause 6.4.4 is invoked with the current luma location ( xCurr, yCurr ) set equal to ( xTbY , yTbY ), the neighbouring luma location ( xTbY − 1, yTbY + y ), checkPredModeY set equal to FALSE, and cIdx as inputs, and the output is assigned to availLB
		–	When availLB is equal to TRUE, numLeftBelow is incremented by one.

Note that the iteration ranges of (nTbW..2 * nTbW − 1) and (nTbH..2 * nTbH − 1) are equal to nTbW and nTbH, respectively. However, the top-right most and left-below most samples can't be reached due to the following conditions:
until availTR is equal to FALSE or '''x is equal to 2 * nTbW − 1'''
and
until availLB is equal to FALSE or '''y is equal to 2 * nTbH − 1''',
respectively. This results in that numTopRight and numLeftBelow can't take values of nTbW and nTbH, respectively.

To align the VVC spec draft with VTM-8.0, the following modification is suggested:
–	The number of available top-right neighbouring chroma samples numTopRight is derived as follows:
	–	The variable numTopRight is set equal to 0 and availTR is set equal to TRUE.
	–	When predModeIntra is equal to INTRA_T_CCLM, the following applies for x = nTbW..2 * nTbW − 1 until availTR is equal to FALSE:
		–	The derivation process for neighbouring block availability as specified in clause 6.4.4 is invoked with the current luma location ( xCurr, yCurr ) set equal to ( xTbY , yTbY ) the neighbouring luma location ( xTbY + x, yTbY − 1 ), checkPredModeY set equal to FALSE, and cIdx as inputs, and the output is assigned to availTR
		–	When availTR is equal to TRUE, numTopRight is incremented by one.
–	The number of available left-below neighbouring chroma samples numLeftBelow is derived as follows:
	–	The variable numLeftBelow is set equal to 0 and availLB is set equal to TRUE.
	–	When predModeIntra is equal to INTRA_L_CCLM, the following applies for y = nTbH..2 * nTbH − 1 until availLB is equal to FALSE:
		–	The derivation process for neighbouring block availability as specified in clause 6.4.4 is invoked with the current luma location ( xCurr, yCurr ) set equal to ( xTbY , yTbY ), the neighbouring luma location ( xTbY − 1, yTbY + y ), checkPredModeY set equal to FALSE, and cIdx as inputs, and the output is assigned to availLB
		–	When availLB is equal to TRUE, numLeftBelow is incremented by one."	defect	closed	minor		spec		fixed		ksuehring bbross XiangLi fbossen jvet@…
