diff --git a/source/Lib/CommonLib/Slice.cpp b/source/Lib/CommonLib/Slice.cpp index aad5fb3fee962509c1691e33c6c12e39c7aa775f..89f48f36276885cf4d641b344c336e5438deb2d3 100644 --- a/source/Lib/CommonLib/Slice.cpp +++ b/source/Lib/CommonLib/Slice.cpp @@ -1886,18 +1886,33 @@ SPS::SPS() , m_bIntraOnlyConstraintFlag (false) , m_maxBitDepthConstraintIdc ( 0) , m_maxChromaFormatConstraintIdc(CHROMA_420) -, m_bFrameConstraintFlag (false) +, m_bFrameConstraintFlag (false) , m_bNoQtbttDualTreeIntraConstraintFlag(false) -, m_bNoCclmConstraintFlag (false) , m_bNoSaoConstraintFlag (false) , m_bNoAlfConstraintFlag (false) , m_bNoPcmConstraintFlag (false) +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX +, m_bNoRefWraparoundConstraintFlag(false) +#endif , m_bNoTemporalMvpConstraintFlag(false) , m_bNoSbtmvpConstraintFlag (false) , m_bNoAmvrConstraintFlag (false) -, m_bNoAffineMotionConstraintFlag(false) +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX +, m_bNoBdofConstraintFlag (false) +#endif +, m_bNoCclmConstraintFlag (false) , m_bNoMtsConstraintFlag (false) +, m_bNoAffineMotionConstraintFlag(false) +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX +, m_bNoGbiConstraintFlag (false) +, m_bNoMhIntraConstraintFlag (false) +, m_bNoTriangleConstraintFlag (false) +#endif , m_bNoLadfConstraintFlag (false) +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX +, m_bNoCurrPicRefConstraintFlag(false) +, m_bNoQpDeltaConstraintFlag (false) +#endif , m_bNoDepQuantConstraintFlag (false) , m_bNoSignDataHidingConstraintFlag(false) #if JVET_M0246_AFFINE_AMVR diff --git a/source/Lib/CommonLib/Slice.h b/source/Lib/CommonLib/Slice.h index 2a0abb84cf9b0565202f866ec538d90ff2f66404..b7a8084d06b59ff8be351abcf5487d2d82558ddc 100644 --- a/source/Lib/CommonLib/Slice.h +++ b/source/Lib/CommonLib/Slice.h @@ -832,16 +832,31 @@ private: uint32_t m_maxChromaFormatConstraintIdc; bool m_bFrameConstraintFlag; bool m_bNoQtbttDualTreeIntraConstraintFlag; - bool m_bNoCclmConstraintFlag; bool m_bNoSaoConstraintFlag; bool m_bNoAlfConstraintFlag; bool m_bNoPcmConstraintFlag; +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + bool m_bNoRefWraparoundConstraintFlag; +#endif bool m_bNoTemporalMvpConstraintFlag; bool m_bNoSbtmvpConstraintFlag; bool m_bNoAmvrConstraintFlag; - bool m_bNoAffineMotionConstraintFlag; +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + bool m_bNoBdofConstraintFlag; +#endif + bool m_bNoCclmConstraintFlag; bool m_bNoMtsConstraintFlag; + bool m_bNoAffineMotionConstraintFlag; +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + bool m_bNoGbiConstraintFlag; + bool m_bNoMhIntraConstraintFlag; + bool m_bNoTriangleConstraintFlag; +#endif bool m_bNoLadfConstraintFlag; +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + bool m_bNoCurrPicRefConstraintFlag; + bool m_bNoQpDeltaConstraintFlag; +#endif bool m_bNoDepQuantConstraintFlag; bool m_bNoSignDataHidingConstraintFlag; @@ -995,30 +1010,52 @@ public: void setMaxBitDepthConstraintIdc(uint32_t u) { m_maxBitDepthConstraintIdc = u; } uint32_t getMaxChromaFormatConstraintIdc() const { return m_maxChromaFormatConstraintIdc; } void setMaxChromaFormatConstraintIdc(uint32_t u) { m_maxChromaFormatConstraintIdc = u; } - bool getFrameConstraintFlag() const { return m_bFrameConstraintFlag; } - void setFrameConstraintFlag(bool bVal) { m_bFrameConstraintFlag = bVal; } + bool getFrameConstraintFlag() const { return m_bFrameConstraintFlag; } + void setFrameConstraintFlag(bool bVal) { m_bFrameConstraintFlag = bVal; } bool getNoQtbttDualTreeIntraConstraintFlag() const { return m_bNoQtbttDualTreeIntraConstraintFlag; } void setNoQtbttDualTreeIntraConstraintFlag(bool bVal) { m_bNoQtbttDualTreeIntraConstraintFlag = bVal; } - bool getNoCclmConstraintFlag() const { return m_bNoCclmConstraintFlag; } - void setNoCclmConstraintFlag(bool bVal) { m_bNoCclmConstraintFlag = bVal; } bool getNoSaoConstraintFlag() const { return m_bNoSaoConstraintFlag; } void setNoSaoConstraintFlag(bool bVal) { m_bNoSaoConstraintFlag = bVal; } bool getNoAlfConstraintFlag() const { return m_bNoAlfConstraintFlag; } void setNoAlfConstraintFlag(bool bVal) { m_bNoAlfConstraintFlag = bVal; } bool getNoPcmConstraintFlag() const { return m_bNoPcmConstraintFlag; } void setNoPcmConstraintFlag(bool bVal) { m_bNoPcmConstraintFlag = bVal; } +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + bool getNoRefWraparoundConstraintFlag() const { return m_bNoRefWraparoundConstraintFlag; } + void setNoRefWraparoundConstraintFlag(bool bVal) { m_bNoRefWraparoundConstraintFlag= bVal; } +#endif bool getNoTemporalMvpConstraintFlag() const { return m_bNoTemporalMvpConstraintFlag; } void setNoTemporalMvpConstraintFlag(bool bVal) { m_bNoTemporalMvpConstraintFlag = bVal; } bool getNoSbtmvpConstraintFlag() const { return m_bNoSbtmvpConstraintFlag; } void setNoSbtmvpConstraintFlag(bool bVal) { m_bNoSbtmvpConstraintFlag = bVal; } bool getNoAmvrConstraintFlag() const { return m_bNoAmvrConstraintFlag; } void setNoAmvrConstraintFlag(bool bVal) { m_bNoAmvrConstraintFlag = bVal; } - bool getNoAffineMotionConstraintFlag() const { return m_bNoAffineMotionConstraintFlag; } - void setNoAffineMotionConstraintFlag(bool bVal) { m_bNoAffineMotionConstraintFlag = bVal; } +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + bool getNoBdofConstraintFlag() const { return m_bNoBdofConstraintFlag; } + void setNoBdofConstraintFlag(bool bVal) { m_bNoBdofConstraintFlag = bVal; } +#endif + bool getNoCclmConstraintFlag() const { return m_bNoCclmConstraintFlag; } + void setNoCclmConstraintFlag(bool bVal) { m_bNoCclmConstraintFlag = bVal; } bool getNoMtsConstraintFlag() const { return m_bNoMtsConstraintFlag; } void setNoMtsConstraintFlag(bool bVal) { m_bNoMtsConstraintFlag = bVal; } + bool getNoAffineMotionConstraintFlag() const { return m_bNoAffineMotionConstraintFlag; } + void setNoAffineMotionConstraintFlag(bool bVal) { m_bNoAffineMotionConstraintFlag = bVal; } +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + bool getNoGbiConstraintFlag() const { return m_bNoGbiConstraintFlag; } + void setNoGbiConstraintFlag(bool bVal) { m_bNoGbiConstraintFlag = bVal; } + bool getNoMhIntraConstraintFlag() const { return m_bNoMhIntraConstraintFlag; } + void setNoMhIntraConstraintFlag(bool bVal) { m_bNoMhIntraConstraintFlag = bVal; } + bool getNoTriangleConstraintFlag() const { return m_bNoTriangleConstraintFlag; } + void setNoTriangleConstraintFlag(bool bVal) { m_bNoTriangleConstraintFlag = bVal; } +#endif bool getNoLadfConstraintFlag() const { return m_bNoLadfConstraintFlag; } void setNoLadfConstraintFlag(bool bVal) { m_bNoLadfConstraintFlag = bVal; } +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + bool getNoCurrPicRefConstraintFlag() const { return m_bNoCurrPicRefConstraintFlag; } + void setNoCurrPicRefConstraintFlag(bool bVal) { m_bNoCurrPicRefConstraintFlag = bVal; } + bool getNoQpDeltaConstraintFlag() const { return m_bNoQpDeltaConstraintFlag; } + void setNoQpDeltaConstraintFlag(bool bVal) { m_bNoQpDeltaConstraintFlag = bVal; } +#endif bool getNoDepQuantConstraintFlag() const { return m_bNoDepQuantConstraintFlag; } void setNoDepQuantConstraintFlag(bool bVal) { m_bNoDepQuantConstraintFlag = bVal; } bool getNoSignDataHidingConstraintFlag() const { return m_bNoSignDataHidingConstraintFlag; } diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index e4da03d020ab9c122d14b1436d5ad2ab9c07a561..b77ddfde2bb124383bbce56d96886153ca1286a6 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -50,6 +50,8 @@ #include <assert.h> #include <cassert> +#define JVET_M0451_INTEROPERABILITY_POINT_SYNTAX 1 + #define JVET_M0055_DEBUG_CTU 1 // DebugCTU encoder debug option #define JVET_M0297_32PT_MTS_ZERO_OUT 1 // 32 point MTS based on skipping high frequency coefficients diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 2f740018f318cc38bd8a342a0df276952a2b4269..c184c2df49536f160a1043824fe97c6a3700b2cf 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -838,16 +838,31 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) READ_CODE(2, uiCode, "max_chroma_format_constraint_idc"); pcSPS->setMaxChromaFormatConstraintIdc(uiCode); READ_FLAG(uiCode, "frame_only_constraint_flag"); pcSPS->setFrameConstraintFlag(uiCode > 0 ? true : false); READ_FLAG(uiCode, "no_qtbtt_dual_tree_intra_constraint_flag"); pcSPS->setNoQtbttDualTreeIntraConstraintFlag(uiCode > 0 ? true : false); - READ_FLAG(uiCode, "no_cclm_constraint_flag"); pcSPS->setNoCclmConstraintFlag(uiCode > 0 ? true : false); READ_FLAG(uiCode, "no_sao_constraint_flag"); pcSPS->setNoSaoConstraintFlag(uiCode > 0 ? true : false); READ_FLAG(uiCode, "no_alf_constraint_flag"); pcSPS->setNoAlfConstraintFlag(uiCode > 0 ? true : false); READ_FLAG(uiCode, "no_pcm_constraint_flag"); pcSPS->setNoPcmConstraintFlag(uiCode > 0 ? true : false); +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + READ_FLAG(uiCode, "no_ref_wraparound_constraint_flag"); pcSPS->setNoRefWraparoundConstraintFlag(uiCode > 0 ? true : false); +#endif READ_FLAG(uiCode, "no_temporal_mvp_constraint_flag"); pcSPS->setNoTemporalMvpConstraintFlag(uiCode > 0 ? true : false); READ_FLAG(uiCode, "no_sbtmvp_constraint_flag"); pcSPS->setNoSbtmvpConstraintFlag(uiCode > 0 ? true : false); READ_FLAG(uiCode, "no_amvr_constraint_flag"); pcSPS->setNoAmvrConstraintFlag(uiCode > 0 ? true : false); - READ_FLAG(uiCode, "no_affine_motion_constraint_flag"); pcSPS->setNoAffineMotionConstraintFlag(uiCode > 0 ? true : false); +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + READ_FLAG(uiCode, "no_bdof_constraint_flag"); pcSPS->setNoBdofConstraintFlag(uiCode > 0 ? true : false); +#endif + READ_FLAG(uiCode, "no_cclm_constraint_flag"); pcSPS->setNoCclmConstraintFlag(uiCode > 0 ? true : false); READ_FLAG(uiCode, "no_mts_constraint_flag"); pcSPS->setNoMtsConstraintFlag(uiCode > 0 ? true : false); + READ_FLAG(uiCode, "no_affine_motion_constraint_flag"); pcSPS->setNoAffineMotionConstraintFlag(uiCode > 0 ? true : false); +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + READ_FLAG(uiCode, "no_gbi_constraint_flag"); pcSPS->setNoGbiConstraintFlag(uiCode > 0 ? true : false); + READ_FLAG(uiCode, "no_mh_intra_constraint_flag"); pcSPS->setNoMhIntraConstraintFlag(uiCode > 0 ? true : false); + READ_FLAG(uiCode, "no_triangle_constraint_flag"); pcSPS->setNoTriangleConstraintFlag(uiCode > 0 ? true : false); +#endif READ_FLAG(uiCode, "no_ladf_constraint_flag"); pcSPS->setNoLadfConstraintFlag(uiCode > 0 ? true : false); +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + READ_FLAG(uiCode, "no_curr_pic_ref_constraint_flag"); pcSPS->setNoCurrPicRefConstraintFlag(uiCode > 0 ? true : false); + READ_FLAG(uiCode, "no_qp_delta_constraint_flag"); pcSPS->setNoQpDeltaConstraintFlag(uiCode > 0 ? true : false); +#endif READ_FLAG(uiCode, "no_dep_quant_constraint_flag"); pcSPS->setNoDepQuantConstraintFlag(uiCode > 0 ? true : false); READ_FLAG(uiCode, "no_sign_data_hiding_constraint_flag"); pcSPS->setNoSignDataHidingConstraintFlag(uiCode > 0 ? true : false); diff --git a/source/Lib/EncoderLib/EncCfg.h b/source/Lib/EncoderLib/EncCfg.h index 6a89a07fd3a2aba71fa58e5d17e24ef28b5b8d31..3bf9fe72e99e2762e82ae98c2cbdcd4c8690404b 100644 --- a/source/Lib/EncoderLib/EncCfg.h +++ b/source/Lib/EncoderLib/EncCfg.h @@ -139,16 +139,31 @@ protected: uint32_t m_maxChromaFormatConstraintIdc; bool m_bFrameConstraintFlag; bool m_bNoQtbttDualTreeIntraConstraintFlag; - bool m_bNoCclmConstraintFlag; bool m_bNoSaoConstraintFlag; bool m_bNoAlfConstraintFlag; bool m_bNoPcmConstraintFlag; +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + bool m_bNoRefWraparoundConstraintFlag; +#endif bool m_bNoTemporalMvpConstraintFlag; bool m_bNoSbtmvpConstraintFlag; bool m_bNoAmvrConstraintFlag; - bool m_bNoAffineMotionConstraintFlag; +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + bool m_bNoBdofConstraintFlag; +#endif + bool m_bNoCclmConstraintFlag; bool m_bNoMtsConstraintFlag; + bool m_bNoAffineMotionConstraintFlag; +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + bool m_bNoGbiConstraintFlag; + bool m_bNoMhIntraConstraintFlag; + bool m_bNoTriangleConstraintFlag; +#endif bool m_bNoLadfConstraintFlag; +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + bool m_bNoCurrPicRefConstraintFlag; + bool m_bNoQpDeltaConstraintFlag; +#endif bool m_bNoDepQuantConstraintFlag; bool m_bNoSignDataHidingConstraintFlag; @@ -612,26 +627,48 @@ public: void setFrameConstraintFlag(bool bVal) { m_bFrameConstraintFlag = bVal; } bool getNoQtbttDualTreeIntraConstraintFlag() const { return m_bNoQtbttDualTreeIntraConstraintFlag; } void setNoQtbttDualTreeIntraConstraintFlag(bool bVal) { m_bNoQtbttDualTreeIntraConstraintFlag = bVal; } - bool getNoCclmConstraintFlag() const { return m_bNoCclmConstraintFlag; } - void setNoCclmConstraintFlag(bool bVal) { m_bNoCclmConstraintFlag = bVal; } bool getNoSaoConstraintFlag() const { return m_bNoSaoConstraintFlag; } void setNoSaoConstraintFlag(bool bVal) { m_bNoSaoConstraintFlag = bVal; } bool getNoAlfConstraintFlag() const { return m_bNoAlfConstraintFlag; } void setNoAlfConstraintFlag(bool bVal) { m_bNoAlfConstraintFlag = bVal; } bool getNoPcmConstraintFlag() const { return m_bNoPcmConstraintFlag; } void setNoPcmConstraintFlag(bool bVal) { m_bNoPcmConstraintFlag = bVal; } +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + bool getNoRefWraparoundConstraintFlag() const { return m_bNoRefWraparoundConstraintFlag; } + void setNoRefWraparoundConstraintFlag(bool bVal) { m_bNoRefWraparoundConstraintFlag = bVal; } +#endif bool getNoTemporalMvpConstraintFlag() const { return m_bNoTemporalMvpConstraintFlag; } void setNoTemporalMvpConstraintFlag(bool bVal) { m_bNoTemporalMvpConstraintFlag = bVal; } bool getNoSbtmvpConstraintFlag() const { return m_bNoSbtmvpConstraintFlag; } void setNoSbtmvpConstraintFlag(bool bVal) { m_bNoSbtmvpConstraintFlag = bVal; } bool getNoAmvrConstraintFlag() const { return m_bNoAmvrConstraintFlag; } void setNoAmvrConstraintFlag(bool bVal) { m_bNoAmvrConstraintFlag = bVal; } - bool getNoAffineMotionConstraintFlag() const { return m_bNoAffineMotionConstraintFlag; } - void setNoAffineMotionConstraintFlag(bool bVal) { m_bNoAffineMotionConstraintFlag = bVal; } +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + bool getNoBdofConstraintFlag() const { return m_bNoBdofConstraintFlag; } + void setNoBdofConstraintFlag(bool bVal) { m_bNoBdofConstraintFlag = bVal; } +#endif + bool getNoCclmConstraintFlag() const { return m_bNoCclmConstraintFlag; } + void setNoCclmConstraintFlag(bool bVal) { m_bNoCclmConstraintFlag = bVal; } bool getNoMtsConstraintFlag() const { return m_bNoMtsConstraintFlag; } void setNoMtsConstraintFlag(bool bVal) { m_bNoMtsConstraintFlag = bVal; } + bool getNoAffineMotionConstraintFlag() const { return m_bNoAffineMotionConstraintFlag; } + void setNoAffineMotionConstraintFlag(bool bVal) { m_bNoAffineMotionConstraintFlag = bVal; } +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + bool getNoGbiConstraintFlag() const { return m_bNoGbiConstraintFlag; } + void setNoGbiConstraintFlag(bool bVal) { m_bNoGbiConstraintFlag = bVal; } + bool getNoMhIntraConstraintFlag() const { return m_bNoMhIntraConstraintFlag; } + void setNoMhIntraConstraintFlag(bool bVal) { m_bNoMhIntraConstraintFlag = bVal; } + bool getNoTriangleConstraintFlag() const { return m_bNoTriangleConstraintFlag; } + void setNoTriangleConstraintFlag(bool bVal) { m_bNoTriangleConstraintFlag = bVal; } +#endif bool getNoLadfConstraintFlag() const { return m_bNoLadfConstraintFlag; } void setNoLadfConstraintFlag(bool bVal) { m_bNoLadfConstraintFlag = bVal; } +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + bool getNoCurrPicRefConstraintFlag() const { return m_bNoCurrPicRefConstraintFlag; } + void setNoCurrPicRefConstraintFlag(bool bVal) { m_bNoCurrPicRefConstraintFlag = bVal; } + bool getNoQpDeltaConstraintFlag() const { return m_bNoQpDeltaConstraintFlag; } + void setNoQpDeltaConstraintFlag(bool bVal) { m_bNoQpDeltaConstraintFlag = bVal; } +#endif bool getNoDepQuantConstraintFlag() const { return m_bNoDepQuantConstraintFlag; } void setNoDepQuantConstraintFlag(bool bVal) { m_bNoDepQuantConstraintFlag = bVal; } bool getNoSignDataHidingConstraintFlag() const { return m_bNoSignDataHidingConstraintFlag; } diff --git a/source/Lib/EncoderLib/EncLib.cpp b/source/Lib/EncoderLib/EncLib.cpp index 5d3ba203cda20c1375f224728516d8c235a08f36..86220ff6c3c32a070d59edebf987d4b008cd71c1 100644 --- a/source/Lib/EncoderLib/EncLib.cpp +++ b/source/Lib/EncoderLib/EncLib.cpp @@ -813,14 +813,19 @@ void EncLib::xInitSPS(SPS &sps) sps.setMaxChromaFormatConstraintIdc(m_chromaFormatConstraintValue); sps.setFrameConstraintFlag(m_frameOnlyConstraintFlag); sps.setNoQtbttDualTreeIntraConstraintFlag(!m_dualITree); - sps.setNoCclmConstraintFlag(m_LMChroma ? false : true); sps.setNoSaoConstraintFlag(!m_bUseSAO); sps.setNoAlfConstraintFlag(!m_alf); sps.setNoPcmConstraintFlag(!m_usePCM); +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + sps.setNoRefWraparoundConstraintFlag(!m_bNoRefWraparoundConstraintFlag); +#endif sps.setNoTemporalMvpConstraintFlag(m_TMVPModeId ? false : true); sps.setNoSbtmvpConstraintFlag(m_SubPuMvpMode ? false : true); sps.setNoAmvrConstraintFlag(!m_bNoAmvrConstraintFlag); - sps.setNoAffineMotionConstraintFlag(!m_Affine); +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + sps.setNoBdofConstraintFlag(!m_BIO); +#endif + sps.setNoCclmConstraintFlag(m_LMChroma ? false : true); #if JVET_M0464_UNI_MTS #if JVET_M0303_IMPLICIT_MTS sps.setNoMtsConstraintFlag((m_IntraMTS || m_InterMTS || m_ImplicitMTS) ? false : true); @@ -833,8 +838,18 @@ void EncLib::xInitSPS(SPS &sps) #else sps.setNoMtsConstraintFlag((m_IntraEMT || m_InterEMT) ? false : true); #endif +#endif + sps.setNoAffineMotionConstraintFlag(!m_Affine); +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + sps.setNoGbiConstraintFlag(!m_GBi); + sps.setNoMhIntraConstraintFlag(!m_MHIntra); + sps.setNoTriangleConstraintFlag(!m_Triangle); #endif sps.setNoLadfConstraintFlag(!m_LadfEnabled); +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + sps.setNoCurrPicRefConstraintFlag(!m_IBCMode); + sps.setNoQpDeltaConstraintFlag(!m_bNoQpDeltaConstraintFlag); +#endif sps.setNoDepQuantConstraintFlag(!m_DepQuantEnabledFlag); sps.setNoSignDataHidingConstraintFlag(!m_SignDataHidingEnabledFlag); ProfileTierLevel& profileTierLevel = *sps.getPTL()->getGeneralPTL(); diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index c181e48c19766e116a9aefd18033be5f011183c2..dd0556961ab634b3638ea0d51bd7535e0b009b47 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -573,16 +573,31 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) WRITE_CODE(pcSPS->getMaxChromaFormatConstraintIdc(), 2, "max_chroma_format_constraint_idc"); WRITE_FLAG(pcSPS->getFrameConstraintFlag() ? 1 : 0, "frame_only_constraint_flag"); WRITE_FLAG(pcSPS->getNoQtbttDualTreeIntraConstraintFlag() ? 1 : 0, "no_qtbtt_dual_tree_intra_constraint_flag"); - WRITE_FLAG(pcSPS->getNoCclmConstraintFlag() ? 1 : 0, "no_cclm_constraint_flag"); WRITE_FLAG(pcSPS->getNoSaoConstraintFlag() ? 1 : 0, "no_sao_constraint_flag"); WRITE_FLAG(pcSPS->getNoAlfConstraintFlag() ? 1 : 0, "no_alf_constraint_flag"); WRITE_FLAG(pcSPS->getNoPcmConstraintFlag() ? 1 : 0, "no_pcm_constraint_flag"); +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + WRITE_FLAG(pcSPS->getNoRefWraparoundConstraintFlag() ? 1 : 0, "no_ref_wraparound_constraint_flag"); +#endif WRITE_FLAG(pcSPS->getNoTemporalMvpConstraintFlag() ? 1 : 0, "no_temporal_mvp_constraint_flag"); WRITE_FLAG(pcSPS->getNoSbtmvpConstraintFlag() ? 1 : 0, "no_sbtmvp_constraint_flag"); WRITE_FLAG(pcSPS->getNoAmvrConstraintFlag() ? 1 : 0, "no_amvr_constraint_flag"); - WRITE_FLAG(pcSPS->getNoAffineMotionConstraintFlag() ? 1 : 0, "no_affine_motion_constraint_flag"); +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + WRITE_FLAG(pcSPS->getNoBdofConstraintFlag() ? 1 : 0, "no_bdof_constraint_flag"); +#endif + WRITE_FLAG(pcSPS->getNoCclmConstraintFlag() ? 1 : 0, "no_cclm_constraint_flag"); WRITE_FLAG(pcSPS->getNoMtsConstraintFlag() ? 1 : 0, "no_mts_constraint_flag"); + WRITE_FLAG(pcSPS->getNoAffineMotionConstraintFlag() ? 1 : 0, "no_affine_motion_constraint_flag"); +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + WRITE_FLAG(pcSPS->getNoGbiConstraintFlag() ? 1 : 0, "no_gbi_constraint_flag"); + WRITE_FLAG(pcSPS->getNoMhIntraConstraintFlag() ? 1 : 0, "no_mh_intra_constraint_flag"); + WRITE_FLAG(pcSPS->getNoTriangleConstraintFlag() ? 1 : 0, "no_triangle_constraint_flag"); +#endif WRITE_FLAG(pcSPS->getNoLadfConstraintFlag() ? 1 : 0, "no_ladf_constraint_flag"); +#if JVET_M0451_INTEROPERABILITY_POINT_SYNTAX + WRITE_FLAG(pcSPS->getNoCurrPicRefConstraintFlag() ? 1 : 0, "no_curr_pic_ref_constraint_flag"); + WRITE_FLAG(pcSPS->getNoQpDeltaConstraintFlag() ? 1 : 0, "no_qp_delta_constraint_flag"); +#endif WRITE_FLAG(pcSPS->getNoDepQuantConstraintFlag() ? 1 : 0, "no_dep_quant_constraint_flag"); WRITE_FLAG(pcSPS->getNoSignDataHidingConstraintFlag() ? 1 : 0, "no_sign_data_hiding_constraint_flag");