...
 
Commits (2)
......@@ -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
......
This diff is collapsed.
......@@ -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
......
......@@ -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);
......
......@@ -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; }
......
......@@ -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();
......
......@@ -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");
......