From ba6165296b7671f76ac768b845dc6e771377b978 Mon Sep 17 00:00:00 2001 From: Taoran Lu <tlu@dolby.com> Date: Thu, 6 Aug 2020 10:42:10 -0700 Subject: [PATCH] incorporate new GCI flags --- source/Lib/CommonLib/TypeDef.h | 4 ++-- source/Lib/DecoderLib/VLCReader.cpp | 8 ++++---- source/Lib/EncoderLib/VLCWriter.cpp | 16 ++++++++-------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index 056594713..4439996e7 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -160,8 +160,6 @@ // JVET-S0195: replace one_subpic_per_pic_constraint_flag with no_subpic_info_constraint_flag and its semantics // add no_idr_rpl_constraint_flag -#define JVET_S0105_GCI_REORDER_IN_CATEGORY 1 // JVET-S0105: reorder and categorize GCI flags (assumes the following macros set to 1: JVET_S0050_GCI, JVET_S0113_S0195_GCI, JVET_S0066_GCI, JVET_S0138_GCI_PTL) - #define JVET_S0182_RPL_SIGNALLING 1 // JVET-S0182: modifications to rpl information signalling #define JVET_S0185_PROPOSAl1_PICTURE_TIMING_CLEANUP 1 // JVET-S0185: Proposal 1, put syntax element pt_cpb_removal_delay_minus1[] first, followed by similar information for sub-layers, followed by pt_dpb_output_delay @@ -172,6 +170,8 @@ #define JVET_Q0114_ASPECT5_GCI_FLAG 1 // JVET-Q0114 Aspect 5: Add a general constraint on no reference picture resampling +#define JVET_S0105_GCI_REORDER_IN_CATEGORY 1 // JVET-S0105: reorder and categorize GCI flags (assumes the following macros set to 1: JVET_S0050_GCI, JVET_S0113_S0195_GCI, JVET_S0066_GCI, JVET_S0138_GCI_PTL, JVET_S0058_GCI, JVET_R0341_GCI, JVET_Q0114_ASPECT5_GCI_FLAG) + //########### place macros to be be kept below this line ############### #define JVET_S0257_DUMP_360SEI_MESSAGE 1 // Software support of 360 SEI messages diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index d4f4bfd03..2b0b40b7a 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -4684,7 +4684,7 @@ void HLSyntaxReader::parseConstraintInfo(ConstraintInfo *cinfo) /* CTU and block partitioning */ READ_CODE(2, symbol, "gci_three_minus_max_log2_ctu_size_constraint_idc"); cinfo->setMaxLog2CtuSizeConstraintIdc(((3 - symbol) + 5)); READ_FLAG(symbol, "gci_no_partition_constraints_override_constraint_flag"); cinfo->setNoPartitionConstraintsOverrideConstraintFlag(symbol > 0 ? true : false); - //placeholder for gci_no_mtt_constraint_flag ==> S0058 + READ_FLAG(symbol, "gci_no_mtt_constraint_flag"); cinfo->setNoMttConstraintFlag(symbol > 0 ? true : false); READ_FLAG(symbol, "gci_no_qtbtt_dual_tree_intra_constraint_flag"); cinfo->setNoQtbttDualTreeIntraConstraintFlag(symbol > 0 ? true : false); /* intra */ @@ -4696,9 +4696,9 @@ void HLSyntaxReader::parseConstraintInfo(ConstraintInfo *cinfo) READ_FLAG(symbol, "gci_no_cclm_constraint_flag"); cinfo->setNoCclmConstraintFlag(symbol > 0 ? true : false); /* inter */ - //placeholder for gci_no_ref_pic_resampling_constraint_flag ==> Q0114 + READ_FLAG(symbol, "gci_no_ref_pic_resampling_constraint_flag"); cinfo->setNoRprConstraintFlag(symbol > 0 ? true : false); READ_FLAG(symbol, "gci_no_res_change_in_clvs_constraint_flag"); cinfo->setNoResChangeInClvsConstraintFlag(symbol > 0 ? true : false); - //placeholder for gci_no_weighted_prediction_constraint_flag ==> S0058 + READ_FLAG(symbol, "gci_no_weighted_prediction_constraint_flag"); cinfo->setNoWeightedPredictionConstraintFlag(symbol > 0 ? true : false); READ_FLAG(symbol, "gci_no_ref_wraparound_constraint_flag"); cinfo->setNoRefWraparoundConstraintFlag(symbol > 0 ? true : false); READ_FLAG(symbol, "gci_no_temporal_mvp_constraint_flag"); cinfo->setNoTemporalMvpConstraintFlag(symbol > 0 ? true : false); READ_FLAG(symbol, "gci_no_sbtmvp_constraint_flag"); cinfo->setNoSbtmvpConstraintFlag(symbol > 0 ? true : false); @@ -4726,7 +4726,7 @@ void HLSyntaxReader::parseConstraintInfo(ConstraintInfo *cinfo) READ_FLAG(symbol, "gci_no_dep_quant_constraint_flag"); cinfo->setNoDepQuantConstraintFlag(symbol > 0 ? true : false); READ_FLAG(symbol, "gci_no_sign_data_hiding_constraint_flag"); cinfo->setNoSignDataHidingConstraintFlag(symbol > 0 ? true : false); READ_FLAG(symbol, "gci_no_cu_qp_delta_constraint_flag"); cinfo->setNoQpDeltaConstraintFlag(symbol > 0 ? true : false); - //placeholder for gci_no_chroma_qp_offset_constraint_flag ==> R0341 + READ_FLAG(symbol, "gci_no_chroma_qp_offset_constraint_flag"); cinfo->setNoChromaQpOffsetConstraintFlag(symbol > 0 ? true : false); /* loop filter */ READ_FLAG(symbol, "gci_no_sao_constraint_flag"); cinfo->setNoSaoConstraintFlag(symbol > 0 ? true : false); diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index fa62e34cc..68fb0f30f 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -2690,9 +2690,9 @@ void HLSWriter::codeConstraintInfo ( const ConstraintInfo* cinfo ) #endif #if JVET_S0105_GCI_REORDER_IN_CATEGORY /* general */ - WRITE_FLAG(cinfo->getIntraOnlyConstraintFlag(), "gci_intra_only_constraint_flag"); - WRITE_FLAG(cinfo->getAllLayersIndependentConstraintFlag(), "gci_all_layers_independent_constraint_flag"); - WRITE_FLAG(cinfo->getOnePictureOnlyConstraintFlag(), "gci_one_au_only_constraint_flag"); + WRITE_FLAG(cinfo->getIntraOnlyConstraintFlag() ? 1 : 0, "gci_intra_only_constraint_flag"); + WRITE_FLAG(cinfo->getAllLayersIndependentConstraintFlag() ? 1 : 0, "gci_all_layers_independent_constraint_flag"); + WRITE_FLAG(cinfo->getOnePictureOnlyConstraintFlag() ? 1 : 0, "gci_one_au_only_constraint_flag"); /* picture format */ WRITE_CODE(16 - cinfo->getMaxBitDepthConstraintIdc(), 4, "gci_sixteen_minus_max_bitdepth_constraint_idc"); @@ -2722,7 +2722,7 @@ void HLSWriter::codeConstraintInfo ( const ConstraintInfo* cinfo ) /* CTU and block partitioning */ WRITE_CODE(3 - (cinfo->getMaxLog2CtuSizeConstraintIdc() - 5), 2, "gci_three_minus_max_log2_ctu_size_constraint_idc"); WRITE_FLAG(cinfo->getNoPartitionConstraintsOverrideConstraintFlag() ? 1 : 0, "gci_no_partition_constraints_override_constraint_flag"); - //placeholder for gci_no_mtt_constraint_flag ==> S0058 + WRITE_FLAG(cinfo->getNoMttConstraintFlag() ? 1 : 0, "gci_no_mtt_constraint_flag"); WRITE_FLAG(cinfo->getNoQtbttDualTreeIntraConstraintFlag() ? 1 : 0, "gci_no_qtbtt_dual_tree_intra_constraint_flag"); /* intra */ @@ -2734,9 +2734,9 @@ void HLSWriter::codeConstraintInfo ( const ConstraintInfo* cinfo ) WRITE_FLAG(cinfo->getNoCclmConstraintFlag() ? 1 : 0, "gci_no_cclm_constraint_flag"); /* inter */ - //placeholder for gci_no_ref_pic_resampling_constraint_flag ==> Q0114 - WRITE_FLAG(cinfo->getNoResChangeInClvsConstraintFlag(), "gci_no_res_change_in_clvs_constraint_flag"); - //placeholder for gci_no_weighted_prediction_constraint_flag ==> S0058 + WRITE_FLAG(cinfo->getNoRprConstraintFlag() ? 1 : 0, "gci_no_ref_pic_resampling_constraint_flag"); + WRITE_FLAG(cinfo->getNoResChangeInClvsConstraintFlag() ? 1 : 0, "gci_no_res_change_in_clvs_constraint_flag"); + WRITE_FLAG(cinfo->getNoWeightedPredictionConstraintFlag() ? 1 : 0, "gci_no_weighted_prediction_constraint_flag"); WRITE_FLAG(cinfo->getNoRefWraparoundConstraintFlag() ? 1 : 0, "gci_no_ref_wraparound_constraint_flag"); WRITE_FLAG(cinfo->getNoTemporalMvpConstraintFlag() ? 1 : 0, "gci_no_temporal_mvp_constraint_flag"); WRITE_FLAG(cinfo->getNoSbtmvpConstraintFlag() ? 1 : 0, "gci_no_sbtmvp_constraint_flag"); @@ -2764,7 +2764,7 @@ void HLSWriter::codeConstraintInfo ( const ConstraintInfo* cinfo ) WRITE_FLAG(cinfo->getNoDepQuantConstraintFlag() ? 1 : 0, "gci_no_dep_quant_constraint_flag"); WRITE_FLAG(cinfo->getNoSignDataHidingConstraintFlag() ? 1 : 0, "gci_no_sign_data_hiding_constraint_flag"); WRITE_FLAG(cinfo->getNoQpDeltaConstraintFlag() ? 1 : 0, "gci_no_qp_delta_constraint_flag"); - //placeholder for gci_no_chroma_qp_offset_constraint_flag ==> R0341 + WRITE_FLAG(cinfo->getNoChromaQpOffsetConstraintFlag() ? 1 : 0, "gci_no_chroma_qp_offset_constraint_flag"); /* loop filter */ WRITE_FLAG(cinfo->getNoSaoConstraintFlag() ? 1 : 0, "gci_no_sao_constraint_flag"); -- GitLab