diff --git a/source/App/EncoderApp/EncApp.cpp b/source/App/EncoderApp/EncApp.cpp index f5985bbff8887514b1a7cc04d08f3b355b3804c5..f04e1cdbeed51022d431eceea839832016a4625f 100644 --- a/source/App/EncoderApp/EncApp.cpp +++ b/source/App/EncoderApp/EncApp.cpp @@ -410,13 +410,8 @@ void EncApp::xInitLibCfg() #endif m_cEncLib.setRDpenalty ( m_rdPenalty ); m_cEncLib.setCTUSize ( m_uiCTUSize ); -#if JVET_Q0119_CLEANUPS m_cEncLib.setSubPicInfoPresentFlag ( m_subPicInfoPresentFlag ); if(m_subPicInfoPresentFlag) -#else - m_cEncLib.setSubPicPresentFlag ( m_subPicPresentFlag ); - if(m_subPicPresentFlag) -#endif { m_cEncLib.setNumSubPics ( m_numSubPics ); m_cEncLib.setSubPicCtuTopLeftX ( m_subPicCtuTopLeftX ); @@ -427,13 +422,8 @@ void EncApp::xInitLibCfg() m_cEncLib.setLoopFilterAcrossSubpicEnabledFlag ( m_loopFilterAcrossSubpicEnabledFlag ); m_cEncLib.setSubPicIdMappingInSpsFlag ( m_subPicIdMappingInSpsFlag ); m_cEncLib.setSubPicIdLen ( m_subPicIdLen ); -#if JVET_Q0119_CLEANUPS m_cEncLib.setSubPicIdMappingExplicitlySignalledFlag ( m_subPicIdMappingExplicitlySignalledFlag ); if (m_subPicIdMappingExplicitlySignalledFlag) -#else - m_cEncLib.setSubPicIdSignallingPresentFlag ( m_subPicIdSignallingPresentFlag ); - if(m_subPicIdSignallingPresentFlag) -#endif { m_cEncLib.setSubPicId ( m_subPicId ); } diff --git a/source/App/EncoderApp/EncAppCfg.cpp b/source/App/EncoderApp/EncAppCfg.cpp index 4ff3e803e96778caf3c7db87da0cbbefdb330276..adcd44249cd5cc51bd986523e8c3d1c2b7e60606 100644 --- a/source/App/EncoderApp/EncAppCfg.cpp +++ b/source/App/EncoderApp/EncAppCfg.cpp @@ -831,11 +831,7 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) ("FrameOnly", m_frameOnlyConstraintFlag, false, "Indicate that the bitstream contains only frames") ("CTUSize", m_uiCTUSize, 128u, "CTUSize (specifies the CTU size if QTBT is on) [default: 128]") ("Log2MinCuSize", m_log2MinCuSize, 2u, "Log2 min CU size") -#if JVET_Q0119_CLEANUPS ("SubPicInfoPresentFlag", m_subPicInfoPresentFlag, false, "equal to 1 specifies that subpicture parameters are present in in the SPS RBSP syntax") -#else - ("SubPicPresentFlag", m_subPicPresentFlag, false, "equal to 1 specifies that subpicture parameters are present in in the SPS RBSP syntax") -#endif ("NumSubPics", m_numSubPics, 0u, "specifies the number of subpictures") ("SubPicCtuTopLeftX", cfg_subPicCtuTopLeftX, cfg_subPicCtuTopLeftX, "specifies horizontal position of top left CTU of i-th subpicture in unit of CtbSizeY") ("SubPicCtuTopLeftY", cfg_subPicCtuTopLeftY, cfg_subPicCtuTopLeftY, "specifies vertical position of top left CTU of i-th subpicture in unit of CtbSizeY") @@ -843,13 +839,8 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) ("SubPicHeight", cfg_subPicHeight, cfg_subPicHeight, "specifies the height of the i-th subpicture in units of CtbSizeY") ("SubPicTreatedAsPicFlag", cfg_subPicTreatedAsPicFlag, cfg_subPicTreatedAsPicFlag, "equal to 1 specifies that the i-th subpicture of each coded picture in the CLVS is treated as a picture in the decoding process excluding in-loop filtering operations") ("LoopFilterAcrossSubpicEnabledFlag", cfg_loopFilterAcrossSubpicEnabledFlag, cfg_loopFilterAcrossSubpicEnabledFlag, "equal to 1 specifies that in-loop filtering operations may be performed across the boundaries of the i-th subpicture in each coded picture in the CLVS") -#if JVET_Q0119_CLEANUPS ("SubPicIdMappingExplicitlySignalledFlag", m_subPicIdMappingExplicitlySignalledFlag, false, "equal to 1 specifies that the subpicture ID mapping is explicitly signalled, either in the SPS or in the PPSs") ("SubPicIdMappingInSpsFlag", m_subPicIdMappingInSpsFlag, false, "equal to 1 specifies that subpicture ID mapping is signalled in the SPS") -#else - ("SubPicIdPresentFlag", m_subPicIdPresentFlag, false, "equal to 1 specifies that subpicture ID mapping is present in the SPS") - ("SubPicIdSignallingPresentFlag", m_subPicIdSignallingPresentFlag, false, "equal to 1 specifies that subpicture ID mapping is signalled in the SPS") -#endif ("SubPicIdLen", m_subPicIdLen, 0u, "specifies the number of bits used to represent the syntax element sps_subpic_id[ i ]. ") ("SubPicId", cfg_subPicId, cfg_subPicId, "specifies that subpicture ID of the i-th subpicture") ("SingleSlicePerSubpic", m_singleSlicePerSubPicFlag, false, "Enables setting of a single slice per sub-picture (no explicit configuration required)") @@ -1591,11 +1582,7 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) //number of fields to encode m_framesToBeEncoded *= 2; } -#if JVET_Q0119_CLEANUPS if ( m_subPicInfoPresentFlag ) -#else - if ( m_subPicPresentFlag ) -#endif { CHECK( m_numSubPics > MAX_NUM_SUB_PICS || m_numSubPics < 1, "Number of subpicture must be within 1 to 2^16" ); CHECK( cfg_subPicCtuTopLeftX.values.size() != m_numSubPics, "Number of SubPicCtuTopLeftX values must be equal to NumSubPics"); @@ -3585,13 +3572,8 @@ void EncAppCfg::xPrintParameter() } msg(DETAILS, "CTU size / min CU size : %d / %d \n", m_uiMaxCUWidth, 1 << m_log2MinCuSize); -#if JVET_Q0119_CLEANUPS msg(DETAILS, "subpicture info present flag : %d\n", m_subPicInfoPresentFlag); if (m_subPicInfoPresentFlag) -#else - msg(DETAILS, "subpicture present flag : %d\n", m_subPicPresentFlag); - if (m_subPicPresentFlag) -#endif { msg(DETAILS, "number of subpictures : %d\n", m_numSubPics); for (int i = 0; i < m_numSubPics; i++) @@ -3604,17 +3586,10 @@ void EncAppCfg::xPrintParameter() } } -#if JVET_Q0119_CLEANUPS msg(DETAILS, "subpicture ID present flag : %d\n", m_subPicIdMappingExplicitlySignalledFlag); if (m_subPicIdMappingExplicitlySignalledFlag) { msg(DETAILS, "subpicture ID signalling present flag : %d\n", m_subPicIdMappingInSpsFlag); -#else - msg(DETAILS, "subpicture ID present flag : %d\n", m_subPicIdPresentFlag); - if (m_subPicIdPresentFlag) - { - msg(DETAILS, "subpicture ID signalling present flag : %d\n", m_subPicIdSignallingPresentFlag); -#endif for (int i = 0; i < m_numSubPics; i++) { msg(DETAILS, "[%d]th subpictures ID length :%d\n", i, m_subPicIdLen); diff --git a/source/App/EncoderApp/EncAppCfg.h b/source/App/EncoderApp/EncAppCfg.h index 2b858ee35a72add7683a033ce38bd723e69efcbd..1aacb6ad4a593b52355237a6405fb7a2838177c2 100644 --- a/source/App/EncoderApp/EncAppCfg.h +++ b/source/App/EncoderApp/EncAppCfg.h @@ -278,11 +278,7 @@ protected: // coding unit (CU) definition unsigned m_uiCTUSize; -#if JVET_Q0119_CLEANUPS bool m_subPicInfoPresentFlag; -#else - bool m_subPicPresentFlag; -#endif unsigned m_numSubPics; std::vector<uint32_t> m_subPicCtuTopLeftX; std::vector<uint32_t> m_subPicCtuTopLeftY; @@ -290,13 +286,8 @@ protected: std::vector<uint32_t> m_subPicHeight; std::vector<bool> m_subPicTreatedAsPicFlag; std::vector<bool> m_loopFilterAcrossSubpicEnabledFlag; -#if JVET_Q0119_CLEANUPS bool m_subPicIdMappingExplicitlySignalledFlag; bool m_subPicIdMappingInSpsFlag; -#else - bool m_subPicIdPresentFlag; - bool m_subPicIdSignallingPresentFlag; -#endif unsigned m_subPicIdLen; std::vector<uint16_t> m_subPicId; bool m_SplitConsOverrideEnabledFlag; diff --git a/source/Lib/CommonLib/Slice.cpp b/source/Lib/CommonLib/Slice.cpp index 1277781e463bffb87162a8d69811043b89c1cd1f..76d9f370d920c34e692f6f8799b81e85afcb95be 100644 --- a/source/Lib/CommonLib/Slice.cpp +++ b/source/Lib/CommonLib/Slice.cpp @@ -2245,10 +2245,6 @@ PicHeader::PicHeader() , m_ppsId ( -1 ) , m_pocMsbPresentFlag ( 0 ) , m_pocMsbVal ( 0 ) -#if !JVET_Q0119_CLEANUPS -, m_subPicIdSignallingPresentFlag ( 0 ) -, m_subPicIdLen ( 0 ) -#endif , m_virtualBoundariesEnabledFlag ( 0 ) , m_virtualBoundariesPresentFlag ( 0 ) , m_numVerVirtualBoundaries ( 0 ) @@ -2318,9 +2314,6 @@ PicHeader::PicHeader() , m_numL1Weights ( 0 ) #endif { -#if !JVET_Q0119_CLEANUPS - memset(m_subPicId, 0, sizeof(m_subPicId)); -#endif memset(m_virtualBoundariesPosX, 0, sizeof(m_virtualBoundariesPosX)); memset(m_virtualBoundariesPosY, 0, sizeof(m_virtualBoundariesPosY)); memset(m_saoEnabledFlag, 0, sizeof(m_saoEnabledFlag)); @@ -2368,10 +2361,6 @@ void PicHeader::initPicHeader() m_ppsId = -1; m_pocMsbPresentFlag = 0; m_pocMsbVal = 0; -#if !JVET_Q0119_CLEANUPS - m_subPicIdSignallingPresentFlag = 0; - m_subPicIdLen = 0; -#endif m_virtualBoundariesEnabledFlag = 0; m_virtualBoundariesPresentFlag = 0; m_numVerVirtualBoundaries = 0; @@ -2438,9 +2427,6 @@ void PicHeader::initPicHeader() #if JVET_Q0819_PH_CHANGES m_numL0Weights = 0; m_numL1Weights = 0; -#endif -#if !JVET_Q0119_CLEANUPS - memset(m_subPicId, 0, sizeof(m_subPicId)); #endif memset(m_virtualBoundariesPosX, 0, sizeof(m_virtualBoundariesPosX)); memset(m_virtualBoundariesPosY, 0, sizeof(m_virtualBoundariesPosY)); @@ -2529,19 +2515,10 @@ SPS::SPS() // Structure , m_maxWidthInLumaSamples (352) , m_maxHeightInLumaSamples (288) -#if JVET_Q0119_CLEANUPS , m_subPicInfoPresentFlag (false) -#else -, m_subPicPresentFlag (0) -#endif , m_numSubPics(1) -#if JVET_Q0119_CLEANUPS , m_subPicIdMappingExplicitlySignalledFlag ( false ) , m_subPicIdMappingInSpsFlag ( false ) -#else -, m_subPicIdPresentFlag(0) -, m_subPicIdSignallingPresentFlag(0) -#endif , m_subPicIdLen(16) , m_log2MinCodingBlockSize ( 2) , m_CTUSize(0) @@ -2808,11 +2785,7 @@ PPS::PPS() , m_numRefIdxL1DefaultActive (1) , m_rpl1IdxPresentFlag (false) , m_numSubPics (1) -#if JVET_Q0119_CLEANUPS , m_subPicIdMappingInPpsFlag (0) -#else -, m_subPicIdSignallingPresentFlag (0) -#endif , m_subPicIdLen (16) , m_noPicPartitionFlag (1) , m_log2CtuSize (0) diff --git a/source/Lib/CommonLib/Slice.h b/source/Lib/CommonLib/Slice.h index 0699c62d1a1ef3bd1bd1b4dd6af6b1cd0cb0847a..0634f5e3dbcf9aa190bcc63d99e3749a4ff4a779 100644 --- a/source/Lib/CommonLib/Slice.h +++ b/source/Lib/CommonLib/Slice.h @@ -1298,11 +1298,7 @@ private: uint32_t m_maxWidthInLumaSamples; uint32_t m_maxHeightInLumaSamples; Window m_conformanceWindow; -#if JVET_Q0119_CLEANUPS bool m_subPicInfoPresentFlag; // indicates the presence of sub-picture info -#else - bool m_subPicPresentFlag; // indicates the presence of sub-pictures -#endif uint32_t m_numSubPics; //!< number of sub-pictures used std::vector<uint32_t> m_subPicCtuTopLeftX; std::vector<uint32_t> m_subPicCtuTopLeftY; @@ -1310,13 +1306,8 @@ private: std::vector<uint32_t> m_subPicHeight; std::vector<bool> m_subPicTreatedAsPicFlag; std::vector<bool> m_loopFilterAcrossSubpicEnabledFlag; -#if JVET_Q0119_CLEANUPS bool m_subPicIdMappingExplicitlySignalledFlag; bool m_subPicIdMappingInSpsFlag; -#else - bool m_subPicIdPresentFlag; //!< indicates the presence of sub-picture IDs - bool m_subPicIdSignallingPresentFlag; //!< indicates the presence of sub-picture ID signalling in the SPS -#endif uint32_t m_subPicIdLen; //!< sub-picture ID length in bits std::vector<uint16_t> m_subPicId; //!< sub-picture ID for each sub-picture in the sequence @@ -1497,13 +1488,8 @@ public: const Window& getConformanceWindow() const { return m_conformanceWindow; } void setConformanceWindow( Window& conformanceWindow ) { m_conformanceWindow = conformanceWindow; } -#if JVET_Q0119_CLEANUPS void setSubPicInfoPresentFlag(bool b) { m_subPicInfoPresentFlag = b; } bool getSubPicInfoPresentFlag() const { return m_subPicInfoPresentFlag; } -#else - void setSubPicPresentFlag(bool b) { m_subPicPresentFlag = b; } - bool getSubPicPresentFlag() const { return m_subPicPresentFlag; } -#endif void setNumSubPics( uint32_t u ) { CHECK( u >= MAX_NUM_SUB_PICS, "Maximum number of subpictures exceeded" ); m_numSubPics = u; @@ -1537,17 +1523,10 @@ public: void setLoopFilterAcrossSubpicEnabledFlag (const std::vector<bool> &v) { CHECK(v.size()!=m_numSubPics, "number of vector entries must be equal to numSubPics") ;m_loopFilterAcrossSubpicEnabledFlag = v; } -#if JVET_Q0119_CLEANUPS void setSubPicIdMappingExplicitlySignalledFlag( bool b ) { m_subPicIdMappingExplicitlySignalledFlag = b; } bool getSubPicIdMappingExplicitlySignalledFlag() const { return m_subPicIdMappingExplicitlySignalledFlag; } void setSubPicIdMappingInSpsFlag( bool b ) { m_subPicIdMappingInSpsFlag = b; } bool getSubPicIdMappingInSpsFlag() const { return m_subPicIdMappingInSpsFlag; } -#else - void setSubPicIdPresentFlag( bool b ) { m_subPicIdPresentFlag = b; } - bool getSubPicIdPresentFlag() const { return m_subPicIdPresentFlag; } - void setSubPicIdSignallingPresentFlag( bool b ) { m_subPicIdSignallingPresentFlag = b; } - bool getSubPicIdSignallingPresentFlag() const { return m_subPicIdSignallingPresentFlag; } -#endif void setSubPicIdLen( uint32_t u ) { m_subPicIdLen = u; } uint32_t getSubPicIdLen() const { return m_subPicIdLen; } void setSubPicId( int i, uint16_t u ) { m_subPicId[i] = u; } @@ -1923,11 +1902,7 @@ private: bool m_useWeightedBiPred; //!< Use of Weighting Bi-Prediction (B_SLICE) bool m_OutputFlagPresentFlag; //!< Indicates the presence of output_flag in slice header uint32_t m_numSubPics; //!< number of sub-pictures used - must match SPS -#if JVET_Q0119_CLEANUPS bool m_subPicIdMappingInPpsFlag; -#else - bool m_subPicIdSignallingPresentFlag; //!< indicates the presence of sub-picture ID signalling in the PPS -#endif uint32_t m_subPicIdLen; //!< sub-picture ID length in bits std::vector<uint16_t> m_subPicId; //!< sub-picture ID for each sub-picture in the sequence bool m_noPicPartitionFlag; //!< no picture partitioning flag - single slice, single tile @@ -2093,13 +2068,8 @@ public: m_subPicId.resize(m_numSubPics); } uint32_t getNumSubPics( ) const { return m_numSubPics; } -#if JVET_Q0119_CLEANUPS void setSubPicIdMappingInPpsFlag( bool b ) { m_subPicIdMappingInPpsFlag = b; } bool getSubPicIdMappingInPpsFlag() const { return m_subPicIdMappingInPpsFlag; } -#else - void setSubPicIdSignallingPresentFlag( bool b ) { m_subPicIdSignallingPresentFlag = b; } - bool getSubPicIdSignallingPresentFlag() const { return m_subPicIdSignallingPresentFlag; } -#endif void setSubPicIdLen( uint32_t u ) { m_subPicIdLen = u; } uint32_t getSubPicIdLen() const { return m_subPicIdLen; } void setSubPicId( int i, uint16_t u ) { m_subPicId[i] = u; } @@ -2340,11 +2310,6 @@ private: int m_ppsId; //!< picture parameter set ID bool m_pocMsbPresentFlag; //!< ph_poc_msb_present_flag int m_pocMsbVal; //!< poc_msb_val -#if !JVET_Q0119_CLEANUPS - bool m_subPicIdSignallingPresentFlag; //!< indicates the presence of sub-picture ID signalling in the SPS - uint32_t m_subPicIdLen; //!< sub-picture ID length in bits - uint16_t m_subPicId[MAX_NUM_SUB_PICS]; //!< sub-picture ID for each sub-picture in the sequence -#endif bool m_virtualBoundariesEnabledFlag; //!< loop filtering across virtual boundaries disabled bool m_virtualBoundariesPresentFlag; //!< loop filtering across virtual boundaries disabled unsigned m_numVerVirtualBoundaries; //!< number of vertical virtual boundaries @@ -2471,14 +2436,6 @@ public: bool getPocMsbPresentFlag() const { return m_pocMsbPresentFlag; } void setPocMsbVal(int i) { m_pocMsbVal = i; } int getPocMsbVal() { return m_pocMsbVal; } -#if !JVET_Q0119_CLEANUPS - void setSubPicIdSignallingPresentFlag( bool b ) { m_subPicIdSignallingPresentFlag = b; } - bool getSubPicIdSignallingPresentFlag() const { return m_subPicIdSignallingPresentFlag; } - void setSubPicIdLen( uint32_t u ) { m_subPicIdLen = u; } - uint32_t getSubPicIdLen() const { return m_subPicIdLen; } - void setSubPicId( int i, uint16_t u ) { m_subPicId[i] = u; } - uint16_t getSubPicId( int i ) const { return m_subPicId[i]; } -#endif void setVirtualBoundariesPresentFlag( bool b ) { m_virtualBoundariesPresentFlag = b; } bool getVirtualBoundariesPresentFlag() const { return m_virtualBoundariesPresentFlag; } void setNumVerVirtualBoundaries(unsigned u) { m_numVerVirtualBoundaries = u; } diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index d2aaf3736df4407bfd6ee410b5cebb5e1f3dafaa..23753680a2313254bdb7762fcc257f3d013c1c5c 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -115,7 +115,6 @@ -#define JVET_Q0119_CLEANUPS 1 // JVET-Q0119: AHG12: Cleanups on signalling of subpictures, tiles, and rectangular slices #define JVET_Q0114_CONSTRAINT_FLAGS 1 // JVET-Q0114: AHG9: A few more general constraints flags diff --git a/source/Lib/DecoderLib/DecLib.cpp b/source/Lib/DecoderLib/DecLib.cpp index 00ac722952257997af7c0ce254f64401ac9dd7ab..cd94df7c23fa3387a35434d3770b7739ef735848 100644 --- a/source/Lib/DecoderLib/DecLib.cpp +++ b/source/Lib/DecoderLib/DecLib.cpp @@ -1435,11 +1435,7 @@ void DecLib::xCheckParameterSetConstraints(const int layerId) } if( sps->getRprEnabledFlag() ) { -#if JVET_Q0119_CLEANUPS CHECK( sps->getSubPicInfoPresentFlag() != 0, "When res_change_in_clvs_allowed_flag is equal to 1, the value of subpic_info_present_flag shall be equal to 0." ); -#else - CHECK( sps->getSubPicPresentFlag() != 0, "When res_change_in_clvs_allowed_flag is equal to 1, the value of subpic_info_present_flag shall be equal to 0." ); -#endif } #if !JVET_Q0399_SCALING_INFERENCE CHECK( !sps->getRprEnabledFlag() && pps->getScalingWindow().getWindowEnabledFlag(), "When res_change_in_clvs_allowed_flag is equal to 0, the value of scaling_window_flag shall be equal to 0." ); diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index f3d51fd0c3c61718f24d3c0004823e0e79dd9418..57de6017d02cf2f33a62d467476909f66439cb74 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -463,13 +463,8 @@ void HLSyntaxReader::parsePPS( PPS* pcPPS ) READ_FLAG( uiCode, "output_flag_present_flag" ); pcPPS->setOutputFlagPresentFlag( uiCode==1 ); -#if JVET_Q0119_CLEANUPS READ_FLAG( uiCode, "subpic_id_mapping_in_pps_flag" ); pcPPS->setSubPicIdMappingInPpsFlag( uiCode != 0 ); if( pcPPS->getSubPicIdMappingInPpsFlag() ) -#else - READ_FLAG(uiCode, "pps_subpic_id_signalling_present_flag"); pcPPS->setSubPicIdSignallingPresentFlag( uiCode != 0 ); - if( pcPPS->getSubPicIdSignallingPresentFlag() ) -#endif { READ_UVLC( uiCode, "pps_num_subpics_minus1" ); pcPPS->setNumSubPics( uiCode + 1 ); CHECK( uiCode > MAX_NUM_SUB_PICS-1, "Number of sub-pictures exceeds limit"); @@ -1392,27 +1387,15 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) pcSPS->setMaxCUHeight(pcSPS->getCTUSize()); #if JVET_Q0043_RPR_and_Subpics | JVET_Q0119_CLEANUPS -#if JVET_Q0119_CLEANUPS READ_FLAG( uiCode, "subpic_info_present_flag" ); pcSPS->setSubPicInfoPresentFlag(uiCode); -#else - READ_FLAG( uiCode, "subpic_info_present_flag" ); pcSPS->setSubPicPresentFlag(uiCode); -#endif #else READ_FLAG( uiCode, "subpics_present_flag" ); pcSPS->setSubPicPresentFlag(uiCode); #endif -#if JVET_Q0119_CLEANUPS if (pcSPS->getSubPicInfoPresentFlag()) -#else - if (pcSPS->getSubPicPresentFlag()) -#endif { -#if JVET_Q0119_CLEANUPS READ_UVLC(uiCode, "sps_num_subpics_minus1"); pcSPS->setNumSubPics(uiCode + 1); CHECK(uiCode > (pcSPS->getMaxPicWidthInLumaSamples() / (1 << pcSPS->getCTUSize())) * (pcSPS->getMaxPicHeightInLumaSamples() / (1 << pcSPS->getCTUSize())) - 1, "Invalid sps_num_subpics_minus1 value"); -#else - READ_CODE(8, uiCode, "sps_num_subpics_minus1"); pcSPS->setNumSubPics(uiCode + 1); -#endif #if JVET_Q0114_CONSTRAINT_FLAGS if (pcSPS->getProfileTierLevel()->getConstraintInfo()->getOneSubpicPerPicConstraintFlag()) { @@ -1507,7 +1490,6 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) } } -#if JVET_Q0119_CLEANUPS READ_UVLC( uiCode, "sps_subpic_id_len_minus1" ); pcSPS->setSubPicIdLen( uiCode + 1 ); CHECK( uiCode > 15, "Invalid sps_subpic_id_len_minus1 value" ); CHECK( (1 << (uiCode + 1)) < pcSPS->getNumSubPics(), "Invalid sps_subpic_id_len_minus1 value" ); @@ -1523,13 +1505,10 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) } } } -#endif } else { -#if JVET_Q0119_CLEANUPS pcSPS->setSubPicIdMappingExplicitlySignalledFlag(0); -#endif pcSPS->setNumSubPics(1); pcSPS->setSubPicCtuTopLeftX(0, 0); pcSPS->setSubPicCtuTopLeftY(0, 0); @@ -1537,26 +1516,7 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) pcSPS->setSubPicHeight(0, (pcSPS->getMaxPicHeightInLumaSamples() + pcSPS->getCTUSize() - 1) >> floorLog2(pcSPS->getCTUSize())); } -#if !JVET_Q0119_CLEANUPS - READ_FLAG(uiCode, "sps_subpic_id_present_flag"); pcSPS->setSubPicIdPresentFlag( uiCode != 0 ); - if( pcSPS->getSubPicIdPresentFlag() ) - { - READ_FLAG(uiCode, "sps_subpic_id_signalling_present_flag"); pcSPS->setSubPicIdSignallingPresentFlag( uiCode != 0 ); - if( pcSPS->getSubPicIdSignallingPresentFlag() ) - { - READ_UVLC( uiCode, "sps_subpic_id_len_minus1" ); pcSPS->setSubPicIdLen( uiCode + 1 ); - CHECK( uiCode > 15, "Invalid sps_subpic_id_len_minus1 signalled"); - CHECK((1 << pcSPS->getSubPicIdLen()) < pcSPS->getNumSubPics(), "sps_subpic_id_len exceeds valid range"); - for( int picIdx = 0; picIdx < pcSPS->getNumSubPics( ); picIdx++ ) - { - READ_CODE( pcSPS->getSubPicIdLen( ), uiCode, "sps_subpic_id[i]" ); pcSPS->setSubPicId( picIdx, uiCode ); - } - } - } - if( pcSPS->getSubPicIdPresentFlag() == false || pcSPS->getSubPicIdSignallingPresentFlag() == false ) -#else if( !pcSPS->getSubPicIdMappingExplicitlySignalledFlag() || !pcSPS->getSubPicIdMappingInSpsFlag() ) -#endif { for( int picIdx = 0; picIdx < pcSPS->getNumSubPics( ); picIdx++ ) { @@ -2742,47 +2702,6 @@ void HLSyntaxReader::parsePictureHeader( PicHeader* picHeader, ParameterSetManag pps->initSubPic(*sps); -#if !JVET_Q0119_CLEANUPS - // sub-picture IDs - if( sps->getSubPicIdPresentFlag() ) - { - if( sps->getSubPicIdSignallingPresentFlag() ) - { - for( int picIdx = 0; picIdx < sps->getNumSubPics( ); picIdx++ ) - { - picHeader->setSubPicId( picIdx, sps->getSubPicId( picIdx ) ); - } - } - else - { - READ_FLAG(uiCode, "ph_subpic_id_signalling_present_flag"); picHeader->setSubPicIdSignallingPresentFlag( uiCode != 0 ); - if( picHeader->getSubPicIdSignallingPresentFlag() ) - { - READ_UVLC( uiCode, "ph_subpic_id_len_minus1" ); picHeader->setSubPicIdLen( uiCode + 1 ); - CHECK( uiCode > 15, "Invalid ph_subpic_id_len_minus1 signalled"); - CHECK((1 << picHeader->getSubPicIdLen()) < sps->getNumSubPics(), "ph_subpic_id_len exceeds valid range"); - for( int picIdx = 0; picIdx < sps->getNumSubPics( ); picIdx++ ) - { - READ_CODE( picHeader->getSubPicIdLen( ), uiCode, "ph_subpic_id[i]" ); picHeader->setSubPicId( picIdx, uiCode ); - } - } - else - { - for( int picIdx = 0; picIdx < sps->getNumSubPics( ); picIdx++ ) - { - picHeader->setSubPicId( picIdx, pps->getSubPicId( picIdx ) ); - } - } - } - } - else - { - for( int picIdx = 0; picIdx < sps->getNumSubPics( ); picIdx++ ) - { - picHeader->setSubPicId( picIdx, picIdx ); - } - } -#endif // virtual boundaries if( sps->getVirtualBoundariesEnabledFlag() && !sps->getVirtualBoundariesPresentFlag() ) @@ -3703,22 +3622,16 @@ void HLSyntaxReader::parseSliceHeader (Slice* pcSlice, PicHeader* picHeader, Par pcSlice->setPOC(iPOCmsb + iPOClsb); } -#if JVET_Q0119_CLEANUPS if (sps->getSubPicInfoPresentFlag()) -#else - if (sps->getSubPicPresentFlag()) -#endif { uint32_t bitsSubPicId; bitsSubPicId = sps->getSubPicIdLen(); READ_CODE(bitsSubPicId, uiCode, "slice_subpic_id"); pcSlice->setSliceSubPicId(uiCode); } -#if JVET_Q0119_CLEANUPS else { pcSlice->setSliceSubPicId(0); } -#endif // raster scan slices if(pps->getRectSliceFlag() == 0) diff --git a/source/Lib/EncoderLib/EncCfg.h b/source/Lib/EncoderLib/EncCfg.h index a7394454e33fdf67506fbc5f7afa9d0646438d8b..bb6e4b87bd337d649c96feb288765b270d8dc3f2 100644 --- a/source/Lib/EncoderLib/EncCfg.h +++ b/source/Lib/EncoderLib/EncCfg.h @@ -275,11 +275,7 @@ protected: int m_maxTempLayer; ///< Max temporal layer unsigned m_CTUSize; -#if JVET_Q0119_CLEANUPS bool m_subPicInfoPresentFlag; -#else - bool m_subPicPresentFlag; -#endif uint32_t m_numSubPics; std::vector<uint32_t> m_subPicCtuTopLeftX; std::vector<uint32_t> m_subPicCtuTopLeftY; @@ -287,13 +283,8 @@ protected: std::vector<uint32_t> m_subPicHeight; std::vector<bool> m_subPicTreatedAsPicFlag; std::vector<bool> m_loopFilterAcrossSubpicEnabledFlag; -#if JVET_Q0119_CLEANUPS bool m_subPicIdMappingExplicitlySignalledFlag; bool m_subPicIdMappingInSpsFlag; -#else - bool m_subPicIdPresentFlag; - bool m_subPicIdSignallingPresentFlag; -#endif unsigned m_subPicIdLen; std::vector<uint16_t> m_subPicId; bool m_useSplitConsOverride; @@ -973,11 +964,7 @@ public: bool getUseSplitConsOverride () const { return m_useSplitConsOverride; } void setDualITree ( bool b ) { m_dualITree = b; } bool getDualITree () const { return m_dualITree; } -#if JVET_Q0119_CLEANUPS void setSubPicInfoPresentFlag (bool b) { m_subPicInfoPresentFlag = b; } -#else - void setSubPicPresentFlag (bool b) { m_subPicPresentFlag = b; } -#endif void setNumSubPics ( uint32_t u ) { CHECK( u >= MAX_NUM_SUB_PICS, "Maximum number of subpictures exceeded" ); m_numSubPics = u; m_subPicCtuTopLeftX.resize(m_numSubPics); @@ -1002,22 +989,13 @@ public: void setSubPicTreatedAsPicFlag (const std::vector<bool> &v) { CHECK(v.size()!=m_numSubPics, "number of vector entries must be equal to numSubPics") ;m_subPicTreatedAsPicFlag = v; } void setLoopFilterAcrossSubpicEnabledFlag (const std::vector<bool> &v) { CHECK(v.size()!=m_numSubPics, "number of vector entries must be equal to numSubPics") ;m_loopFilterAcrossSubpicEnabledFlag = v; } -#if JVET_Q0119_CLEANUPS void setSubPicIdMappingExplicitlySignalledFlag (bool b) { m_subPicIdMappingExplicitlySignalledFlag = b; } void setSubPicIdMappingInSpsFlag (bool b) { m_subPicIdMappingInSpsFlag = b; } -#else - void setSubPicIdPresentFlag (bool b) { m_subPicIdPresentFlag = b; } - void setSubPicIdSignallingPresentFlag (bool b) { m_subPicIdSignallingPresentFlag = b; } -#endif void setSubPicIdLen (uint32_t u) { m_subPicIdLen = u; } void setSubPicId (uint32_t b, int i) { m_subPicId[i] = b; } void setSubPicId (const std::vector<uint16_t> &v) { CHECK(v.size()!=m_numSubPics, "number of vector entries must be equal to numSubPics"); m_subPicId = v; } -#if JVET_Q0119_CLEANUPS bool getSubPicInfoPresentFlag () { return m_subPicInfoPresentFlag; } -#else - bool getSubPicPresentFlag () { return m_subPicPresentFlag; } -#endif uint32_t getNumSubPics () { return m_numSubPics; } uint32_t getSubPicCtuTopLeftX (int i) { return m_subPicCtuTopLeftX[i]; } uint32_t getSubPicCtuTopLeftY (int i) { return m_subPicCtuTopLeftY[i]; } @@ -1025,13 +1003,8 @@ public: uint32_t getSubPicHeight (int i) { return m_subPicHeight[i]; } bool getSubPicTreatedAsPicFlag (int i) { return m_subPicTreatedAsPicFlag[i]; } uint32_t getLoopFilterAcrossSubpicEnabledFlag (int i) { return m_loopFilterAcrossSubpicEnabledFlag[i]; } -#if JVET_Q0119_CLEANUPS bool getSubPicIdMappingExplicitlySignalledFlag () { return m_subPicIdMappingExplicitlySignalledFlag; } bool getSubPicIdMappingInSpsFlag () { return m_subPicIdMappingInSpsFlag; } -#else - bool getSubPicIdPresentFlag () { return m_subPicIdPresentFlag; } - bool getSubPicIdSignallingPresentFlag () { return m_subPicIdSignallingPresentFlag; } -#endif uint32_t getSubPicIdLen () { return m_subPicIdLen; } uint32_t getSubPicId (int i) { return m_subPicId[i]; } void setLFNST ( bool b ) { m_LFNST = b; } diff --git a/source/Lib/EncoderLib/EncLib.cpp b/source/Lib/EncoderLib/EncLib.cpp index 2e17c352fe4b58c73b4f8283de272ae09bdd5438..9a472e91a33f8ea2b6d2ac34c1804288b5bd0914 100644 --- a/source/Lib/EncoderLib/EncLib.cpp +++ b/source/Lib/EncoderLib/EncLib.cpp @@ -1415,13 +1415,8 @@ void EncLib::xInitSPS( SPS& sps, VPS& vps ) sps.getSpsRangeExtension().setPersistentRiceAdaptationEnabledFlag(m_persistentRiceAdaptationEnabledFlag); sps.getSpsRangeExtension().setCabacBypassAlignmentEnabledFlag(m_cabacBypassAlignmentEnabledFlag); -#if JVET_Q0119_CLEANUPS sps.setSubPicInfoPresentFlag(m_subPicInfoPresentFlag); if (m_subPicInfoPresentFlag) -#else - sps.setSubPicPresentFlag(m_subPicPresentFlag); - if (m_subPicPresentFlag) -#endif { sps.setNumSubPics(m_numSubPics); sps.setSubPicCtuTopLeftX(m_subPicCtuTopLeftX); @@ -1431,7 +1426,6 @@ void EncLib::xInitSPS( SPS& sps, VPS& vps ) sps.setSubPicTreatedAsPicFlag(m_subPicTreatedAsPicFlag); sps.setLoopFilterAcrossSubpicEnabledFlag(m_loopFilterAcrossSubpicEnabledFlag); sps.setSubPicIdLen(m_subPicIdLen); -#if JVET_Q0119_CLEANUPS sps.setSubPicIdMappingExplicitlySignalledFlag(m_subPicIdMappingExplicitlySignalledFlag); if (m_subPicIdMappingExplicitlySignalledFlag) { @@ -1441,17 +1435,6 @@ void EncLib::xInitSPS( SPS& sps, VPS& vps ) sps.setSubPicId(m_subPicId); } } -#else - sps.setSubPicIdPresentFlag(m_subPicIdPresentFlag); - if (m_subPicIdPresentFlag) - { - sps.setSubPicIdSignallingPresentFlag(m_subPicIdSignallingPresentFlag); - if (m_subPicIdSignallingPresentFlag) - { - sps.setSubPicId(m_subPicId); - } - } -#endif } else //In that case, there is only one subpicture that contains the whole picture { @@ -1463,11 +1446,7 @@ void EncLib::xInitSPS( SPS& sps, VPS& vps ) sps.setSubPicTreatedAsPicFlag(0, 1); sps.setLoopFilterAcrossSubpicEnabledFlag(0, 0); sps.setSubPicIdLen(0); -#if JVET_Q0119_CLEANUPS sps.setSubPicIdMappingExplicitlySignalledFlag(false); -#else - sps.setSubPicIdPresentFlag(false); -#endif } sps.setDepQuantEnabledFlag( m_DepQuantEnabledFlag ); if (!sps.getDepQuantEnabledFlag()) @@ -1552,11 +1531,7 @@ void EncLib::xInitPPS(PPS &pps, const SPS &sps) pps.setSPSId(sps.getSPSId()); pps.setNumSubPics(sps.getNumSubPics()); -#if JVET_Q0119_CLEANUPS pps.setSubPicIdMappingInPpsFlag(false); -#else - pps.setSubPicIdSignallingPresentFlag(false); -#endif pps.setSubPicIdLen(sps.getSubPicIdLen()); for(int picIdx=0; picIdx<pps.getNumSubPics(); picIdx++) { @@ -1931,14 +1906,6 @@ void EncLib::xInitPicHeader(PicHeader &picHeader, const SPS &sps, const PPS &pps picHeader.setCuChromaQpOffsetSubdivInter(0); } -#if !JVET_Q0119_CLEANUPS - // sub-pictures - picHeader.setSubPicIdSignallingPresentFlag(sps.getSubPicIdSignallingPresentFlag()); - picHeader.setSubPicIdLen(sps.getSubPicIdLen()); - for(i=0; i<sps.getNumSubPics(); i++) { - picHeader.setSubPicId(i, sps.getSubPicId(i)); - } -#endif // virtual boundaries if( sps.getVirtualBoundariesEnabledFlag() ) diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index cc57d65661c5745426d423267fd0ced29b32e27e..fbbfa5130c7ad0d33160e9c9dd2190f9c187e955 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -284,13 +284,8 @@ void HLSWriter::codePPS( const PPS* pcPPS ) } WRITE_FLAG( pcPPS->getOutputFlagPresentFlag() ? 1 : 0, "output_flag_present_flag" ); -#if JVET_Q0119_CLEANUPS WRITE_FLAG( pcPPS->getSubPicIdMappingInPpsFlag() ? 1 : 0, "subpic_id_mapping_in_pps_flag" ); if( pcPPS->getSubPicIdMappingInPpsFlag() ) -#else - WRITE_FLAG(pcPPS->getSubPicIdSignallingPresentFlag(), "pps_subpic_id_signalling_present_flag"); - if( pcPPS->getSubPicIdSignallingPresentFlag() ) -#endif { CHECK(pcPPS->getNumSubPics() < 1, "PPS: NumSubPics cannot be less than 1"); WRITE_UVLC( pcPPS->getNumSubPics() - 1, "pps_num_subpics_minus1" ); @@ -884,26 +879,14 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) WRITE_CODE(floorLog2(pcSPS->getCTUSize()) - 5, 2, "sps_log2_ctu_size_minus5"); #if JVET_Q0043_RPR_and_Subpics | JVET_Q0119_CLEANUPS -#if JVET_Q0119_CLEANUPS WRITE_FLAG(pcSPS->getSubPicInfoPresentFlag(), "subpic_info_present_flag"); -#else - WRITE_FLAG(pcSPS->getSubPicPresentFlag(), "subpic_info_present_flag"); -#endif #else WRITE_FLAG(pcSPS->getSubPicPresentFlag(), "subpics_present_flag"); #endif -#if JVET_Q0119_CLEANUPS if (pcSPS->getSubPicInfoPresentFlag()) -#else - if(pcSPS->getSubPicPresentFlag()) -#endif { CHECK(pcSPS->getNumSubPics() < 1, "SPS: NumSubPics cannot be less than 1"); -#if JVET_Q0119_CLEANUPS WRITE_UVLC(pcSPS->getNumSubPics() - 1, "sps_num_subpics_minus1"); -#else - WRITE_CODE(pcSPS->getNumSubPics() - 1, 8, "sps_num_subpics_minus1"); -#endif if( pcSPS->getNumSubPics() > 1 ) { for (int picIdx = 0; picIdx < pcSPS->getNumSubPics(); picIdx++) @@ -951,7 +934,6 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) } } -#if JVET_Q0119_CLEANUPS CHECK(pcSPS->getSubPicIdLen() < 1, "SPS: SubPicIdLen cannot be less than 1"); WRITE_UVLC(pcSPS->getSubPicIdLen() - 1, "sps_subpic_id_len_minus1"); WRITE_FLAG(pcSPS->getSubPicIdMappingExplicitlySignalledFlag(), "subpic_id_mapping_explicitly_signalled_flag"); @@ -967,24 +949,6 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) } } } -#else - } - - WRITE_FLAG( pcSPS->getSubPicIdPresentFlag(), "sps_subpic_id_present_flag"); - if( pcSPS->getSubPicIdPresentFlag() ) - { - WRITE_FLAG(pcSPS->getSubPicIdSignallingPresentFlag(), "sps_subpic_id_signalling_present_flag"); - if( pcSPS->getSubPicIdSignallingPresentFlag() ) - { - WRITE_UVLC( pcSPS->getSubPicIdLen( ) - 1, "sps_subpic_id_len_minus1" ); - CHECK((1 << pcSPS->getSubPicIdLen()) < pcSPS->getNumSubPics(), "sps_subpic_id_len exceeds valid range"); - for( int picIdx = 0; picIdx < pcSPS->getNumSubPics( ); picIdx++ ) - { - WRITE_CODE( pcSPS->getSubPicId(picIdx), pcSPS->getSubPicIdLen( ), "sps_subpic_id[i]" ); - } - } - } -#endif WRITE_UVLC( pcSPS->getBitDepth(CHANNEL_TYPE_LUMA) - 8, "bit_depth_minus8" ); #if JVET_Q0151_Q0205_ENTRYPOINTS @@ -1801,46 +1765,6 @@ void HLSWriter::codePictureHeader( PicHeader* picHeader ) #endif -#if !JVET_Q0119_CLEANUPS - // sub-picture IDs - if( sps->getSubPicIdPresentFlag() ) - { - if( sps->getSubPicIdSignallingPresentFlag() ) - { - for( int picIdx = 0; picIdx < sps->getNumSubPics( ); picIdx++ ) - { - picHeader->setSubPicId( picIdx, sps->getSubPicId( picIdx ) ); - } - } - else - { - WRITE_FLAG(picHeader->getSubPicIdSignallingPresentFlag(), "ph_subpic_id_signalling_present_flag"); - if( picHeader->getSubPicIdSignallingPresentFlag() ) - { - WRITE_UVLC( picHeader->getSubPicIdLen() - 1, "ph_subpic_id_len_minus1" ); - CHECK((1 << picHeader->getSubPicIdLen()) < sps->getNumSubPics(), "ph_subpic_id_len exceeds valid range"); - for( int picIdx = 0; picIdx < sps->getNumSubPics( ); picIdx++ ) - { - WRITE_CODE(picHeader->getSubPicId(picIdx), picHeader->getSubPicIdLen( ), "ph_subpic_id[i]" ); - } - } - else - { - for( int picIdx = 0; picIdx < pps->getNumSubPics( ); picIdx++ ) - { - picHeader->setSubPicId( picIdx, pps->getSubPicId( picIdx ) ); - } - } - } - } - else - { - for( int picIdx = 0; picIdx < sps->getNumSubPics( ); picIdx++ ) - { - picHeader->setSubPicId( picIdx, picIdx ); - } - } -#endif // virtual boundaries if( sps->getVirtualBoundariesEnabledFlag() && !sps->getVirtualBoundariesPresentFlag() ) @@ -2497,11 +2421,7 @@ void HLSWriter::codeSliceHeader ( Slice* pcSlice ) WRITE_CODE(pcSlice->getPOC() & pocMask, pocBits, "slice_pic_order_cnt_lsb"); #endif -#if JVET_Q0119_CLEANUPS if (pcSlice->getSPS()->getSubPicInfoPresentFlag()) -#else - if (pcSlice->getSPS()->getSubPicPresentFlag()) -#endif { uint32_t bitsSubPicId; bitsSubPicId = pcSlice->getSPS()->getSubPicIdLen();