diff --git a/cfg/encoder_intra_vtm.cfg b/cfg/encoder_intra_vtm.cfg index 4d330a29967920fc8798046fae58525c8f535db7..e73ec1993c5caf1b45e7cf436ef5ad3db91fac9a 100644 --- a/cfg/encoder_intra_vtm.cfg +++ b/cfg/encoder_intra_vtm.cfg @@ -86,9 +86,9 @@ DualITree : 1 # separate partitioning of luma and chroma MinQTLumaISlice : 8 MinQTChromaISlice : 4 MinQTNonISlice : 8 -MaxBTDepth : 3 -MaxBTDepthISliceL : 3 -MaxBTDepthISliceC : 3 +MaxMTTHierarchyDepth : 3 +MaxMTTHierarchyDepthISliceL : 3 +MaxMTTHierarchyDepthISliceC : 3 MTS : 1 MTSIntraMaxCand : 3 diff --git a/cfg/encoder_lowdelay_P_vtm.cfg b/cfg/encoder_lowdelay_P_vtm.cfg index 0b3a064f62eff673800bbc340b8e58d57384fb47..d2001e4a5691fac2b250977f20b840615d27b24d 100644 --- a/cfg/encoder_lowdelay_P_vtm.cfg +++ b/cfg/encoder_lowdelay_P_vtm.cfg @@ -101,9 +101,9 @@ DualITree : 1 # separate partitioning of luma and chroma MinQTLumaISlice : 8 MinQTChromaISlice : 4 MinQTNonISlice : 8 -MaxBTDepth : 3 -MaxBTDepthISliceL : 3 -MaxBTDepthISliceC : 3 +MaxMTTHierarchyDepth : 3 +MaxMTTHierarchyDepthISliceL : 3 +MaxMTTHierarchyDepthISliceC : 3 MTS : 1 MTSIntraMaxCand : 3 diff --git a/cfg/encoder_lowdelay_vtm.cfg b/cfg/encoder_lowdelay_vtm.cfg index ed2e0530fd4f97976f164efa7cdfb5024581bf20..0125529b61d6ecedf749e5189460431c2fa1f420 100644 --- a/cfg/encoder_lowdelay_vtm.cfg +++ b/cfg/encoder_lowdelay_vtm.cfg @@ -101,9 +101,9 @@ DualITree : 1 # separate partitioning of luma and chroma MinQTLumaISlice : 8 MinQTChromaISlice : 4 MinQTNonISlice : 8 -MaxBTDepth : 3 -MaxBTDepthISliceL : 3 -MaxBTDepthISliceC : 3 +MaxMTTHierarchyDepth : 3 +MaxMTTHierarchyDepthISliceL : 3 +MaxMTTHierarchyDepthISliceC : 3 MTS : 1 MTSIntraMaxCand : 3 diff --git a/cfg/encoder_randomaccess_vtm.cfg b/cfg/encoder_randomaccess_vtm.cfg index 494811fec8de0c27aca7719d4e75f6c74497fd09..9548bc8e66469f0d5df536deb5ef98aca23a73b1 100644 --- a/cfg/encoder_randomaccess_vtm.cfg +++ b/cfg/encoder_randomaccess_vtm.cfg @@ -115,9 +115,9 @@ DualITree : 1 # separate partitioning of luma and chroma MinQTLumaISlice : 8 MinQTChromaISlice : 4 MinQTNonISlice : 8 -MaxBTDepth : 3 -MaxBTDepthISliceL : 3 -MaxBTDepthISliceC : 3 +MaxMTTHierarchyDepth : 3 +MaxMTTHierarchyDepthISliceL : 3 +MaxMTTHierarchyDepthISliceC : 3 MTS : 1 MTSIntraMaxCand : 3 diff --git a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RasterScanSlice.cfg b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RasterScanSlice.cfg index 4dbc0a9e90e3602acb4318aa0d28fa8ce3b621ba..e125aa451f390ea26646ed7a07692aca54dedb3d 100644 --- a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RasterScanSlice.cfg +++ b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RasterScanSlice.cfg @@ -126,9 +126,9 @@ DualITree : 1 # separate partitioning of luma and chroma MinQTLumaISlice : 8 MinQTChromaISlice : 4 MinQTNonISlice : 8 -MaxBTDepth : 3 -MaxBTDepthISliceL : 3 -MaxBTDepthISliceC : 3 +MaxMTTHierarchyDepth : 3 +MaxMTTHierarchyDepthISliceL : 3 +MaxMTTHierarchyDepthISliceC : 3 MTS : 1 MTSIntraMaxCand : 3 diff --git a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSlice.cfg b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSlice.cfg index f8f2286a823908a7f14ff0387ea891271e52b3bc..2e87582d1dab56980d890cf1bd90a5672f1c2a89 100644 --- a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSlice.cfg +++ b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSlice.cfg @@ -128,9 +128,9 @@ DualITree : 1 # separate partitioning of luma and chroma MinQTLumaISlice : 8 MinQTChromaISlice : 4 MinQTNonISlice : 8 -MaxBTDepth : 3 -MaxBTDepthISliceL : 3 -MaxBTDepthISliceC : 3 +MaxMTTHierarchyDepth : 3 +MaxMTTHierarchyDepthISliceL : 3 +MaxMTTHierarchyDepthISliceC : 3 MTS : 1 MTSIntraMaxCand : 3 diff --git a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_SingleTilePerSlice.cfg b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_SingleTilePerSlice.cfg index 9d7ce53ae491ff720340828e7c0b517fc5f0401d..0fb70587452f2ec0434dcc6ef587d100c7920c32 100644 --- a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_SingleTilePerSlice.cfg +++ b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_SingleTilePerSlice.cfg @@ -128,9 +128,9 @@ DualITree : 1 # separate partitioning of luma and chroma MinQTLumaISlice : 8 MinQTChromaISlice : 4 MinQTNonISlice : 8 -MaxBTDepth : 3 -MaxBTDepthISliceL : 3 -MaxBTDepthISliceC : 3 +MaxMTTHierarchyDepth : 3 +MaxMTTHierarchyDepthISliceL : 3 +MaxMTTHierarchyDepthISliceC : 3 MTS : 1 MTSIntraMaxCand : 3 diff --git a/source/App/EncoderApp/EncApp.cpp b/source/App/EncoderApp/EncApp.cpp index 95b3519c1854ae8470fa1413a2dcac51146a0b72..69c07bd758ee1aafa0cd891a79c89106a3449e9f 100644 --- a/source/App/EncoderApp/EncApp.cpp +++ b/source/App/EncoderApp/EncApp.cpp @@ -267,7 +267,7 @@ void EncApp::xInitLibCfg() m_cEncLib.setCTUSize ( m_uiCTUSize ); m_cEncLib.setUseSplitConsOverride ( m_SplitConsOverrideEnabledFlag ); m_cEncLib.setMinQTSizes ( m_uiMinQT ); - m_cEncLib.setMaxBTDepth ( m_uiMaxBTDepth, m_uiMaxBTDepthI, m_uiMaxBTDepthIChroma ); + m_cEncLib.setMaxMTTHierarchyDepth ( m_uiMaxMTTHierarchyDepth, m_uiMaxMTTHierarchyDepthI, m_uiMaxMTTHierarchyDepthIChroma ); m_cEncLib.setDualITree ( m_dualTree ); m_cEncLib.setLFNST ( m_LFNST ); m_cEncLib.setUseFastLFNST ( m_useFastLFNST ); diff --git a/source/App/EncoderApp/EncAppCfg.cpp b/source/App/EncoderApp/EncAppCfg.cpp index c051e03d59725c96640a412ec266fbb7ced0cb7b..4e8edd2661dcdf1e31ae09771b7c073bf08441fd 100644 --- a/source/App/EncoderApp/EncAppCfg.cpp +++ b/source/App/EncoderApp/EncAppCfg.cpp @@ -890,10 +890,10 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) ("MinQTLumaISlice", m_uiMinQT[0], 8u, "MinQTLumaISlice") ("MinQTChromaISlice", m_uiMinQT[2], 4u, "MinQTChromaISlice") ("MinQTNonISlice", m_uiMinQT[1], 8u, "MinQTNonISlice") - ("MaxBTDepth", m_uiMaxBTDepth, 3u, "MaxBTDepth") - ("MaxBTDepthI", m_uiMaxBTDepthI, 3u, "MaxBTDepthI") - ("MaxBTDepthISliceL", m_uiMaxBTDepthI, 3u, "MaxBTDepthISliceL") - ("MaxBTDepthISliceC", m_uiMaxBTDepthIChroma, 3u, "MaxBTDepthISliceC") + ("MaxMTTHierarchyDepth", m_uiMaxMTTHierarchyDepth, 3u, "MaxMTTHierarchyDepth") + ("MaxMTTHierarchyDepthI", m_uiMaxMTTHierarchyDepthI, 3u, "MaxMTTHierarchyDepthI") + ("MaxMTTHierarchyDepthISliceL", m_uiMaxMTTHierarchyDepthI, 3u, "MaxMTTHierarchyDepthISliceL") + ("MaxMTTHierarchyDepthISliceC", m_uiMaxMTTHierarchyDepthIChroma, 3u, "MaxMTTHierarchyDepthISliceC") ("DualITree", m_dualTree, false, "Use separate QTBT trees for intra slice luma and chroma channel types") ( "LFNST", m_LFNST, false, "Enable LFNST (0:off, 1:on) [default: off]" ) ( "FastLFNST", m_useFastLFNST, false, "Fast methods for LFNST" ) diff --git a/source/App/EncoderApp/EncAppCfg.h b/source/App/EncoderApp/EncAppCfg.h index c92518b791cd26876444f89fd2ad40a810810cc6..6867b7bfb094c0903833dac5ee212ed3ac979ab1 100644 --- a/source/App/EncoderApp/EncAppCfg.h +++ b/source/App/EncoderApp/EncAppCfg.h @@ -258,9 +258,9 @@ protected: unsigned m_uiCTUSize; bool m_SplitConsOverrideEnabledFlag; unsigned m_uiMinQT[3]; // 0: I slice luma; 1: P/B slice; 2: I slice chroma - unsigned m_uiMaxBTDepth; - unsigned m_uiMaxBTDepthI; - unsigned m_uiMaxBTDepthIChroma; + unsigned m_uiMaxMTTHierarchyDepth; + unsigned m_uiMaxMTTHierarchyDepthI; + unsigned m_uiMaxMTTHierarchyDepthIChroma; bool m_dualTree; bool m_LFNST; bool m_useFastLFNST; diff --git a/source/Lib/CommonLib/Slice.cpp b/source/Lib/CommonLib/Slice.cpp index eccce0e69325f31fe6c80a800f9580c084e38cc3..0478c09e855176cd17b6fc1a4c0ae855b8f59975 100644 --- a/source/Lib/CommonLib/Slice.cpp +++ b/source/Lib/CommonLib/Slice.cpp @@ -118,10 +118,10 @@ Slice::Slice() , m_dProcessingTime ( 0 ) , m_splitConsOverrideFlag ( false ) , m_uiMinQTSize ( 0 ) -, m_uiMaxBTDepth ( 0 ) +, m_uiMaxMTTHierarchyDepth ( 0 ) , m_uiMaxTTSize ( 0 ) , m_uiMinQTSizeIChroma ( 0 ) -, m_uiMaxBTDepthIChroma ( 0 ) +, m_uiMaxMTTHierarchyDepthIChroma ( 0 ) , m_uiMaxBTSizeIChroma ( 0 ) , m_uiMaxTTSizeIChroma ( 0 ) , m_uiMaxBTSize ( 0 ) @@ -728,10 +728,10 @@ void Slice::copySliceInfo(Slice *pSrc, bool cpyAlmostAll) if( cpyAlmostAll ) m_encCABACTableIdx = pSrc->m_encCABACTableIdx; m_splitConsOverrideFlag = pSrc->m_splitConsOverrideFlag; m_uiMinQTSize = pSrc->m_uiMinQTSize; - m_uiMaxBTDepth = pSrc->m_uiMaxBTDepth; + m_uiMaxMTTHierarchyDepth = pSrc->m_uiMaxMTTHierarchyDepth; m_uiMaxTTSize = pSrc->m_uiMaxTTSize; m_uiMinQTSizeIChroma = pSrc->m_uiMinQTSizeIChroma; - m_uiMaxBTDepthIChroma = pSrc->m_uiMaxBTDepthIChroma; + m_uiMaxMTTHierarchyDepthIChroma = pSrc->m_uiMaxMTTHierarchyDepthIChroma; m_uiMaxBTSizeIChroma = pSrc->m_uiMaxBTSizeIChroma; m_uiMaxTTSizeIChroma = pSrc->m_uiMaxTTSizeIChroma; m_uiMaxBTSize = pSrc->m_uiMaxBTSize; @@ -1426,7 +1426,7 @@ SPS::SPS() , m_log2DiffMaxMinCodingBlockSize(0) , m_CTUSize(0) , m_minQT{ 0, 0, 0 } -, m_maxBTDepth{ MAX_BT_DEPTH, MAX_BT_DEPTH_INTER, MAX_BT_DEPTH_C } +, m_maxMTTHierarchyDepth{ MAX_BT_DEPTH, MAX_BT_DEPTH_INTER, MAX_BT_DEPTH_C } , m_maxBTSize{ MAX_BT_SIZE, MAX_BT_SIZE_INTER, MAX_BT_SIZE_C } , m_maxTTSize{ MAX_TT_SIZE, MAX_TT_SIZE_INTER, MAX_TT_SIZE_C } , m_uiMaxCUWidth ( 32) @@ -2300,7 +2300,7 @@ uint32_t PreCalcValues::getValIdx( const Slice &slice, const ChannelType chType uint32_t PreCalcValues::getMaxBtDepth( const Slice &slice, const ChannelType chType ) const { if ( slice.getSplitConsOverrideFlag() ) - return (!slice.isIntra() || isLuma(chType) || ISingleTree) ? slice.getMaxBTDepth() : slice.getMaxBTDepthIChroma(); + return (!slice.isIntra() || isLuma(chType) || ISingleTree) ? slice.getMaxMTTHierarchyDepth() : slice.getMaxMTTHierarchyDepthIChroma(); else return maxBtDepth[getValIdx( slice, chType )]; } diff --git a/source/Lib/CommonLib/Slice.h b/source/Lib/CommonLib/Slice.h index d5d5476e7bd884c723d433f8010dfc2df3404d43..5cf7c332069b328a99ca807f75c305c281792a03 100644 --- a/source/Lib/CommonLib/Slice.h +++ b/source/Lib/CommonLib/Slice.h @@ -767,7 +767,7 @@ private: unsigned m_CTUSize; unsigned m_partitionOverrideEnalbed; // enable partition constraints override function unsigned m_minQT[3]; // 0: I slice luma; 1: P/B slice; 2: I slice chroma - unsigned m_maxBTDepth[3]; + unsigned m_maxMTTHierarchyDepth[3]; unsigned m_maxBTSize[3]; unsigned m_maxTTSize[3]; bool m_idrRefParamList; @@ -953,13 +953,13 @@ public: unsigned getMinQTSize(SliceType slicetype, ChannelType chType = CHANNEL_TYPE_LUMA) const { return slicetype == I_SLICE ? (chType == CHANNEL_TYPE_LUMA ? m_minQT[0] : m_minQT[2]) : m_minQT[1]; } - void setMaxBTDepth(unsigned maxBTDepth, - unsigned maxBTDepthI, - unsigned maxBTDepthIChroma) - { m_maxBTDepth[1] = maxBTDepth; m_maxBTDepth[0] = maxBTDepthI; m_maxBTDepth[2] = maxBTDepthIChroma; } - unsigned getMaxBTDepth() const { return m_maxBTDepth[1]; } - unsigned getMaxBTDepthI() const { return m_maxBTDepth[0]; } - unsigned getMaxBTDepthIChroma() const { return m_maxBTDepth[2]; } + void setMaxMTTHierarchyDepth(unsigned maxMTTHierarchyDepth, + unsigned maxMTTHierarchyDepthI, + unsigned maxMTTHierarchyDepthIChroma) + { m_maxMTTHierarchyDepth[1] = maxMTTHierarchyDepth; m_maxMTTHierarchyDepth[0] = maxMTTHierarchyDepthI; m_maxMTTHierarchyDepth[2] = maxMTTHierarchyDepthIChroma; } + unsigned getMaxMTTHierarchyDepth() const { return m_maxMTTHierarchyDepth[1]; } + unsigned getMaxMTTHierarchyDepthI() const { return m_maxMTTHierarchyDepth[0]; } + unsigned getMaxMTTHierarchyDepthIChroma() const { return m_maxMTTHierarchyDepth[2]; } void setMaxBTSize(unsigned maxBTSize, unsigned maxBTSizeI, unsigned maxBTSizeC) @@ -1754,11 +1754,11 @@ private: double m_dProcessingTime; bool m_splitConsOverrideFlag; uint32_t m_uiMinQTSize; - uint32_t m_uiMaxBTDepth; + uint32_t m_uiMaxMTTHierarchyDepth; uint32_t m_uiMaxTTSize; uint32_t m_uiMinQTSizeIChroma; - uint32_t m_uiMaxBTDepthIChroma; + uint32_t m_uiMaxMTTHierarchyDepthIChroma; uint32_t m_uiMaxBTSizeIChroma; uint32_t m_uiMaxTTSizeIChroma; uint32_t m_uiMaxBTSize; @@ -1917,15 +1917,15 @@ public: bool getSplitConsOverrideFlag() const { return m_splitConsOverrideFlag; } void setMinQTSize(int i) { m_uiMinQTSize = i; } uint32_t getMinQTSize() const { return m_uiMinQTSize; } - void setMaxBTDepth(int i) { m_uiMaxBTDepth = i; } - uint32_t getMaxBTDepth() const { return m_uiMaxBTDepth; } + void setMaxMTTHierarchyDepth(int i) { m_uiMaxMTTHierarchyDepth = i; } + uint32_t getMaxMTTHierarchyDepth() const { return m_uiMaxMTTHierarchyDepth; } void setMaxTTSize(int i) { m_uiMaxTTSize = i; } uint32_t getMaxTTSize() const { return m_uiMaxTTSize; } void setMinQTSizeIChroma(int i) { m_uiMinQTSizeIChroma = i; } uint32_t getMinQTSizeIChroma() const { return m_uiMinQTSizeIChroma; } - void setMaxBTDepthIChroma(int i) { m_uiMaxBTDepthIChroma = i; } - uint32_t getMaxBTDepthIChroma() const { return m_uiMaxBTDepthIChroma; } + void setMaxMTTHierarchyDepthIChroma(int i) { m_uiMaxMTTHierarchyDepthIChroma = i; } + uint32_t getMaxMTTHierarchyDepthIChroma() const { return m_uiMaxMTTHierarchyDepthIChroma; } void setMaxBTSizeIChroma(int i) { m_uiMaxBTSizeIChroma = i; } uint32_t getMaxBTSizeIChroma() const { return m_uiMaxBTSizeIChroma; } void setMaxTTSizeIChroma(int i) { m_uiMaxTTSizeIChroma = i; } @@ -2368,7 +2368,7 @@ public: , noChroma2x2 ( false ) , isEncoder ( _isEncoder ) , ISingleTree ( !sps.getUseDualITree() ) - , maxBtDepth { sps.getMaxBTDepthI(), sps.getMaxBTDepth(), sps.getMaxBTDepthIChroma() } + , maxBtDepth { sps.getMaxMTTHierarchyDepthI(), sps.getMaxMTTHierarchyDepth(), sps.getMaxMTTHierarchyDepthIChroma() } , minBtSize { 1u << sps.getLog2MinCodingBlockSize(), 1u << sps.getLog2MinCodingBlockSize(), 1u << sps.getLog2MinCodingBlockSize() } , maxBtSize { sps.getMaxBTSizeI(), sps.getMaxBTSize(), sps.getMaxBTSizeIChroma() } , minTtSize { 1u << sps.getLog2MinCodingBlockSize(), 1u << sps.getLog2MinCodingBlockSize(), 1u << sps.getLog2MinCodingBlockSize() } diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 241f2f4287acf04da0726c54e588895d75f66b47..ea4488002ae3cdcdc6027bf3150a7067f3dc9ede 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -1423,7 +1423,7 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) } pcSPS->setMinQTSizes(minQT); - pcSPS->setMaxBTDepth(maxBTD[1], maxBTD[0], maxBTD[2]); + pcSPS->setMaxMTTHierarchyDepth(maxBTD[1], maxBTD[0], maxBTD[2]); pcSPS->setMaxBTSize(maxBTSize[1], maxBTSize[0], maxBTSize[2]); pcSPS->setMaxTTSize(maxTTSize[1], maxTTSize[0], maxTTSize[2]); @@ -2283,8 +2283,8 @@ void HLSyntaxReader::parseSliceHeader (Slice* pcSlice, ParameterSetManager *para if (pcSlice->getSplitConsOverrideFlag()) { READ_UVLC(uiCode, "slice_log2_diff_min_qt_min_cb"); pcSlice->setMinQTSize(1 << (uiCode + sps->getLog2MinCodingBlockSize())); - READ_UVLC(uiCode, "slice_max_mtt_hierarchy_depth_luma"); pcSlice->setMaxBTDepth(uiCode); - if (pcSlice->getMaxBTDepth() != 0) + READ_UVLC(uiCode, "slice_max_mtt_hierarchy_depth_luma"); pcSlice->setMaxMTTHierarchyDepth(uiCode); + if (pcSlice->getMaxMTTHierarchyDepth() != 0) { READ_UVLC(uiCode, "slice_log2_diff_max_bt_min_qt"); pcSlice->setMaxBTSize(pcSlice->getMinQTSize() << uiCode); READ_UVLC(uiCode, "slice_log2_diff_max_tt_min_qt"); pcSlice->setMaxTTSize(pcSlice->getMinQTSize() << uiCode); @@ -2299,8 +2299,8 @@ void HLSyntaxReader::parseSliceHeader (Slice* pcSlice, ParameterSetManager *para ) { READ_UVLC(uiCode, "slice_log2_diff_min_qt_min_cb_chroma"); pcSlice->setMinQTSizeIChroma(1 << (uiCode + sps->getLog2MinCodingBlockSize())); - READ_UVLC(uiCode, "slice_max_mtt_hierarchy_depth_chroma"); pcSlice->setMaxBTDepthIChroma(uiCode); - if (pcSlice->getMaxBTDepthIChroma() != 0) + READ_UVLC(uiCode, "slice_max_mtt_hierarchy_depth_chroma"); pcSlice->setMaxMTTHierarchyDepthIChroma(uiCode); + if (pcSlice->getMaxMTTHierarchyDepthIChroma() != 0) { READ_UVLC(uiCode, "slice_log2_diff_max_bt_min_qt_chroma"); pcSlice->setMaxBTSizeIChroma(pcSlice->getMinQTSizeIChroma() << uiCode); READ_UVLC(uiCode, "slice_log2_diff_max_tt_min_qt_chroma"); pcSlice->setMaxTTSizeIChroma(pcSlice->getMinQTSizeIChroma() << uiCode); diff --git a/source/Lib/EncoderLib/EncCfg.h b/source/Lib/EncoderLib/EncCfg.h index dcef78c2737e0573ff4cd88e9538a19355754ed5..5ab2f05db8e106a33f95789b3c97939479793f68 100644 --- a/source/Lib/EncoderLib/EncCfg.h +++ b/source/Lib/EncoderLib/EncCfg.h @@ -278,9 +278,9 @@ protected: unsigned m_CTUSize; bool m_useSplitConsOverride; unsigned m_uiMinQT[3]; //0: I slice; 1: P/B slice, 2: I slice chroma - unsigned m_uiMaxBTDepth; - unsigned m_uiMaxBTDepthI; - unsigned m_uiMaxBTDepthIChroma; + unsigned m_uiMaxMTTHierarchyDepth; + unsigned m_uiMaxMTTHierarchyDepthI; + unsigned m_uiMaxMTTHierarchyDepthIChroma; bool m_dualITree; unsigned m_maxCUWidth; unsigned m_maxCUHeight; @@ -888,11 +888,11 @@ public: void setCTUSize ( unsigned u ) { m_CTUSize = u; } void setMinQTSizes ( unsigned* minQT) { m_uiMinQT[0] = minQT[0]; m_uiMinQT[1] = minQT[1]; m_uiMinQT[2] = minQT[2]; } - void setMaxBTDepth ( unsigned uiMaxBTDepth, unsigned uiMaxBTDepthI, unsigned uiMaxBTDepthIChroma ) - { m_uiMaxBTDepth = uiMaxBTDepth; m_uiMaxBTDepthI = uiMaxBTDepthI; m_uiMaxBTDepthIChroma = uiMaxBTDepthIChroma; } - unsigned getMaxBTDepth () const { return m_uiMaxBTDepth; } - unsigned getMaxBTDepthI () const { return m_uiMaxBTDepthI; } - unsigned getMaxBTDepthIChroma () const { return m_uiMaxBTDepthIChroma; } + void setMaxMTTHierarchyDepth ( unsigned uiMaxMTTHierarchyDepth, unsigned uiMaxMTTHierarchyDepthI, unsigned uiMaxMTTHierarchyDepthIChroma ) + { m_uiMaxMTTHierarchyDepth = uiMaxMTTHierarchyDepth; m_uiMaxMTTHierarchyDepthI = uiMaxMTTHierarchyDepthI; m_uiMaxMTTHierarchyDepthIChroma = uiMaxMTTHierarchyDepthIChroma; } + unsigned getMaxMTTHierarchyDepth () const { return m_uiMaxMTTHierarchyDepth; } + unsigned getMaxMTTHierarchyDepthI () const { return m_uiMaxMTTHierarchyDepthI; } + unsigned getMaxMTTHierarchyDepthIChroma () const { return m_uiMaxMTTHierarchyDepthIChroma; } int getCTUSize () const { return m_CTUSize; } void setUseSplitConsOverride (bool n) { m_useSplitConsOverride = n; } bool getUseSplitConsOverride () const { return m_useSplitConsOverride; } diff --git a/source/Lib/EncoderLib/EncLib.cpp b/source/Lib/EncoderLib/EncLib.cpp index fa296194fbe85aa4ed4307cc589157ee631ec1ff..cee835e9d70fb7c83f20b5ebf921b1ef504557fe 100644 --- a/source/Lib/EncoderLib/EncLib.cpp +++ b/source/Lib/EncoderLib/EncLib.cpp @@ -1106,21 +1106,21 @@ void EncLib::xInitSPS(SPS &sps) sps.setCTUSize ( m_CTUSize ); sps.setSplitConsOverrideEnabledFlag ( m_useSplitConsOverride ); sps.setMinQTSizes ( m_uiMinQT ); - sps.setMaxBTDepth ( m_uiMaxBTDepth, m_uiMaxBTDepthI, m_uiMaxBTDepthIChroma ); + sps.setMaxMTTHierarchyDepth ( m_uiMaxMTTHierarchyDepth, m_uiMaxMTTHierarchyDepthI, m_uiMaxMTTHierarchyDepthIChroma ); unsigned maxBtSize[3], maxTtSize[3]; memcpy(maxBtSize, m_uiMinQT, sizeof(maxBtSize)); memcpy(maxTtSize, m_uiMinQT, sizeof(maxTtSize)); - if (m_uiMaxBTDepth) + if (m_uiMaxMTTHierarchyDepth) { maxBtSize[1] = std::min(m_CTUSize, (unsigned)MAX_BT_SIZE_INTER); maxTtSize[1] = std::min(m_CTUSize, (unsigned)MAX_TT_SIZE_INTER); } - if (m_uiMaxBTDepthI) + if (m_uiMaxMTTHierarchyDepthI) { maxBtSize[0] = std::min(m_CTUSize, (unsigned)MAX_BT_SIZE); maxTtSize[0] = std::min(m_CTUSize, (unsigned)MAX_TT_SIZE); } - if (m_uiMaxBTDepthIChroma) + if (m_uiMaxMTTHierarchyDepthIChroma) { maxBtSize[2] = std::min(m_CTUSize, (unsigned)MAX_BT_SIZE_C); maxTtSize[2] = std::min(m_CTUSize, (unsigned)MAX_TT_SIZE_C); diff --git a/source/Lib/EncoderLib/EncSlice.cpp b/source/Lib/EncoderLib/EncSlice.cpp index 1ac764d7e089abd49a79e35b0bb9fa28ee7794e0..91823720953344c413ed591749a66b66bcad4b08 100644 --- a/source/Lib/EncoderLib/EncSlice.cpp +++ b/source/Lib/EncoderLib/EncSlice.cpp @@ -728,13 +728,13 @@ void EncSlice::initEncSlice(Picture* pcPic, const int pocLast, const int pocCurr #endif rpcSlice->setSplitConsOverrideFlag(false); rpcSlice->setMinQTSize( rpcSlice->getSPS()->getMinQTSize(eSliceType)); - rpcSlice->setMaxBTDepth( rpcSlice->isIntra() ? rpcSlice->getSPS()->getMaxBTDepthI() : rpcSlice->getSPS()->getMaxBTDepth() ); + rpcSlice->setMaxMTTHierarchyDepth( rpcSlice->isIntra() ? rpcSlice->getSPS()->getMaxMTTHierarchyDepthI() : rpcSlice->getSPS()->getMaxMTTHierarchyDepth() ); rpcSlice->setMaxBTSize( rpcSlice->isIntra() ? rpcSlice->getSPS()->getMaxBTSizeI() : rpcSlice->getSPS()->getMaxBTSize() ); rpcSlice->setMaxTTSize( rpcSlice->isIntra() ? rpcSlice->getSPS()->getMaxTTSizeI() : rpcSlice->getSPS()->getMaxTTSize() ); if ( eSliceType == I_SLICE && rpcSlice->getSPS()->getUseDualITree() ) { rpcSlice->setMinQTSizeIChroma( rpcSlice->getSPS()->getMinQTSize(eSliceType, CHANNEL_TYPE_CHROMA) ); - rpcSlice->setMaxBTDepthIChroma( rpcSlice->getSPS()->getMaxBTDepthIChroma() ); + rpcSlice->setMaxMTTHierarchyDepthIChroma( rpcSlice->getSPS()->getMaxMTTHierarchyDepthIChroma() ); rpcSlice->setMaxBTSizeIChroma( rpcSlice->getSPS()->getMaxBTSizeIChroma() ); rpcSlice->setMaxTTSizeIChroma( rpcSlice->getSPS()->getMaxTTSizeIChroma() ); } diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index 6e4fb930e945df4b956ba3191850480f695747ea..4359b00ade87f15a5f53e7be04d4d2a9a04fbd35 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -934,14 +934,14 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) WRITE_FLAG(pcSPS->getSplitConsOverrideEnabledFlag(), "partition_constraints_override_enabled_flag"); WRITE_UVLC(floorLog2(pcSPS->getMinQTSize(I_SLICE)) - pcSPS->getLog2MinCodingBlockSize(), "sps_log2_diff_min_qt_min_cb_intra_slice_luma"); WRITE_UVLC(floorLog2(pcSPS->getMinQTSize(B_SLICE)) - pcSPS->getLog2MinCodingBlockSize(), "sps_log2_diff_min_qt_min_cb_inter_slice"); - WRITE_UVLC(pcSPS->getMaxBTDepth(), "sps_max_mtt_hierarchy_depth_inter_slice"); - WRITE_UVLC(pcSPS->getMaxBTDepthI(), "sps_max_mtt_hierarchy_depth_intra_slice_luma"); - if (pcSPS->getMaxBTDepthI() != 0) + WRITE_UVLC(pcSPS->getMaxMTTHierarchyDepth(), "sps_max_mtt_hierarchy_depth_inter_slice"); + WRITE_UVLC(pcSPS->getMaxMTTHierarchyDepthI(), "sps_max_mtt_hierarchy_depth_intra_slice_luma"); + if (pcSPS->getMaxMTTHierarchyDepthI() != 0) { WRITE_UVLC(floorLog2(pcSPS->getMaxBTSizeI()) - floorLog2(pcSPS->getMinQTSize(I_SLICE)), "sps_log2_diff_max_bt_min_qt_intra_slice_luma"); WRITE_UVLC(floorLog2(pcSPS->getMaxTTSizeI()) - floorLog2(pcSPS->getMinQTSize(I_SLICE)), "sps_log2_diff_max_tt_min_qt_intra_slice_luma"); } - if (pcSPS->getMaxBTDepth() != 0) + if (pcSPS->getMaxMTTHierarchyDepth() != 0) { WRITE_UVLC(floorLog2(pcSPS->getMaxBTSize()) - floorLog2(pcSPS->getMinQTSize(B_SLICE)), "sps_log2_diff_max_bt_min_qt_inter_slice"); WRITE_UVLC(floorLog2(pcSPS->getMaxTTSize()) - floorLog2(pcSPS->getMinQTSize(B_SLICE)), "sps_log2_diff_max_tt_min_qt_inter_slice"); @@ -949,8 +949,8 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) if (pcSPS->getUseDualITree()) { WRITE_UVLC(floorLog2(pcSPS->getMinQTSize(I_SLICE, CHANNEL_TYPE_CHROMA)) - pcSPS->getLog2MinCodingBlockSize(), "sps_log2_diff_min_qt_min_cb_intra_slice_chroma"); - WRITE_UVLC(pcSPS->getMaxBTDepthIChroma(), "sps_max_mtt_hierarchy_depth_intra_slice_chroma"); - if (pcSPS->getMaxBTDepthIChroma() != 0) + WRITE_UVLC(pcSPS->getMaxMTTHierarchyDepthIChroma(), "sps_max_mtt_hierarchy_depth_intra_slice_chroma"); + if (pcSPS->getMaxMTTHierarchyDepthIChroma() != 0) { WRITE_UVLC(floorLog2(pcSPS->getMaxBTSizeIChroma()) - floorLog2(pcSPS->getMinQTSize(I_SLICE, CHANNEL_TYPE_CHROMA)), "sps_log2_diff_max_bt_min_qt_intra_slice_chroma"); WRITE_UVLC(floorLog2(pcSPS->getMaxTTSizeIChroma()) - floorLog2(pcSPS->getMinQTSize(I_SLICE, CHANNEL_TYPE_CHROMA)), "sps_log2_diff_max_tt_min_qt_intra_slice_chroma"); @@ -1530,8 +1530,8 @@ void HLSWriter::codeSliceHeader ( Slice* pcSlice ) if (pcSlice->getSplitConsOverrideFlag()) { WRITE_UVLC(floorLog2(pcSlice->getMinQTSize()) - pcSlice->getSPS()->getLog2MinCodingBlockSize(), "slice_log2_diff_min_qt_min_cb"); - WRITE_UVLC(pcSlice->getMaxBTDepth(), "slice_max_mtt_hierarchy_depth_luma"); - if (pcSlice->getMaxBTDepth() != 0) + WRITE_UVLC(pcSlice->getMaxMTTHierarchyDepth(), "slice_max_mtt_hierarchy_depth_luma"); + if (pcSlice->getMaxMTTHierarchyDepth() != 0) { CHECK(pcSlice->getMaxBTSize() < pcSlice->getMinQTSize(), "maxBtSize is smaller than minQtSize"); WRITE_UVLC(floorLog2(pcSlice->getMaxBTSize()) - floorLog2(pcSlice->getMinQTSize()), "slice_log2_diff_max_bt_min_qt"); @@ -1543,8 +1543,8 @@ void HLSWriter::codeSliceHeader ( Slice* pcSlice ) ) { WRITE_UVLC(floorLog2(pcSlice->getMinQTSizeIChroma()) - pcSlice->getSPS()->getLog2MinCodingBlockSize(), "slice_log2_diff_min_qt_min_cb_chroma"); - WRITE_UVLC(pcSlice->getMaxBTDepthIChroma(), "slice_max_mtt_hierarchy_depth_chroma"); - if (pcSlice->getMaxBTDepthIChroma() != 0) + WRITE_UVLC(pcSlice->getMaxMTTHierarchyDepthIChroma(), "slice_max_mtt_hierarchy_depth_chroma"); + if (pcSlice->getMaxMTTHierarchyDepthIChroma() != 0) { CHECK(pcSlice->getMaxBTSizeIChroma() < pcSlice->getMinQTSizeIChroma(), "maxBtSizeC is smaller than minQtSizeC"); WRITE_UVLC(floorLog2(pcSlice->getMaxBTSizeIChroma()) - floorLog2(pcSlice->getMinQTSizeIChroma()), "slice_log2_diff_max_bt_min_qt_chroma");