diff --git a/doc/software-manual.tex b/doc/software-manual.tex index 5140b2ed6948fbcaa5f091699416160f76c5335f..ce3a86419367867f2cd7bb0b0ada75ff01f62442 100644 --- a/doc/software-manual.tex +++ b/doc/software-manual.tex @@ -1000,40 +1000,88 @@ For --profile=main-RExt, specifies the value to use to derive the general_max_bi For --profile=main-RExt, specifies the chroma-format to use for the general profile constraints for RExt profiles; when 0, use the value of ChromaFormatIDC. \\ -\Option{IntraConstraintFlag} & +\Option{GciPresentFlag} & +%\ShortOption{\None} & +\Default{1} & +Specifies the value of gci_present_flag +\\ + +\Option{IntraOnlyConstraintFlag} & %\ShortOption{\None} & \Default{false} & -For --profile=main-RExt, specifies the value of general_intra_constraint_flag to use for RExt profiles. +Specifies the value of gci_intra_only_constraint_flag +\\ + +\Option{AllLayersIndependentConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of all_layers_independent_constraint_flag \\ \Option{OnePictureOnlyConstraintFlag} & %\ShortOption{\None} & \Default{false} & -Specifies the value of general_one_picture_only_constraint_flag. +Specifies the value of general_one_picture_only_constraint_flag \\ -\Option{LowerBitRateConstraintFlag} & +\Option{MaxBitDepthConstraintIdc} & %\ShortOption{\None} & -\Default{true} & -Specifies the value of general_lower_bit_constraint_flag to use for RExt profiles. +\Default{16} & +Specifies the value of 16 minus gci_sixteen_minus_max_bitdepth_constraint_idc \\ -\Option{NoResChangeInClvsConstraintFlag} & +\Option{MaxChromaFormatConstraintIdc} & +%\ShortOption{\None} & +\Default{3} & +Specifies the value of 3 minus gci_three_minus_max_chroma_format_constraint_idc +\\ + +\Option{TrailConstraintFlag} & %\ShortOption{\None} & \Default{false} & -Specifies the value of no_res_change_in_clvs_constraint_flag +Specifies the value of gci_no_trail_constraint_flag \\ -\Option{SingleLayerConstraintFlag} & +\Option{StsaConstraintFlag} & %\ShortOption{\None} & \Default{false} & -Specifies the value of single_layer_constraint_flag +Specifies the value of gci_no_stsa_constraint_flag \\ -\Option{AllLayersIndependentConstraintFlag} & +\Option{RaslConstraintFlag} & %\ShortOption{\None} & \Default{false} & -Specifies the value of all_layers_independent_constraint_flag +Specifies the value of gci_no_rasl_constraint_flag +\\ + +\Option{RadlConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_radl_constraint_flag +\\ + +\Option{IdrConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_idr_constraint_flag +\\ + +\Option{CraConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_cra_constraint_flag +\\ + +\Option{GdrConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_gdr_constraint_flag +\\ + +\Option{ApsConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_aps_constraint_flag \\ \Option{OneTilePerPicConstraintFlag} & @@ -1060,24 +1108,252 @@ Specifies the value of one_slice_per_pic_constraint_flag Specifies the value of one_subpic_per_pic_constraint_flag \\ +\Option{PartitionConstraintsOverrideConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_partition_constraints_override_constraint_flag +\\ + +\Option{QtbttDualTreeIntraConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_qtbtt_dual_tree_intra_constraint_flag +\\ + +\Option{PaletteConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_palette_constraint_flag +\\ + +\Option{IbcConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_ibc_constraint_flag +\\ + +\Option{IspConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_isp_constraint_flag +\\ + +\Option{MrlConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_mrl_constraint_flag +\\ + +\Option{MipConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_mip_constraint_flag +\\ + +\Option{CclmConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_cclm_constraint_flag +\\ + +\Option{NoResChangeInClvsConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_res_change_in_clvs_constraint_flag +\\ + +\Option{RefWraparoundConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_ref_wraparound_constraint_flag +\\ + +\Option{TemporalMvpConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_temporal_mvp_constraint_flag +\\ + +\Option{SbtmvpConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_sbtmvp_constraint_flag +\\ + +\Option{AmvrConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_amvr_constraint_flag +\\ + +\Option{SmvdConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_smvd_constraint_flag +\\ + +\Option{BdofConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_bdof_constraint_flag +\\ + +\Option{DmvrConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_dmvr_constraint_flag +\\ + +\Option{MmvdConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_mmvd_constraint_flag +\\ + +\Option{AffineMotionConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_affine_motion_constraint_flag +\\ + +\Option{ProfConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_prof_constraint_flag +\\ + +\Option{BcwConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_bcw_constraint_flag +\\ + +\Option{CiipConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_ciip_constraint_flag +\\ + +\Option{GpmConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_gpm_constraint_flag +\\ + +\Option{TransformSkipConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_transform_skip_constraint_flag +\\ + +\Option{BDPCMConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_bdpcm_constraint_flag +\\ + +\Option{MtsConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_mts_constraint_flag +\\ + +\Option{LfnstConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_lfnst_constraint_flag +\\ + +\Option{JointCbCrConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_joint_cbcr_constraint_flag +\\ + +\Option{SbtConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_sbt_constraint_flag +\\ + +\Option{ActConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_act_constraint_flag +\\ + \Option{ExplicitScaleListConstraintFlag} & %\ShortOption{\None} & \Default{false} & Specifies the value of gci_no_explicit_scaling_list_constraint_flag \\ +\Option{DepQuantConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_dep_quant_constraint_flag +\\ + +\Option{SignDataHidingConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_sign_data_hiding_constraint_flag +\\ + +\Option{QpDeltaConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_cu_qp_delta_constraint_flag +\\ + +\Option{SaoConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_sao_constraint_flag +\\ + +\Option{AlfConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_alf_constraint_flag +\\ + +\Option{CCAlfConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_ccalf_constraint_flag +\\ + +\Option{LmcsConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_lmcs_constraint_flag +\\ + +\Option{LadfConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of gci_no_ladf_constraint_flag +\\ + \Option{VirtualBoundaryConstraintFlag} & %\ShortOption{\None} & \Default{false} & Specifies the value of gci_no_virtual_boundaries_constraint_flag \\ -\Option{FrameOnly} & + +\Option{SingleLayerConstraintFlag} & +%\ShortOption{\None} & +\Default{false} & +Specifies the value of single_layer_constraint_flag +\\ + +\Option{FrameOnlyConstraintFlag} & %\ShortOption{\None} & \Default{false} & Specifies the value of general_frame_only_constraint_flag \\ - \end{OptionTableNoShorthand} @@ -2924,7 +3200,7 @@ Specifies the value of general_progressive_source_flag \Default{false} & Specifies the value of general_interlaced_source_flag \\ -\Option{NonPackedSource} & +\Option{NonPackedSourceConstraintFlag} & %\ShortOption{\None} & \Default{false} & Specifies the value of general_non_packed_constraint_flag diff --git a/source/App/EncoderApp/EncApp.cpp b/source/App/EncoderApp/EncApp.cpp index a233449ee328521704ef1199ba1ebc32a0c66eff..8255d06f0ece9cda6d76e26262d45ea43e09f83a 100644 --- a/source/App/EncoderApp/EncApp.cpp +++ b/source/App/EncoderApp/EncApp.cpp @@ -242,13 +242,8 @@ void EncApp::xInitLibCfg() //====== SPS constraint flags ======= #if JVET_S0179_CONDITIONAL_SIGNAL_GCI - m_cEncLib.setGciPresentFlag (true); + m_cEncLib.setGciPresentFlag ( m_gciPresentFlag ); #endif -//#if JVET_S0094_CHROMAFORMAT_BITDEPTH_CONSTRAINT -// m_cEncLib.setMaxBitDepthConstraintIdc ( m_bitDepthConstraint ); -//#else -// m_cEncLib.setMaxBitDepthConstraintIdc ( m_bitDepthConstraint - 8 ); -//#endif if (m_cEncLib.getGciPresentFlag()) { m_cEncLib.setNonPackedConstraintFlag(m_nonPackedConstraintFlag); @@ -260,8 +255,8 @@ void EncApp::xInitLibCfg() m_cEncLib.setFrameOnlyConstraintFlag(m_frameOnlyConstraintFlag); m_cEncLib.setOnePictureOnlyConstraintFlag(m_onePictureOnlyConstraintFlag); m_cEncLib.setIntraOnlyConstraintFlag(m_intraOnlyConstraintFlag); - m_cEncLib.setNoIdrConstraintFlag(m_noIdrConstraintFlag); // Not yet possible to encode bitstream starting with a GDR picture - m_cEncLib.setNoGdrConstraintFlag(m_noGdrConstraintFlag); // Not yet possible to encode GDR using config parameters + m_cEncLib.setNoIdrConstraintFlag(m_noIdrConstraintFlag); + m_cEncLib.setNoGdrConstraintFlag(m_noGdrConstraintFlag); m_cEncLib.setSingleLayerConstraintFlag(m_singleLayerConstraintFlag); m_cEncLib.setAllLayersIndependentConstraintFlag(m_allLayersIndependentConstraintFlag); m_cEncLib.setNoQpDeltaConstraintFlag(m_bNoQpDeltaConstraintFlag); @@ -285,10 +280,10 @@ void EncApp::xInitLibCfg() CHECK(m_noResChangeInClvsConstraintFlag && m_resChangeInClvsEnabled, "Resolution change in CLVS shall be deactivated when m_noResChangeInClvsConstraintFlag is equal to 1"); m_cEncLib.setMaxBitDepthConstraintIdc(m_maxBitDepthConstraintIdc); - CHECK(m_maxBitDepthConstraintIdc < m_bitDepthConstraint - 8, "Bit depth minus 8 shall be less than m_maxBitDepthConstraintIdc"); + CHECK(m_internalBitDepth[CHANNEL_TYPE_LUMA] > m_maxBitDepthConstraintIdc, "Internal bit depth shall be less than or equal to m_maxBitDepthConstraintIdc"); m_cEncLib.setMaxChromaFormatConstraintIdc(m_maxChromaFormatConstraintIdc); - CHECK(m_maxChromaFormatConstraintIdc < m_chromaFormatConstraint, "Chroma format Idc shall be less than m_maxBitDepthConstraintIdc"); + CHECK(m_chromaFormatIDC > m_maxChromaFormatConstraintIdc, "Chroma format Idc shall be less than or equal to m_maxBitDepthConstraintIdc"); m_cEncLib.setNoQtbttDualTreeIntraConstraintFlag(m_bNoQtbttDualTreeIntraConstraintFlag); CHECK(m_bNoQtbttDualTreeIntraConstraintFlag && m_dualTree, "Dual tree shall be deactivated when m_bNoQtbttDualTreeIntraConstraintFlag is equal to 1"); @@ -401,7 +396,7 @@ void EncApp::xInitLibCfg() #if JVET_S0050_GCI m_cEncLib.setNoExplicitScaleListConstraintFlag(m_noExplicitScaleListConstraintFlag); CHECK(m_noExplicitScaleListConstraintFlag && m_useScalingListId != SCALING_LIST_OFF, "Explicit scaling list shall be deactivated when m_noExplicitScaleListConstraintFlag is equal to 1"); - + m_cEncLib.setNoVirtualBoundaryConstraintFlag(m_noVirtualBoundaryConstraintFlag); CHECK(m_noVirtualBoundaryConstraintFlag && m_virtualBoundariesEnabledFlag, "Virtuall boundaries shall be deactivated when m_noVirtualBoundaryConstraintFlag is equal to 1"); #endif @@ -420,8 +415,8 @@ void EncApp::xInitLibCfg() m_cEncLib.setFrameOnlyConstraintFlag(false); m_cEncLib.setOnePictureOnlyConstraintFlag(false); m_cEncLib.setIntraOnlyConstraintFlag(false); - m_cEncLib.setMaxBitDepthConstraintIdc(8); - m_cEncLib.setMaxChromaFormatConstraintIdc(CHROMA_444); + m_cEncLib.setMaxBitDepthConstraintIdc(16); + m_cEncLib.setMaxChromaFormatConstraintIdc(3); m_cEncLib.setNoQtbttDualTreeIntraConstraintFlag(false); m_cEncLib.setNoPartitionConstraintsOverrideConstraintFlag(false); m_cEncLib.setNoSaoConstraintFlag(false); diff --git a/source/App/EncoderApp/EncAppCfg.cpp b/source/App/EncoderApp/EncAppCfg.cpp index 3bd23b720ce75dc72236b5d9779f42897f5de362..c08061e802b92600dc5428c3cb8bda18708f0b4e 100644 --- a/source/App/EncoderApp/EncAppCfg.cpp +++ b/source/App/EncoderApp/EncAppCfg.cpp @@ -81,60 +81,6 @@ EncAppCfg::EncAppCfg() , m_snrInternalColourSpace(false) , m_outputInternalColourSpace(false) , m_packedYUVMode(false) -#if JVET_S0179_CONDITIONAL_SIGNAL_GCI -, m_gciPresentFlag(true) -#endif -, m_bIntraOnlyConstraintFlag(false) -, m_maxBitDepthConstraintIdc(0) -, m_maxChromaFormatConstraintIdc(CHROMA_420) -, m_bFrameConstraintFlag(false) -, m_singleLayerConstraintFlag(false) -, m_allLayersIndependentConstraintFlag(false) -, m_noMrlConstraintFlag(false) -, m_noIspConstraintFlag(false) -, m_noMipConstraintFlag(false) -, m_noLfnstConstraintFlag(false) -, m_noMmvdConstraintFlag(false) -, m_noSmvdConstraintFlag(false) -, m_noProfConstraintFlag(false) -, m_noPaletteConstraintFlag(false) -, m_noActConstraintFlag(false) -, m_noLmcsConstraintFlag(false) -, m_bNoQtbttDualTreeIntraConstraintFlag(false) -, m_noPartitionConstraintsOverrideConstraintFlag(false) -, m_bNoSaoConstraintFlag(false) -, m_bNoAlfConstraintFlag(false) -, m_noCCAlfConstraintFlag(false) -, m_bNoRefWraparoundConstraintFlag(false) -, m_bNoTemporalMvpConstraintFlag(false) -, m_bNoSbtmvpConstraintFlag(false) -, m_bNoAmvrConstraintFlag(false) -, m_bNoBdofConstraintFlag(false) -, m_noDmvrConstraintFlag(false) -, m_bNoCclmConstraintFlag(false) -, m_bNoMtsConstraintFlag(false) -, m_noSbtConstraintFlag(false) -, m_bNoAffineMotionConstraintFlag(false) -, m_bNoBcwConstraintFlag(false) -, m_noIbcConstraintFlag(false) -, m_bNoCiipConstraintFlag(false) -, m_noGeoConstraintFlag(false) -, m_bNoLadfConstraintFlag(false) -, m_noTransformSkipConstraintFlag(false) -, m_noBDPCMConstraintFlag(false) -, m_noJointCbCrConstraintFlag(false) -, m_bNoQpDeltaConstraintFlag(false) -, m_bNoDepQuantConstraintFlag(false) -, m_bNoSignDataHidingConstraintFlag(false) -, m_noTrailConstraintFlag(false) -, m_noStsaConstraintFlag(false) -, m_noRaslConstraintFlag(false) -, m_noRadlConstraintFlag(false) -, m_noIdrConstraintFlag(false) -, m_noCraConstraintFlag(false) -, m_noGdrConstraintFlag(false) -, m_noApsConstraintFlag(false) - #if EXTENSION_360_VIDEO , m_ext360(*this) #endif @@ -820,29 +766,77 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) ("Tier", m_levelTier, Level::MAIN, "Tier to use for interpretation of --Level (main or high only)") ("SubProfile", cfg_SubProfile, cfg_SubProfile, "Sub-profile idc") ("EnableDecodingCapabilityInformation", m_DCIEnabled, false, "Enables writing of Decoding Capability Information") - //("MaxBitDepthConstraint", m_bitDepthConstraint, 0u, "Bit depth to use for profile-constraint for RExt profiles. 0=automatically choose based upon other parameters") - //("MaxChromaFormatConstraint", tmpConstraintChromaFormat, 0, "Chroma-format to use for the profile-constraint for RExt profiles. 0=automatically choose based upon other parameters") - ("GciPresentFlag", m_gciPresentFlag, true, "GCI field present") - ("MaxBitDepthConstraintIdc", m_maxBitDepthConstraintIdc, 8u, "Indicate that bit_depth_minus8 shall be in the range of 0 to max_bitdepth_constraint_idc") - ("MaxChromaFormatConstraintIdc", m_maxChromaFormatConstraintIdc, 3u, "Indicate that chroma_format_idc shall be in the range of 0 to max_chroma_format_constraint_idc") + ("MaxBitDepthConstraint", m_bitDepthConstraint, 0u, "Bit depth to use for profile-constraint for RExt profiles. 0=automatically choose based upon other parameters") + ("MaxChromaFormatConstraint", tmpConstraintChromaFormat, 0, "Chroma-format to use for the profile-constraint for RExt profiles. 0=automatically choose based upon other parameters") + + ("GciPresentFlag", m_gciPresentFlag, false, "GCI field present") + ("IntraOnlyConstraintFlag", m_intraOnlyConstraintFlag, false, "Value of intra_only_constraint_flag") + ("AllLayersIndependentConstraintFlag", m_allLayersIndependentConstraintFlag, false, "Indicate that all layers are independent") ("OnePictureOnlyConstraintFlag", m_onePictureOnlyConstraintFlag, false, "Value of general_intra_constraint_flag. Can only be used for single frame encodings. Will be set to true for still picture profiles") - ("IntraOnlyConstraintFlag", m_intraOnlyConstraintFlag, false, "Value of intra_only_constraint_flag") -#if !JVET_S0266_VUI_length - ("NonPackedSourceConstraintFlag", m_nonPackedConstraintFlag, false, "Indicate that source does not contain frame packing") - ("NonProjectedConstraintFlag", m_nonProjectedConstraintFlag, false, "Indicate that the bitstream contains projection SEI messages") -#endif - ("NoResChangeInClvsConstraintFlag", m_noResChangeInClvsConstraintFlag, false, "Indicate that the picture spatial resolution does not change within any CLVS referring to the SPS") - ("SingleLayerConstraintFlag", m_singleLayerConstraintFlag, false, "Indicate that the bitstream contains only one layer") - ("AllLayersIndependentConstraintFlag", m_allLayersIndependentConstraintFlag, false, "Indicate that all layers are independent") + ("MaxBitDepthConstraintIdc", m_maxBitDepthConstraintIdc, 16u, "Indicate that bit_depth_minus8 plus 8 shall be in the range of 0 to m_maxBitDepthConstraintIdc") + ("MaxChromaFormatConstraintIdc", m_maxChromaFormatConstraintIdc, 3, "Indicate that chroma_format_idc shall be in the range of 0 to m_maxChromaFormatConstraintIdc") + ("TrailConstraintFlag", m_noTrailConstraintFlag, false, "Indicate that TRAIL is deactivated") + ("StsaConstraintFlag", m_noStsaConstraintFlag, false, "Indicate that STSA is deactivated") + ("RaslConstraintFlag", m_noRaslConstraintFlag, false, "Indicate that RSAL is deactivated") + ("RadlConstraintFlag", m_noRadlConstraintFlag, false, "Indicate that RADL is deactivated") + ("IdrConstraintFlag", m_noIdrConstraintFlag, false, "Indicate that IDR is deactivated") + ("CraConstraintFlag", m_noCraConstraintFlag, false, "Indicate that CRA is deactivated") + ("GdrConstraintFlag", m_noGdrConstraintFlag, false, "Indicate that GDR is deactivated") + ("ApsConstraintFlag", m_noApsConstraintFlag, false, "Indicate that APS is deactivated") ("OneTilePerPicConstraintFlag", m_oneTilePerPicConstraintFlag, false, "Indicate that each picture shall contain only one tile") ("PicHeaderInSliceHeaderConstraintFlag", m_picHeaderInSliceHeaderConstraintFlag, false, "Indicate that picture header is present in slice header") ("OneSlicePerPicConstraintFlag", m_oneSlicePerPicConstraintFlag, false, "Indicate that each picture shall contain only one slice") ("OneSubpicPerPicConstraintFlag", m_oneSubpicPerPicConstraintFlag, false, "Indicate that each picture shall contain only one subpicture") - ("FrameOnly", m_frameOnlyConstraintFlag, false, "Indicate that the bitstream contains only frames") + ("PartitionConstraintsOverrideConstraintFlag", m_noPartitionConstraintsOverrideConstraintFlag, false, "Indicate that Partition Override is deactivated") + ("QtbttDualTreeIntraConstraintFlag", m_bNoQtbttDualTreeIntraConstraintFlag, false, "Indicate that Qtbtt DualTree Intra is deactivated") + ("PaletteConstraintFlag", m_noPaletteConstraintFlag, false, "Indicate that PLT is deactivated") + ("IbcConstraintFlag", m_noIbcConstraintFlag, false, "Indicate that IBC is deactivated") + ("IspConstraintFlag", m_noIspConstraintFlag, false, "Indicate that ISP is deactivated") + ("MrlConstraintFlag", m_noMrlConstraintFlag, false, "Indicate that MRL is deactivated") + ("MipConstraintFlag", m_noMipConstraintFlag, false, "Indicate that MIP is deactivated") + ("CclmConstraintFlag", m_bNoCclmConstraintFlag, false, "Indicate that CCLM is deactivated") + ("NoResChangeInClvsConstraintFlag", m_noResChangeInClvsConstraintFlag, false, "Indicate that the picture spatial resolution does not change within any CLVS referring to the SPS") + ("RefWraparoundConstraintFlag", m_bNoRefWraparoundConstraintFlag, false, "Indicate that Reference Wraparound is deactivated") + ("TemporalMvpConstraintFlag", m_bNoTemporalMvpConstraintFlag, false, "Indicate that temporal MVP is deactivated") + ("SbtmvpConstraintFlag", m_bNoSbtmvpConstraintFlag, false, "Indicate that SbTMVP is deactivated") + ("AmvrConstraintFlag", m_bNoAmvrConstraintFlag, false, "Indicate that AMVR is deactivated") + ("SmvdConstraintFlag", m_noSmvdConstraintFlag, false, "Indicate that SMVD is deactivated") + ("BdofConstraintFlag", m_bNoBdofConstraintFlag, false, "Indicate that BIO is deactivated") + ("DmvrConstraintFlag", m_noDmvrConstraintFlag, false, "Indicate that DMVR is deactivated") + ("MmvdConstraintFlag", m_noMmvdConstraintFlag, false, "Indicate that MMVD is deactivated") + ("AffineMotionConstraintFlag", m_bNoAffineMotionConstraintFlag, false, "Indicate that Affine is deactivated") + ("ProfConstraintFlag", m_noProfConstraintFlag, false, "Indicate that PROF is deactivated") + ("BcwConstraintFlag", m_bNoBcwConstraintFlag, false, "Indicate that BCW is deactivated") + ("CiipConstraintFlag", m_bNoCiipConstraintFlag, false, "Indicate that CIIP is deactivated") + ("GpmConstraintFlag", m_noGeoConstraintFlag, false, "Indicate that GPM is deactivated") + ("TransformSkipConstraintFlag", m_noTransformSkipConstraintFlag, false, "Indicate that Transform Skip is deactivated") + ("BDPCMConstraintFlag", m_noBDPCMConstraintFlag, false, "Indicate that BDPCM is deactivated") + ("MtsConstraintFlag", m_bNoMtsConstraintFlag, false, "Indicate that MTS is deactivated") + ("LfnstConstraintFlag", m_noLfnstConstraintFlag, false, "Indicate that LFNST is deactivated") + ("JointCbCrConstraintFlag", m_noJointCbCrConstraintFlag, false, "Indicate that JCCR is deactivated") + ("SbtConstraintFlag", m_noSbtConstraintFlag, false, "Indicate that SBT is deactivated") + ("ActConstraintFlag", m_noActConstraintFlag, false, "Indicate that ACT is deactivated") #if JVET_S0050_GCI ("ExplicitScaleListConstraintFlag", m_noExplicitScaleListConstraintFlag, false, "Indicate that explicit scaling list is deactivated") +#endif + ("DepQuantConstraintFlag", m_bNoDepQuantConstraintFlag, false, "Indicate that DQ is deactivated") + ("SignDataHidingConstraintFlag", m_bNoSignDataHidingConstraintFlag, false, "Indicate that SDH is deactivated") + ("QpDeltaConstraintFlag", m_bNoQpDeltaConstraintFlag, false, "Indicate that QPdelta is deactivated") + ("SaoConstraintFlag", m_bNoSaoConstraintFlag, false, "Indicate that SAO is deactivated") + ("AlfConstraintFlag", m_bNoAlfConstraintFlag, false, "Indicate that ALF is deactivated") + ("CCAlfConstraintFlag", m_noCCAlfConstraintFlag, false, "Indicate that CCALF is deactivated") + ("LmcsConstraintFlag", m_noLmcsConstraintFlag, false, "Indicate that LMCS is deactivated") + ("LadfConstraintFlag", m_bNoLadfConstraintFlag, false, "Indicate that LADF is deactivated") +#if JVET_S0050_GCI ("VirtualBoundaryConstraintFlag", m_noVirtualBoundaryConstraintFlag, false, "Indicate that virtual boundary is deactivated") #endif + ("SingleLayerConstraintFlag", m_singleLayerConstraintFlag, false, "Indicate that the bitstream contains only one layer") + ("FrameOnlyConstraintFlag", m_frameOnlyConstraintFlag, false, "Indicate that the bitstream contains only frames") + #if !JVET_S0266_VUI_length + ("NonPackedSourceConstraintFlag", m_nonPackedConstraintFlag, false, "Indicate that source does not contain frame packing") + ("NonProjectedConstraintFlag", m_nonProjectedConstraintFlag, false, "Indicate that the bitstream contains projection SEI messages") +#endif + ("CTUSize", m_uiCTUSize, 128u, "CTUSize (specifies the CTU size if QTBT is on) [default: 128]") ("Log2MinCuSize", m_log2MinCuSize, 2u, "Log2 min CU size") ("SubPicInfoPresentFlag", m_subPicInfoPresentFlag, false, "equal to 1 specifies that subpicture parameters are present in in the SPS RBSP syntax") @@ -1193,7 +1187,7 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) ("ProgressiveSource", m_progressiveSourceFlag, false, "Indicate that source is progressive") ("InterlacedSource", m_interlacedSourceFlag, false, "Indicate that source is interlaced") #if JVET_S0266_VUI_length - ("NonPackedSource", m_nonPackedConstraintFlag, false, "Indicate that source does not contain frame packing") + ("NonPackedSourceConstraintFlag", m_nonPackedConstraintFlag, false, "Indicate that source does not contain frame packing") ("NonProjectedConstraintFlag", m_nonProjectedConstraintFlag, false, "Indicate that the bitstream contains projection SEI messages") #endif ("ChromaLocInfoPresent", m_chromaLocInfoPresentFlag, false, "Signals whether chroma_sample_loc_type_top_field and chroma_sample_loc_type_bottom_field are present") diff --git a/source/App/EncoderApp/EncAppCfg.h b/source/App/EncoderApp/EncAppCfg.h index cfee5334e85dde083624eb890058c3677be33365..8124d782fa2abc2ba5e51b1139834b92ead9afa6 100644 --- a/source/App/EncoderApp/EncAppCfg.h +++ b/source/App/EncoderApp/EncAppCfg.h @@ -136,8 +136,7 @@ protected: #endif bool m_bIntraOnlyConstraintFlag; uint32_t m_maxBitDepthConstraintIdc; - uint32_t m_maxChromaFormatConstraintIdc; - bool m_bFrameConstraintFlag; + int m_maxChromaFormatConstraintIdc; bool m_singleLayerConstraintFlag; bool m_allLayersIndependentConstraintFlag; bool m_noMrlConstraintFlag; diff --git a/source/Lib/CommonLib/Slice.h b/source/Lib/CommonLib/Slice.h index 76d78a7eb0db616fdb77e024b360f49223ffede5..fc74bdd09a1ba5aa3491a363bf7315ee82b10475 100644 --- a/source/Lib/CommonLib/Slice.h +++ b/source/Lib/CommonLib/Slice.h @@ -250,7 +250,7 @@ class ConstraintInfo bool m_frameOnlyConstraintFlag; bool m_intraOnlyConstraintFlag; uint32_t m_maxBitDepthConstraintIdc; - ChromaFormat m_maxChromaFormatConstraintIdc; + int m_maxChromaFormatConstraintIdc; bool m_onePictureOnlyConstraintFlag; bool m_lowerBitRateConstraintFlag; @@ -406,8 +406,8 @@ public: uint32_t getMaxBitDepthConstraintIdc() const { return m_maxBitDepthConstraintIdc; } void setMaxBitDepthConstraintIdc(uint32_t bitDepth) { m_maxBitDepthConstraintIdc = bitDepth; } - ChromaFormat getMaxChromaFormatConstraintIdc() const { return m_maxChromaFormatConstraintIdc; } - void setMaxChromaFormatConstraintIdc(ChromaFormat fmt) { m_maxChromaFormatConstraintIdc = fmt; } + int getMaxChromaFormatConstraintIdc() const { return m_maxChromaFormatConstraintIdc; } + void setMaxChromaFormatConstraintIdc(int fmt) { m_maxChromaFormatConstraintIdc = fmt; } #if !JVET_S0266_VUI_length bool getNonProjectedConstraintFlag() const { return m_nonProjectedConstraintFlag; } diff --git a/source/Lib/EncoderLib/EncCfg.h b/source/Lib/EncoderLib/EncCfg.h index 5dc6b259e7a772a80ce9cb86a982d4138e4eb89b..f004c8078d394a25a11206eecf65e570aea74613 100644 --- a/source/Lib/EncoderLib/EncCfg.h +++ b/source/Lib/EncoderLib/EncCfg.h @@ -181,8 +181,7 @@ protected: bool m_onePictureOnlyConstraintFlag; bool m_bIntraOnlyConstraintFlag; uint32_t m_maxBitDepthConstraintIdc; - uint32_t m_maxChromaFormatConstraintIdc; - bool m_bFrameConstraintFlag; + int m_maxChromaFormatConstraintIdc; bool m_singleLayerConstraintFlag; bool m_allLayersIndependentConstraintFlag; @@ -776,15 +775,12 @@ public: void setIntraOnlyConstraintFlag(bool bVal) { m_bIntraOnlyConstraintFlag = bVal; } uint32_t getMaxBitDepthConstraintIdc() const { return m_maxBitDepthConstraintIdc; } 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; } + int getMaxChromaFormatConstraintIdc() const { return m_maxChromaFormatConstraintIdc; } + void setMaxChromaFormatConstraintIdc(int u) { m_maxChromaFormatConstraintIdc = u; } #if JVET_S0179_CONDITIONAL_SIGNAL_GCI bool getGciPresentFlag() const { return m_gciPresentFlag; } void setGciPresentFlag(bool b) { m_gciPresentFlag = b; } #endif - bool getSingleLayerConstraintFlag() const { return m_singleLayerConstraintFlag; } void setSingleLayerConstraintFlag(bool bVal) { m_singleLayerConstraintFlag = bVal; } bool getAllLayersIndependentConstraintFlag() const { return m_allLayersIndependentConstraintFlag; } diff --git a/source/Lib/EncoderLib/EncLib.cpp b/source/Lib/EncoderLib/EncLib.cpp index 76da93b4a93617709c314bbccbc4551422bc2980..66b948eb7e205c200559424ed97003695454f06e 100644 --- a/source/Lib/EncoderLib/EncLib.cpp +++ b/source/Lib/EncoderLib/EncLib.cpp @@ -1132,7 +1132,7 @@ void EncLib::xInitSPS( SPS& sps ) cinfo->setOnePictureOnlyConstraintFlag(m_onePictureOnlyConstraintFlag); cinfo->setIntraOnlyConstraintFlag (m_intraOnlyConstraintFlag); cinfo->setMaxBitDepthConstraintIdc (m_maxBitDepthConstraintIdc); - cinfo->setMaxChromaFormatConstraintIdc((ChromaFormat)m_maxChromaFormatConstraintIdc); + cinfo->setMaxChromaFormatConstraintIdc((int)m_maxChromaFormatConstraintIdc); cinfo->setSingleLayerConstraintFlag (m_singleLayerConstraintFlag); cinfo->setAllLayersIndependentConstraintFlag (m_allLayersIndependentConstraintFlag); cinfo->setNoMrlConstraintFlag (m_noMrlConstraintFlag);