diff --git a/source/Lib/CommonLib/Slice.cpp b/source/Lib/CommonLib/Slice.cpp index ae76f0b235c9df40266be09d68754fb9860eb58d..90c90894a2aaf4652e35adb65dcb1b8058817cbc 100644 --- a/source/Lib/CommonLib/Slice.cpp +++ b/source/Lib/CommonLib/Slice.cpp @@ -2576,10 +2576,8 @@ SPS::SPS() , m_chromaFormatIdc (CHROMA_420) , m_separateColourPlaneFlag ( 0 ) , m_uiMaxTLayers ( 1) -#if JVET_P0117_PTL_SCALABILITY , m_ptlDpbHrdParamsPresentFlag (1) , m_SubLayerDpbParamsFlag (0) -#endif // Structure , m_maxWidthInLumaSamples (352) , m_maxHeightInLumaSamples (288) diff --git a/source/Lib/CommonLib/Slice.h b/source/Lib/CommonLib/Slice.h index 8d0d5de1a849eb1a5490e9337b7b6f492bd8a45a..76437b95e424e983b9fb54296cd19ff67a423da5 100644 --- a/source/Lib/CommonLib/Slice.h +++ b/source/Lib/CommonLib/Slice.h @@ -1309,10 +1309,8 @@ private: uint32_t m_uiMaxTLayers; // maximum number of temporal layers -#if JVET_P0117_PTL_SCALABILITY bool m_ptlDpbHrdParamsPresentFlag; bool m_SubLayerDpbParamsFlag; -#endif // Structure uint32_t m_maxWidthInLumaSamples; @@ -1767,12 +1765,10 @@ void setCCALFEnabledFlag( bool b ) uint32_t getMaxTLayers() const { return m_uiMaxTLayers; } void setMaxTLayers( uint32_t uiMaxTLayers ) { CHECK( uiMaxTLayers > MAX_TLAYER, "Invalid number T-layers" ); m_uiMaxTLayers = uiMaxTLayers; } -#if JVET_P0117_PTL_SCALABILITY bool getPtlDpbHrdParamsPresentFlag() const { return m_ptlDpbHrdParamsPresentFlag; } void setPtlDpbHrdParamsPresentFlag(bool b) { m_ptlDpbHrdParamsPresentFlag = b; } bool getSubLayerDpbParamsFlag() const { return m_SubLayerDpbParamsFlag; } void setSubLayerDpbParamsFlag(bool b) { m_SubLayerDpbParamsFlag = b; } -#endif bool getTemporalIdNestingFlag() const { return m_bTemporalIdNestingFlag; } void setTemporalIdNestingFlag( bool bValue ) { m_bTemporalIdNestingFlag = bValue; } diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index 556694bc3a16e0aa914ed64c499a8b6f74e2d3ae..ae13f4daf12adcc9d34aaa7bb5bcb931c8af4d0a 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -68,7 +68,6 @@ #define JVET_Q0471_CHROMA_QT_SPLIT 1 // JVET-Q0471: Chroma QT split -#define JVET_P0117_PTL_SCALABILITY 1 // JVET-P0117: sps_ptl_dpb_hrd_params_present_flag related syntax change, others in JVET-Q0786 #define JVET_Q0358_ALF_NALU_TID_CONSTRAINT 1 // JVET-Q0358: TemporalId constraint between ALF_APS NALU and the pic associated with PH diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 42fd6891d9d92cfde4fff4b9db6353d40d52e48d..b5e85badebc1b67cca442458765829fc764361a9 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -1390,7 +1390,6 @@ void HLSyntaxReader::parseOlsHrdParameters(GeneralHrdParams * generalHrd, OlsHrd } } -#if JVET_P0117_PTL_SCALABILITY void HLSyntaxReader::dpb_parameters(int maxSubLayersMinus1, bool subLayerInfoFlag, SPS *pcSPS) { uint32_t code; @@ -1404,7 +1403,6 @@ void HLSyntaxReader::dpb_parameters(int maxSubLayersMinus1, bool subLayerInfoFla pcSPS->setMaxLatencyIncreasePlus1(code, i); } } -#endif #if JVET_Q0400_EXTRA_BITS void HLSyntaxReader::parseExtraPHBitsStruct( SPS *sps, int numBytes ) @@ -1454,19 +1452,12 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) READ_CODE( 4, uiCode, "sps_video_parameter_set_id" ); pcSPS->setVPSId( uiCode ); READ_CODE(3, uiCode, "sps_max_sub_layers_minus1"); pcSPS->setMaxTLayers (uiCode + 1); CHECK(uiCode > 6, "Invalid maximum number of T-layer signalled"); -#if JVET_P0117_PTL_SCALABILITY READ_CODE(4, uiCode, "sps_reserved_zero_4bits"); CHECK(uiCode != 0, "sps_reserved_zero_4bits not equal to zero"); READ_FLAG(uiCode, "sps_ptl_dpb_hrd_params_present_flag"); pcSPS->setPtlDpbHrdParamsPresentFlag(uiCode); -#else - READ_CODE(5, uiCode, "sps_reserved_zero_5bits"); - CHECK(uiCode != 0, "sps_reserved_zero_5bits not equal to zero"); -#endif -#if JVET_P0117_PTL_SCALABILITY if (pcSPS->getPtlDpbHrdParamsPresentFlag()) { -#endif #if JVET_Q0786_PTL_only parseProfileTierLevel(pcSPS->getProfileTierLevel(), true, pcSPS->getMaxTLayers() - 1); @@ -1474,9 +1465,7 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) parseProfileTierLevel(pcSPS->getProfileTierLevel(), pcSPS->getMaxTLayers() - 1); #endif -#if JVET_P0117_PTL_SCALABILITY } -#endif READ_FLAG(uiCode, "gdr_enabled_flag"); pcSPS->setGDREnabledFlag(uiCode); @@ -1771,7 +1760,6 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) parseExtraSHBitsStruct( pcSPS, uiCode ); #endif -#if JVET_P0117_PTL_SCALABILITY if (pcSPS->getMaxTLayers() - 1 > 0) { READ_FLAG(uiCode, "sps_sublayer_dpb_params_flag"); pcSPS->setSubLayerDpbParamsFlag(uiCode ? true : false); @@ -1780,39 +1768,6 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) { dpb_parameters(pcSPS->getMaxTLayers() - 1, pcSPS->getSubLayerDpbParamsFlag(), pcSPS); } -#else - // KJS: Marakech decision: sub-layers added back - uint32_t subLayerOrderingInfoPresentFlag; - if (pcSPS->getMaxTLayers() > 1) - { - READ_FLAG(subLayerOrderingInfoPresentFlag, "sps_sub_layer_ordering_info_present_flag"); - } - else - { - subLayerOrderingInfoPresentFlag = 0; - } - - for(uint32_t i=0; i <= pcSPS->getMaxTLayers()-1; i++) - { - READ_UVLC ( uiCode, "sps_max_dec_pic_buffering_minus1[i]"); - pcSPS->setMaxDecPicBuffering( uiCode + 1, i); - READ_UVLC ( uiCode, "sps_max_num_reorder_pics[i]" ); - pcSPS->setNumReorderPics(uiCode, i); - READ_UVLC ( uiCode, "sps_max_latency_increase_plus1[i]"); - pcSPS->setMaxLatencyIncreasePlus1( uiCode, i ); - - if (!subLayerOrderingInfoPresentFlag) - { - for (i++; i <= pcSPS->getMaxTLayers()-1; i++) - { - pcSPS->setMaxDecPicBuffering(pcSPS->getMaxDecPicBuffering(0), i); - pcSPS->setNumReorderPics(pcSPS->getNumReorderPics(0), i); - pcSPS->setMaxLatencyIncreasePlus1(pcSPS->getMaxLatencyIncreasePlus1(0), i); - } - break; - } - } -#endif READ_FLAG(uiCode, "long_term_ref_pics_flag"); pcSPS->setLongTermRefsPresent(uiCode); READ_FLAG( uiCode, "inter_layer_ref_pics_present_flag" ); pcSPS->setInterLayerPresentFlag( uiCode ); @@ -2278,10 +2233,8 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) } } -#if JVET_P0117_PTL_SCALABILITY if (pcSPS->getPtlDpbHrdParamsPresentFlag()) { -#endif READ_FLAG(uiCode, "sps_general_hrd_params_present_flag"); pcSPS->setGeneralHrdParametersPresentFlag(uiCode); if (pcSPS->getGeneralHrdParametersPresentFlag()) { @@ -2298,9 +2251,7 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) uint32_t firstSubLayer = pcSPS->getSubLayerParametersPresentFlag() ? 0 : (pcSPS->getMaxTLayers() - 1); parseOlsHrdParameters(pcSPS->getGeneralHrdParameters(),pcSPS->getOlsHrdParameters(), firstSubLayer, pcSPS->getMaxTLayers() - 1); } -#if JVET_P0117_PTL_SCALABILITY } -#endif #if JVET_Q0042_VUI READ_FLAG( uiCode, "field_seq_flag"); pcSPS->setFieldSeqFlag(uiCode); diff --git a/source/Lib/DecoderLib/VLCReader.h b/source/Lib/DecoderLib/VLCReader.h index 86e33e09b76786b6d398cae8a9b812ab6e13eff7..b372d0b107c1626659114a32681708fb24ca53e6 100644 --- a/source/Lib/DecoderLib/VLCReader.h +++ b/source/Lib/DecoderLib/VLCReader.h @@ -205,9 +205,7 @@ public: #if JVET_Q0795_CCALF void ccAlfFilter( Slice *pcSlice ); #endif -#if JVET_P0117_PTL_SCALABILITY void dpb_parameters(int maxSubLayersMinus1, bool subLayerInfoFlag, SPS *pcSPS); -#endif #if JVET_Q0400_EXTRA_BITS void parseExtraPHBitsStruct( SPS *sps, int numBytes ); void parseExtraSHBitsStruct( SPS *sps, int numBytes ); diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index 77c91a853e2b81cf48b44e5b7c192acf2fce7fc9..2184a0d4b7c33ba416af8e11d31752de465c2d9f 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -908,7 +908,6 @@ void HLSWriter::codeOlsHrdParameters(const GeneralHrdParams * generalHrd, const } } -#if JVET_P0117_PTL_SCALABILITY void HLSWriter::dpb_parameters(int maxSubLayersMinus1, bool subLayerInfoFlag, const SPS *pcSPS) { for (uint32_t i = (subLayerInfoFlag ? 0 : maxSubLayersMinus1); i <= maxSubLayersMinus1; i++) @@ -918,7 +917,6 @@ void HLSWriter::dpb_parameters(int maxSubLayersMinus1, bool subLayerInfoFlag, co WRITE_UVLC(pcSPS->getMaxLatencyIncreasePlus1(i), "max_latency_increase_plus1[i]"); } } -#endif void HLSWriter::codeSPS( const SPS* pcSPS ) { @@ -934,25 +932,17 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) CHECK(pcSPS->getMaxTLayers() == 0, "Maximum number of temporal sub-layers is '0'"); WRITE_CODE(pcSPS->getMaxTLayers() - 1, 3, "sps_max_sub_layers_minus1"); -#if JVET_P0117_PTL_SCALABILITY WRITE_CODE(0, 4, "sps_reserved_zero_4bits"); WRITE_FLAG(pcSPS->getPtlDpbHrdParamsPresentFlag(), "sps_ptl_dpb_hrd_params_present_flag"); -#else - WRITE_CODE(0, 5, "sps_reserved_zero_5bits"); -#endif -#if JVET_P0117_PTL_SCALABILITY if (pcSPS->getPtlDpbHrdParamsPresentFlag()) { -#endif #if JVET_Q0786_PTL_only codeProfileTierLevel(pcSPS->getProfileTierLevel(), true, pcSPS->getMaxTLayers() - 1); #else codeProfileTierLevel(pcSPS->getProfileTierLevel(), pcSPS->getMaxTLayers() - 1); #endif -#if JVET_P0117_PTL_SCALABILITY } -#endif WRITE_FLAG(pcSPS->getGDREnabledFlag(), "gdr_enabled_flag"); #if !JVET_Q0117_PARAMETER_SETS_CLEANUP @@ -1148,31 +1138,12 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) // extra_sh_bits_struct( num_extra_sh_bits_bytes ) #endif -#if JVET_P0117_PTL_SCALABILITY if (pcSPS->getMaxTLayers() - 1 > 0) WRITE_FLAG(pcSPS->getSubLayerDpbParamsFlag(), "sps_sublayer_dpb_params_flag"); if (pcSPS->getPtlDpbHrdParamsPresentFlag()) { dpb_parameters(pcSPS->getMaxTLayers() - 1, pcSPS->getSubLayerDpbParamsFlag(), pcSPS); } -#else - // KJS: Marakech decision: sub-layers added back - const bool subLayerOrderingInfoPresentFlag = 1; - if (pcSPS->getMaxTLayers() > 1) - { - WRITE_FLAG(subLayerOrderingInfoPresentFlag, "sps_sub_layer_ordering_info_present_flag"); - } - for(uint32_t i=0; i <= pcSPS->getMaxTLayers()-1; i++) - { - WRITE_UVLC( pcSPS->getMaxDecPicBuffering(i) - 1, "sps_max_dec_pic_buffering_minus1[i]" ); - WRITE_UVLC( pcSPS->getNumReorderPics(i), "sps_max_num_reorder_pics[i]" ); - WRITE_UVLC( pcSPS->getMaxLatencyIncreasePlus1(i), "sps_max_latency_increase_plus1[i]" ); - if (!subLayerOrderingInfoPresentFlag) - { - break; - } - } -#endif CHECK( pcSPS->getMaxCUWidth() != pcSPS->getMaxCUHeight(), "Rectangular CTUs not supported" ); WRITE_FLAG(pcSPS->getLongTermRefsPresent() ? 1 : 0, "long_term_ref_pics_flag"); WRITE_FLAG( pcSPS->getInterLayerPresentFlag() ? 1 : 0, "inter_layer_ref_pics_present_flag" ); @@ -1498,10 +1469,8 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) } } } -#if JVET_P0117_PTL_SCALABILITY if (pcSPS->getPtlDpbHrdParamsPresentFlag()) { -#endif WRITE_FLAG(pcSPS->getGeneralHrdParametersPresentFlag(), "sps_general_hrd_parameters_present_flag"); if (pcSPS->getGeneralHrdParametersPresentFlag()) { @@ -1513,9 +1482,7 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) uint32_t firstSubLayer = pcSPS->getSubLayerParametersPresentFlag() ? 0 : (pcSPS->getMaxTLayers() - 1); codeOlsHrdParameters(pcSPS->getGeneralHrdParameters(), pcSPS->getOlsHrdParameters(), firstSubLayer, pcSPS->getMaxTLayers() - 1); } -#if JVET_P0117_PTL_SCALABILITY } -#endif #if JVET_Q0042_VUI WRITE_FLAG(pcSPS->getFieldSeqFlag(), "field_seq_flag"); diff --git a/source/Lib/EncoderLib/VLCWriter.h b/source/Lib/EncoderLib/VLCWriter.h index 0f21eefeb206f47a0081b2e1afd6c8e06978b9d2..0652696a762983f05a66d10217ac72da5bee8f21 100644 --- a/source/Lib/EncoderLib/VLCWriter.h +++ b/source/Lib/EncoderLib/VLCWriter.h @@ -155,9 +155,7 @@ public: void codeScalingList ( const ScalingList &scalingList ); void alfFilter( const AlfParam& alfParam, const bool isChroma, const int altIdx ); -#if JVET_P0117_PTL_SCALABILITY void dpb_parameters(int maxSubLayersMinus1, bool subLayerInfoFlag, const SPS *pcSPS); -#endif private: #if !JVET_Q0210_UEK_REMOVAL void alfGolombEncode( const int coeff, const int k, const bool signed_coeff=true );