Opened 4 years ago

Last modified 4 years ago

#656 closed defect

"mtsIdx[compID]==0 (DCT2xDCT2)" is used in chroma when lossless encoding — at Initial Version

Reported by: tsukuba.takeshi Owned by:
Priority: minor Milestone: VTM-7.0
Component: VTM Version: VTM-7.0rc1
Keywords: Cc: ksuehring, XiangLi, fbossen, jvet@…

Description

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

Change history (0)

Note: See TracTickets for help on using tickets.