From 1bce9a75d21ed51b9b8aaa1631a74dad23c34563 Mon Sep 17 00:00:00 2001 From: zhipin <zhipin.deng@intel.com> Date: Thu, 14 Feb 2019 18:44:40 +0800 Subject: [PATCH] add M0451 the interoperability syntax update --- source/Lib/CommonLib/Slice.cpp | 21 ++++++++++-- source/Lib/CommonLib/Slice.h | 53 ++++++++++++++++++++++++----- source/Lib/CommonLib/TypeDef.h | 2 ++ source/Lib/DecoderLib/VLCReader.cpp | 19 +++++++++-- source/Lib/EncoderLib/EncCfg.h | 49 ++++++++++++++++++++++---- source/Lib/EncoderLib/EncLib.cpp | 19 +++++++++-- source/Lib/EncoderLib/VLCWriter.cpp | 19 +++++++++-- 7 files changed, 159 insertions(+), 23 deletions(-) diff --git a/source/Lib/CommonLib/Slice.cpp b/source/Lib/CommonLib/Slice.cpp index aad5fb3f..89f48f36 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 2a0abb84..b7a8084d 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 e4da03d0..b77ddfde 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 2f740018..c184c2df 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 6a89a07f..3bf9fe72 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 5d3ba203..86220ff6 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 c181e48c..dd055696 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"); -- GitLab