Opened 6 years ago
Closed 6 years ago
#656 closed defect (fixed)
"mtsIdx[compID]==0 (DCT2xDCT2)" is used in chroma when lossless encoding
| 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 (last modified by ksuehring)
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 (3)
comment:1 Changed 6 years ago by tsukuba.takeshi
comment:2 Changed 6 years ago by ksuehring
- Description modified (diff)
comment:3 Changed 6 years ago by ksuehring
- Resolution set to fixed
- Status changed from new to closed
The MR was merged.
Note: See TracTickets for help on using tickets.
Suggtesed code fixe is:
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/merge_requests/1111