diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index a680e7e66af30e314cec0530d374ca02f91b88b5..32880d9a1f9db80ea49d7cd6cb091bdc4f200ab1 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -50,6 +50,8 @@ #include #include +#define JVET_O0438_SPS_AFFINE_AMVR_FLAG 1 // JVET-O0438: affine AMVR control flag conditioned on affine control flag in SPS + #define JVET_O0052_TU_LEVEL_CTX_CODED_BIN_CONSTRAINT 1 // JVET-O0052 Method-1: TU-level context coded bin constraint #define JVET_O0105_ICT 1 // JVET-O0105: inter-chroma transform (ICT) as extension of joint chroma coding (JCC) diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 4015041610a458d9114fd098e7be003f9b84160d..be091648c13186904746250c9d2fd915499aba50 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -1216,9 +1216,9 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) READ_FLAG( uiCode, "sps_amvr_enabled_flag" ); pcSPS->setAMVREnabledFlag ( uiCode != 0 ); READ_FLAG( uiCode, "sps_bdof_enabled_flag" ); pcSPS->setBDOFEnabledFlag ( uiCode != 0 ); - +#if !JVET_O0438_SPS_AFFINE_AMVR_FLAG READ_FLAG( uiCode, "sps_affine_amvr_enabled_flag" ); pcSPS->setAffineAmvrEnabledFlag ( uiCode != 0 ); - +#endif READ_FLAG(uiCode, "sps_dmvr_enable_flag"); pcSPS->setUseDMVR(uiCode != 0); READ_FLAG(uiCode, "sps_mmvd_enable_flag"); pcSPS->setUseMMVD(uiCode != 0); // KJS: sps_cclm_enabled_flag @@ -1241,6 +1241,9 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) if ( pcSPS->getUseAffine() ) { READ_FLAG( uiCode, "affine_type_flag" ); pcSPS->setUseAffineType ( uiCode != 0 ); +#if JVET_O0438_SPS_AFFINE_AMVR_FLAG + READ_FLAG( uiCode, "sps_affine_amvr_enabled_flag" ); pcSPS->setAffineAmvrEnabledFlag ( uiCode != 0 ); +#endif } READ_FLAG( uiCode, "gbi_flag" ); pcSPS->setUseGBi ( uiCode != 0 ); READ_FLAG(uiCode, "ibc_flag"); pcSPS->setIBCFlag(uiCode); diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index be89c701f9b23626775e3ef1b723586a15cc8f48..968e8c800e2f6728aa649402b2650e3cc3cdb9a5 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -808,9 +808,9 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) WRITE_FLAG( pcSPS->getAMVREnabledFlag() ? 1 : 0, "sps_amvr_enabled_flag" ); WRITE_FLAG( pcSPS->getBDOFEnabledFlag() ? 1 : 0, "sps_bdof_enabled_flag" ); - +#if !JVET_O0438_SPS_AFFINE_AMVR_FLAG WRITE_FLAG( pcSPS->getAffineAmvrEnabledFlag() ? 1 : 0, "sps_affine_amvr_enabled_flag" ); - +#endif WRITE_FLAG( pcSPS->getUseDMVR() ? 1 : 0, "sps_dmvr_enable_flag" ); WRITE_FLAG(pcSPS->getUseMMVD() ? 1 : 0, "sps_mmvd_enable_flag"); // KJS: sps_cclm_enabled_flag @@ -833,6 +833,9 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) if ( pcSPS->getUseAffine() ) { WRITE_FLAG( pcSPS->getUseAffineType() ? 1 : 0, "affine_type_flag" ); +#if JVET_O0438_SPS_AFFINE_AMVR_FLAG + WRITE_FLAG( pcSPS->getAffineAmvrEnabledFlag() ? 1 : 0, "sps_affine_amvr_enabled_flag" ); +#endif } WRITE_FLAG( pcSPS->getUseGBi() ? 1 : 0, "gbi_flag" ); WRITE_FLAG(pcSPS->getIBCFlag() ? 1 : 0, "ibc_flag");