diff --git a/cfg/encoder_intra_vtm.cfg b/cfg/encoder_intra_vtm.cfg index 74688b48727ae94af1575cbe2930c58f2acee169..e13fe17e478b041f587d952eae81b4faaec1c9f3 100644 --- a/cfg/encoder_intra_vtm.cfg +++ b/cfg/encoder_intra_vtm.cfg @@ -73,7 +73,7 @@ LCTUFast : 1 DualITree : 1 # separate partitioning of luma and chroma channels for I-slices MinQTLumaISlice : 8 -MinQTChromaISlice : 4 +MinQTChromaISlice : 4 # minimum QT size in chroma samples for chroma separate tree MinQTNonISlice : 8 MaxMTTHierarchyDepth : 3 MaxMTTHierarchyDepthISliceL : 3 diff --git a/cfg/encoder_lowdelay_P_vtm.cfg b/cfg/encoder_lowdelay_P_vtm.cfg index 1c11fd5ca85c00fd9fe587cc735d09632558a4b1..b55cb46de73f3dda2d7e0f58a035a72bf111f94a 100644 --- a/cfg/encoder_lowdelay_P_vtm.cfg +++ b/cfg/encoder_lowdelay_P_vtm.cfg @@ -97,7 +97,7 @@ LCTUFast : 1 DualITree : 1 # separate partitioning of luma and chroma channels for I-slices MinQTLumaISlice : 8 -MinQTChromaISlice : 4 +MinQTChromaISlice : 4 # minimum QT size in chroma samples for chroma separate tree MinQTNonISlice : 8 MaxMTTHierarchyDepth : 3 MaxMTTHierarchyDepthISliceL : 3 diff --git a/cfg/encoder_lowdelay_vtm.cfg b/cfg/encoder_lowdelay_vtm.cfg index b4854d2bc616240fbf6c3fc063c0cee9a26a872b..d3420915ada6a9b9abe6827b0deb9e0bb9d6bc78 100644 --- a/cfg/encoder_lowdelay_vtm.cfg +++ b/cfg/encoder_lowdelay_vtm.cfg @@ -97,7 +97,7 @@ LCTUFast : 1 DualITree : 1 # separate partitioning of luma and chroma channels for I-slices MinQTLumaISlice : 8 -MinQTChromaISlice : 4 +MinQTChromaISlice : 4 # minimum QT size in chroma samples for chroma separate tree MinQTNonISlice : 8 MaxMTTHierarchyDepth : 3 MaxMTTHierarchyDepthISliceL : 3 diff --git a/cfg/encoder_randomaccess_vtm.cfg b/cfg/encoder_randomaccess_vtm.cfg index 3d62241f7486df6990d2614f6ca8d3d48c12824e..d7ff6ae6a5b77a383c2992d879984ed5010d001c 100644 --- a/cfg/encoder_randomaccess_vtm.cfg +++ b/cfg/encoder_randomaccess_vtm.cfg @@ -108,7 +108,7 @@ LCTUFast : 1 DualITree : 1 # separate partitioning of luma and chroma channels for I-slices MinQTLumaISlice : 8 -MinQTChromaISlice : 4 +MinQTChromaISlice : 4 # minimum QT size in chroma samples for chroma separate tree MinQTNonISlice : 8 MaxMTTHierarchyDepth : 3 MaxMTTHierarchyDepthISliceL : 3 diff --git a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RasterScanSlice.cfg b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RasterScanSlice.cfg index 407f8c8b7dfa2a0570abe980aad52b67292544fc..3177bb3f15c0ff7c0feeab7d5213dd172dc7d692 100644 --- a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RasterScanSlice.cfg +++ b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RasterScanSlice.cfg @@ -8,7 +8,6 @@ Profile : auto #======== Unit definition ================ MaxCUWidth : 64 # Maximum coding unit width in pixel MaxCUHeight : 64 # Maximum coding unit height in pixel -MaxPartitionDepth : 4 # Maximum coding unit depth #======== Coding Structure ============= IntraPeriod : 32 # Period of I-Frame ( -1 = only first) @@ -109,7 +108,7 @@ LCTUFast : 1 DualITree : 1 # separate partitioning of luma and chroma channels for I-slices MinQTLumaISlice : 8 -MinQTChromaISlice : 4 +MinQTChromaISlice : 4 # minimum QT size in chroma samples for chroma separate tree MinQTNonISlice : 8 MaxMTTHierarchyDepth : 3 MaxMTTHierarchyDepthISliceL : 3 diff --git a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSlice.cfg b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSlice.cfg index 2757eb9bb8f4ac09f2622eeb3477af196188e874..b9a44f417eec36aff6b6c307679d8888bc2a7b90 100644 --- a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSlice.cfg +++ b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSlice.cfg @@ -8,7 +8,6 @@ Profile : auto #======== Unit definition ================ MaxCUWidth : 64 # Maximum coding unit width in pixel MaxCUHeight : 64 # Maximum coding unit height in pixel -MaxPartitionDepth : 4 # Maximum coding unit depth #======== Coding Structure ============= IntraPeriod : 32 # Period of I-Frame ( -1 = only first) @@ -109,7 +108,7 @@ LCTUFast : 1 DualITree : 1 # separate partitioning of luma and chroma channels for I-slices MinQTLumaISlice : 8 -MinQTChromaISlice : 4 +MinQTChromaISlice : 4 # minimum QT size in chroma samples for chroma separate tree MinQTNonISlice : 8 MaxMTTHierarchyDepth : 3 MaxMTTHierarchyDepthISliceL : 3 diff --git a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSliceFixedSize.cfg b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSliceFixedSize.cfg index 25078d5e404f7da000d3347adc23aeebe9d80c09..8060402982e59b0565baf6b1c4a113596087c84b 100644 --- a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSliceFixedSize.cfg +++ b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_RectangularSliceFixedSize.cfg @@ -8,7 +8,6 @@ Profile : auto #======== Unit definition ================ MaxCUWidth : 64 # Maximum coding unit width in pixel MaxCUHeight : 64 # Maximum coding unit height in pixel -MaxPartitionDepth : 4 # Maximum coding unit depth #======== Coding Structure ============= IntraPeriod : 32 # Period of I-Frame ( -1 = only first) @@ -110,7 +109,7 @@ LCTUFast : 1 DualITree : 1 # separate partitioning of luma and chroma channels for I-slices MinQTLumaISlice : 8 -MinQTChromaISlice : 4 +MinQTChromaISlice : 4 # minimum QT size in chroma samples for chroma separate tree MinQTNonISlice : 8 MaxMTTHierarchyDepth : 3 MaxMTTHierarchyDepthISliceL : 3 diff --git a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_SingleTilePerSlice.cfg b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_SingleTilePerSlice.cfg index c043cd45fbe22c786390436e66421b2973f73c22..fa9dd46097444c1183d113d49d1c50892ea2ed55 100644 --- a/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_SingleTilePerSlice.cfg +++ b/cfg/nonCTC-SliceConfigExamples/encoder_randomaccess_vtm_SingleTilePerSlice.cfg @@ -8,7 +8,6 @@ Profile : auto #======== Unit definition ================ MaxCUWidth : 64 # Maximum coding unit width in pixel MaxCUHeight : 64 # Maximum coding unit height in pixel -MaxPartitionDepth : 4 # Maximum coding unit depth #======== Coding Structure ============= IntraPeriod : 32 # Period of I-Frame ( -1 = only first) @@ -107,7 +106,7 @@ LCTUFast : 1 DualITree : 1 # separate partitioning of luma and chroma channels for I-slices MinQTLumaISlice : 8 -MinQTChromaISlice : 4 +MinQTChromaISlice : 4 # minimum QT size in chroma samples for chroma separate tree MinQTNonISlice : 8 MaxMTTHierarchyDepth : 3 MaxMTTHierarchyDepthISliceL : 3 diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 3f5ee3b36c289ab9bb2bced4aacc2d4e7d1122aa..0454edbde48489451098c445244d4fe43e3bced0 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -2215,6 +2215,7 @@ void HLSyntaxReader::parsePictureHeader( PicHeader* picHeader, ParameterSetManag if (sps->getUseDualITree()) { #if JVET_Q0468_Q0469_MIN_LUMA_CB_AND_MIN_QT_FIX + // Since in software minQT[2] is in chroma samples, min CB size in luma samples is first converted into chroma samples for the calculation const int base = std::max(MIN_CU_LOG2, sps->getLog2MinCodingBlockSize() - (int)getChannelTypeScaleX(CHANNEL_TYPE_CHROMA, sps->getChromaFormatIdc())); READ_UVLC(uiCode, "pic_log2_diff_min_qt_min_cb_intra_slice_chroma"); minQT[2] = 1 << (uiCode + base); #else diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index 2caa6ebeb6acb6ae93e8cce6654d3406cf964560..331ff7ff3a29faa0d2cd0761bec7eb186c447b46 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -912,6 +912,7 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) if (pcSPS->getUseDualITree()) { #if JVET_Q0468_Q0469_MIN_LUMA_CB_AND_MIN_QT_FIX + // Since in software minQT[2] is in chroma samples, min CB size in luma samples is first converted into chroma samples for the calculation const int minDiff = (int)floorLog2(pcSPS->getMinQTSize(I_SLICE, CHANNEL_TYPE_CHROMA)) - std::max(MIN_CU_LOG2, pcSPS->getLog2MinCodingBlockSize() - (int)getChannelTypeScaleX(CHANNEL_TYPE_CHROMA, pcSPS->getChromaFormatIdc())); CHECK(minDiff < 0, "Wrong min intra QT chroma"); WRITE_UVLC(minDiff, "sps_log2_diff_min_qt_min_cb_intra_slice_chroma"); @@ -1522,6 +1523,7 @@ void HLSWriter::codePictureHeader( PicHeader* picHeader ) if (sps->getUseDualITree()) { #if JVET_Q0468_Q0469_MIN_LUMA_CB_AND_MIN_QT_FIX + // Since in software minQT[2] is in chroma samples, min CB size in luma samples is first converted into chroma samples for the calculation const int minDiff = (int)floorLog2(picHeader->getMinQTSize(I_SLICE, CHANNEL_TYPE_CHROMA)) - std::max(MIN_CU_LOG2, sps->getLog2MinCodingBlockSize() - (int)getChannelTypeScaleX(CHANNEL_TYPE_CHROMA, sps->getChromaFormatIdc())); CHECK(minDiff < 0, "Wrong min intra QT chroma"); WRITE_UVLC(minDiff, "pic_log2_diff_min_qt_min_cb_intra_slice_chroma");