﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
754	SW/Spec mismatch on tu_cbf_luma signalling	jason		"In the current master branch, tu_cbf_luma signalling depends on tu_cbf_cb, tu_cbf_cr and transform depth when ACT is applied to intra block.
{{{
// 'transform_unit' function in CABACReader.cpp
#if JVET_P0517_ADAPTIVE_COLOR_TRANSFORM
      bool lumaCbfIsInferredACT = (cu.colorTransform && cu.predMode == MODE_INTRA && trDepth == 0 && !chromaCbfs.sigChroma(area.chromaFormat));
      bool lastCbfIsInferred    = lumaCbfIsInferredACT; // ISP and ACT are mutually exclusive
      bool previousCbf          = false;
      bool rootCbfSoFar         = false;
#else
      bool previousCbf = false;
      bool rootCbfSoFar = false;
      bool lastCbfIsInferred = false;    
#endif
      ...
      bool cbfY = lastCbfIsInferred ? true : cbf_comp(cs, tu.Y(), trDepth, previousCbf, cu.ispMode);
      TU::setCbfAtDepth(tu, COMPONENT_Y, trDepth, (cbfY ? 1 : 0));

}}}

Meanwhile, in JVET-P2001-vE, tu_cbf_luma is always parsed for intra block with ACT mode.
{{{
7.3.9.10 Transform unit syntax

if( treeType == SINGLE_TREE || treeType == DUAL_TREE_LUMA ) {
   if( ( IntraSubPartitionsSplitType == ISP_NO_SPLIT && !( cu_sbt_flag &&
         ( ( subTuIndex == 0 && cu_sbt_pos_flag ) ||
         ( subTuIndex == 1 && !cu_sbt_pos_flag ) ) ) &&
         ( CuPredMode[ chType ][ x0 ][ y0 ] == MODE_INTRA ||
         ( chromaAvailable && ( tu_cbf_cb[ xC ][ yC ] || tu_cbf_cr[ xC ][ yC ] ) ||
         CbWidth[ chType ][ x0 ][ y0 ] > MaxTbSizeY ||
         CbHeight[ chType ][ x0 ][ y0 ] > MaxTbSizeY ) ) ||
       ( IntraSubPartitionsSplitType != ISP_NO_SPLIT &&
         ( subTuIndex < NumIntraSubPartitions - 1 || !InferTuCbfLuma ) ) )
       tu_cbf_luma[ x0 ][ y0 ]
       ...
}
}}}

Suggestion: Aligning spec with SW

if( treeType == SINGLE_TREE | | treeType == DUAL_TREE_LUMA ) {
   if( ( IntraSubPartitionsSplitType == ISP_NO_SPLIT && !( cu_sbt_flag &&
   ( ( subTuIndex == 0 && cu_sbt_pos_flag ) | |
   ( subTuIndex == 1 && !cu_sbt_pos_flag ) ) ) &&
   ( [[span(style=color: #FF0000, ()]] CuPredMode[ chType ][ x0 ][ y0 ] == MODE_INTRA [[span(style=color: #FF0000, && )]] 
   [[span(style=color: #FF0000, !cu_act_enabled_flag[ x0 ][ y0 ] ) )]] | |
   ( chromaAvailable && ( tu_cbf_cb[ xC ][ yC ] | | tu_cbf_cr[ xC ][ yC ] ) | |
   CbWidth[ chType ][ x0 ][ y0 ] > MaxTbSizeY | |
   CbHeight[ chType ][ x0 ][ y0 ] > MaxTbSizeY ) ) | |
   ( IntraSubPartitionsSplitType != ISP_NO_SPLIT &&
   ( subTuIndex < NumIntraSubPartitions - 1 | | !InferTuCbfLuma ) ) )
     '''tu_cbf_luma'''[ x0 ][ y0 ]
   ...
}
"	defect	closed	minor	VVC D10	spec	VVC D9 vB	fixed	ACT, tu_cbf_luma	ksuehring bbross XiangLi fbossen jvet@…
