diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index aad7a48614aeebe5730ad67e7201d689547a654d..80f02d6acabd0f9e3f1a3cfe352486f8a7854f38 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -54,6 +54,8 @@ #define JVET_O0061_MV_THR_DEBLOCKING 1 // a deblocking mv threshold of half pel +#define JVET_O0220_METHOD1_SUBBLK_FLAG_PARSING 1 // JVET-O0220 method-1: Parse merge_subblock_flag conditioned on MaxNumSubblockMergeCand + #define JVET_O0046_DQ_SIGNALLING 1 // JVET-O0046: Move delta-QP earlier for 64x64 VPDU processing, applied to CUs >64x64 only #define JVET_O0616_400_CHROMA_SUPPORT 1 // JVET-O0616: Various chroma format support in VVC diff --git a/source/Lib/DecoderLib/CABACReader.cpp b/source/Lib/DecoderLib/CABACReader.cpp index efd90714512fd6e8c1a0f559f8154cb71e8c2a09..5607110abe84387965c78cabdf2b90b84059886a 100644 --- a/source/Lib/DecoderLib/CABACReader.cpp +++ b/source/Lib/DecoderLib/CABACReader.cpp @@ -1701,7 +1701,11 @@ void CABACReader::subblock_merge_flag( CodingUnit& cu ) return; } +#if JVET_O0220_METHOD1_SUBBLK_FLAG_PARSING + if ( !cu.cs->slice->isIntra() && (cu.slice->getMaxNumAffineMergeCand() > 0) && cu.lumaSize().width >= 8 && cu.lumaSize().height >= 8 ) +#else if ( !cu.cs->slice->isIntra() && (cu.cs->sps->getUseAffine() || cu.cs->sps->getSBTMVPEnabledFlag()) && cu.lumaSize().width >= 8 && cu.lumaSize().height >= 8 ) +#endif { RExt__DECODER_DEBUG_BIT_STATISTICS_CREATE_SET( STATS__CABAC_BITS__AFFINE_FLAG ); diff --git a/source/Lib/EncoderLib/CABACWriter.cpp b/source/Lib/EncoderLib/CABACWriter.cpp index 12e29f16dfd6bec92e1ac1a009e4c10f05c33cf1..2dc64ffba5d7ca3e1e3b49487dd24bc29c98bb90 100644 --- a/source/Lib/EncoderLib/CABACWriter.cpp +++ b/source/Lib/EncoderLib/CABACWriter.cpp @@ -1584,7 +1584,11 @@ void CABACWriter::subblock_merge_flag( const CodingUnit& cu ) return; } +#if JVET_O0220_METHOD1_SUBBLK_FLAG_PARSING + if ( !cu.cs->slice->isIntra() && (cu.slice->getMaxNumAffineMergeCand() > 0) && cu.lumaSize().width >= 8 && cu.lumaSize().height >= 8 ) +#else if ( !cu.cs->slice->isIntra() && (cu.cs->sps->getUseAffine() || cu.cs->sps->getSBTMVPEnabledFlag()) && cu.lumaSize().width >= 8 && cu.lumaSize().height >= 8 ) +#endif { unsigned ctxId = DeriveCtx::CtxAffineFlag( cu ); #if JVET_O0500_SEP_CTX_AFFINE_SUBBLOCK_MRG