diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index 70af65dee0820d183c0d74169b1395f3e21c642a..f848d07f47e43f7bffe7af8260a8151b971b0d82 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -50,6 +50,8 @@ #include <assert.h> #include <cassert> +#define JVET_Q0417_CONSTRAINT_SPS_VB_PRESENT_FLAG 1 // JVET_Q0417: a constraint on the value of sps_virtual_boundaries_present_flag based on res_change_in_clvs_allowed_flag + #define JVET_Q0179_SCALING_WINDOW_SIZE_CONSTRAINT 1 // JVET-Q0179: Scaling window size constraint for constraining worst case memory bandwidth #define JVET_P2008_OUTPUT_LOG 1 // Output log file for conformance tests diff --git a/source/Lib/DecoderLib/DecLib.cpp b/source/Lib/DecoderLib/DecLib.cpp index 30aee70633e44dfb2f9fedfd8ddb533a50aebd38..52602c45963cc171fb129633cd7ad2ffbcf8b9a2 100644 --- a/source/Lib/DecoderLib/DecLib.cpp +++ b/source/Lib/DecoderLib/DecLib.cpp @@ -1274,6 +1274,10 @@ void DecLib::xActivateParameterSets( const int layerId ) CHECK( !sps->getRprEnabledFlag() && pps->getScalingWindow().getWindowEnabledFlag(), "When ref_pic_resampling_enabled_flag is equal to 0, the value of scaling_window_flag shall be equal to 0." ); #endif +#if JVET_Q0417_CONSTRAINT_SPS_VB_PRESENT_FLAG + CHECK(sps->getRprEnabledFlag() && sps->getLoopFilterAcrossVirtualBoundariesDisabledFlag(), "when the value of res_change_in_clvs_allowed_flag is equal to 1, the value of sps_virtual_boundaries_present_flag shall be equal to 0"); +#endif + if( sps->getCTUSize() + 2 * ( 1 << sps->getLog2MinCodingBlockSize() ) > pps->getPicWidthInLumaSamples() ) { CHECK( sps->getWrapAroundEnabledFlag(), "Wraparound shall be disabled when the value of ( CtbSizeY / MinCbSizeY + 1) is less than or equal to ( pic_width_in_luma_samples / MinCbSizeY - 1 )" ); diff --git a/source/Lib/EncoderLib/EncLib.cpp b/source/Lib/EncoderLib/EncLib.cpp index 60a76e97941122561093fcc01d15a6d896d57218..ba649e28cdd8009097f1871105b2c333c716c97f 100644 --- a/source/Lib/EncoderLib/EncLib.cpp +++ b/source/Lib/EncoderLib/EncLib.cpp @@ -1365,6 +1365,10 @@ void EncLib::xInitSPS( SPS& sps, VPS& vps ) #if JVET_Q0297_MER sps.setLog2ParallelMergeLevelMinus2( m_log2ParallelMergeLevelMinus2 ); #endif + +#if JVET_Q0417_CONSTRAINT_SPS_VB_PRESENT_FLAG + CHECK(sps.getRprEnabledFlag() && sps.getLoopFilterAcrossVirtualBoundariesDisabledFlag(), "when the value of res_change_in_clvs_allowed_flag is equal to 1, the value of sps_virtual_boundaries_present_flag shall be equal to 0"); +#endif } void EncLib::xInitHrdParameters(SPS &sps)