From 560960890c2cc2352b33d27a78b86f0835124628 Mon Sep 17 00:00:00 2001 From: Remy Foray <remy.foray@allegrodvt.com> Date: Mon, 12 Aug 2019 17:35:14 +0200 Subject: [PATCH] Fix #430: fix condition in residual_lfnst_mode when treeType is DUAL_TREE_CHROMA --- source/Lib/DecoderLib/CABACReader.cpp | 7 +++++-- source/Lib/EncoderLib/CABACWriter.cpp | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/source/Lib/DecoderLib/CABACReader.cpp b/source/Lib/DecoderLib/CABACReader.cpp index f6e5ba3ba..4e4999dec 100644 --- a/source/Lib/DecoderLib/CABACReader.cpp +++ b/source/Lib/DecoderLib/CABACReader.cpp @@ -3705,6 +3705,9 @@ void CABACReader::residual_lfnst_mode( CodingUnit& cu, CUCtx& cuCtx ) void CABACReader::residual_lfnst_mode( CodingUnit& cu ) #endif { +#if JVET_O0213_RESTRICT_LFNST_TO_MAX_TB_SIZE + int chIdx = CS::isDualITree( *cu.cs ) && cu.chType == CHANNEL_TYPE_CHROMA ? 1 : 0; +#endif if( cu.ispMode != NOT_INTRA_SUBPARTITIONS || #if JVET_O0925_MIP_SIMPLIFICATIONS (cu.cs->sps->getUseLFNST() && CU::isIntra(cu) && cu.mipFlag && !allowLfnstWithMip(cu.firstPU->lumaSize())) || @@ -3718,9 +3721,9 @@ void CABACReader::residual_lfnst_mode( CodingUnit& cu ) #endif #if JVET_O0213_RESTRICT_LFNST_TO_MAX_TB_SIZE #if JVET_O0545_MAX_TB_SIGNALLING - || ( cu.blocks[ 0 ].width > cu.cs->sps->getMaxTbSize() || cu.blocks[ 0 ].height > cu.cs->sps->getMaxTbSize() ) + || ( cu.blocks[ chIdx ].lumaSize().width > cu.cs->sps->getMaxTbSize() || cu.blocks[ chIdx ].lumaSize().height > cu.cs->sps->getMaxTbSize() ) #else - || ( cu.blocks[ 0 ].width > MAX_TB_SIZEY || cu.blocks[ 0 ].height > MAX_TB_SIZEY ) + || ( cu.blocks[ chIdx ].lumaSize().width > MAX_TB_SIZEY || cu.blocks[ chIdx ].lumaSize().height > MAX_TB_SIZEY ) #endif #endif ) diff --git a/source/Lib/EncoderLib/CABACWriter.cpp b/source/Lib/EncoderLib/CABACWriter.cpp index efc7af601..7e3df06ac 100644 --- a/source/Lib/EncoderLib/CABACWriter.cpp +++ b/source/Lib/EncoderLib/CABACWriter.cpp @@ -3523,6 +3523,9 @@ void CABACWriter::explicit_rdpcm_mode( const TransformUnit& tu, ComponentID comp void CABACWriter::residual_lfnst_mode( const CodingUnit& cu, CUCtx& cuCtx ) { +#if JVET_O0213_RESTRICT_LFNST_TO_MAX_TB_SIZE + int chIdx = CS::isDualITree( *cu.cs ) && cu.chType == CHANNEL_TYPE_CHROMA ? 1 : 0; +#endif if( cu.ispMode != NOT_INTRA_SUBPARTITIONS || #if JVET_O0925_MIP_SIMPLIFICATIONS (cu.cs->sps->getUseLFNST() && CU::isIntra(cu) && cu.mipFlag && !allowLfnstWithMip(cu.firstPU->lumaSize())) || @@ -3536,9 +3539,9 @@ void CABACWriter::residual_lfnst_mode( const CodingUnit& cu, CUCtx& cuCtx ) #endif #if JVET_O0213_RESTRICT_LFNST_TO_MAX_TB_SIZE #if JVET_O0545_MAX_TB_SIGNALLING - || ( cu.blocks[ 0 ].width > cu.cs->sps->getMaxTbSize() || cu.blocks[ 0 ].height > cu.cs->sps->getMaxTbSize() ) + || ( cu.blocks[ chIdx ].lumaSize().width > cu.cs->sps->getMaxTbSize() || cu.blocks[ chIdx ].lumaSize().height > cu.cs->sps->getMaxTbSize() ) #else - || ( cu.blocks[ 0 ].width > MAX_TB_SIZEY || cu.blocks[ 0 ].height > MAX_TB_SIZEY ) + || ( cu.blocks[ chIdx ].lumaSize().width > MAX_TB_SIZEY || cu.blocks[ chIdx ].lumaSize().height > MAX_TB_SIZEY ) #endif #endif ) -- GitLab