Opened 4 years ago

Closed 4 years ago

#1002 closed defect (fixed)

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

Reported by: afilippov Owned by:
Priority: minor Milestone:
Component: spec Version:
Keywords: Cc: ksuehring, bbross, XiangLi, fbossen, jvet@…

Description

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.

Change history (1)

comment:1 Changed 4 years ago by bbross

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

Good catch, thanks!

This is fixed in vB of D9, ie. JVET-R2001-v11.

Note: See TracTickets for help on using tickets.