﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
1303	Mismatch of condition for chroma process in LMCS (8.7.5.3) compared with VTM	ksthey		"In 8.7.5.1:
–	Otherwise, if cIdx is equal to 1, '''tuCbfChroma''' is set equal to '''tu_cb_coded_flag'''[ xCurr ][ yCurr ], recSamples corresponds to the reconstructed chroma sample array SCb.
–	Otherwise (cIdx is equal to 2), '''tuCbfChroma''' is set equal to '''tu_cr_coded_flag'''[ xCurr ][ yCurr ], recSamples corresponds to the reconstructed chroma sample array SCr.



8.7.5.3 is invoked in 8.7.5.1 with tuCbfChroma as one of the input to decide whether to perform residual scaling for chroma samples. 

In the specifiation (JVET-S2001-vG), the values of tu_cb_coded_flag and tu_cr_coded_flag are parsed from bitstream (or equal to 0 if they are not parsed from bitstream), without any further modification regardless of the value for tu_joint_cbcr_residual_flag.

However, in VTM, the code below indicates that LMCS for chroma will be executed when '''tu_joint_cbcr_residual_flag (tu.jointCbCr) equals to 1''', regardless of the value of TU coded flag (tu_cb_coded_flag or tu_cr_coded_flag) for current color component:
{{{
  flag = flag && (tu.blocks[compID].width*tu.blocks[compID].height > 4);
  if (flag && (TU::getCbf(tu, compID) || tu.jointCbCr) && isChroma(compID) && slice.getPicHeader()->getLmcsChromaResidualScaleFlag())
  {
    piResi.scaleSignal(tu.getChromaAdj(), 0, tu.cu->cs->slice->clpRng(compID));
  }
}}}"	defect	closed	minor		spec		fixed		ksuehring bbross XiangLi fbossen jvet@…
