﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
656	"""mtsIdx[compID]==0 (DCT2xDCT2)"" is used in chroma when lossless encoding"	tsukuba.takeshi		"When lossless encoding, DCT2xDCT2 is not restricted in chroma component.

In IntraSearch.cpp::xIntraCodingTUBlock, to restrict DCT2xDCT2 for luma component, following logic is applied:
{{{
...
#if JVET_AHG14_LOSSLESS
    if( !( m_pcEncCfg->getCostMode() == COST_LOSSLESS_CODING && tu.mtsIdx[compID] == 0 ) || tu.cu->bdpcmMode != 0 )
    {
      m_pcTrQuant->transformNxN(tu, compID, cQP, uiAbsSum, m_CABACEstimator->getCtx(), loadTr);
    }
...
#endif

#if JVET_AHG14_LOSSLESS
  if( ( m_pcEncCfg->getCostMode() == COST_LOSSLESS_CODING && tu.mtsIdx[compID] == 0 ) && 0 == tu.cu->bdpcmMode )
  {
    uiAbsSum = 0;
    tu.getCoeffs( compID ).fill( 0 );
    TU::setCbfAtDepth( tu, compID, tu.depth, 0 );
  }
#endif
}}}

For chroma, the same logic should be applied to following part:

{{{
#if JVET_P0058_CHROMA_TS
    // encoder bugfix: Set loadTr to aovid redundant transform process
    m_pcTrQuant->transformNxN(tu, codeCompId, qpCbCr, uiAbsSum, m_CABACEstimator->getCtx(), loadTr);
#else
    m_pcTrQuant->transformNxN(tu, codeCompId, qpCbCr, uiAbsSum, m_CABACEstimator->getCtx());
#endif
}}}
"	defect	closed	minor	VTM-7.0	VTM	VTM-7.0rc1	fixed		ksuehring XiangLi fbossen jvet@…
