diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index fb6323fe41e6704be778138144e61773ed845b25..2c670d3f9ab88f00d0df2b979a20e6c2b77bf6ef 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -171,6 +171,8 @@ #define JVET_R0214_MMVD_SYNTAX_MODIFICATION 1 // JVET-R0214: MMVD syntax modifications +#define JVET_R0108_DCI_SIGNALING 1 // JVET-R0108 Proposal 1 DCI signaling changes + //########### place macros to be be kept below this line ############### #define JVET_R0164_MEAN_SCALED_SATD 1 // JVET-R0164: Use a mean scaled version of SATD in encoder decisions diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 436870dd4cc6fa312dbb45a9c392aa6650d903ac..81c41b921f15a6cc8240ceebc1310955dd00e582 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -2114,8 +2114,12 @@ void HLSyntaxReader::parseDCI(DCI* dci) #endif uint32_t symbol; +#if JVET_R0108_DCI_SIGNALING + READ_CODE(4, symbol, "dci_reserved_zero_4bits"); +#else READ_CODE(3, symbol, "dci_max_sub_layers_minus1"); dci->setMaxSubLayersMinus1(symbol); READ_CODE(1, symbol, "dci_reserved_zero_bit"); CHECK(symbol != 0, "dci_reserved_zero_bit must be equal to zero"); +#endif uint32_t numPTLs; READ_CODE(4, numPTLs, "dci_num_ptls_minus1"); diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index ed9d5ce1b26d5060321a95d3ed052648f655cf50..b03c45c8d1a8cc28e4340e3a69d6c35144a9babf 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -1347,10 +1347,14 @@ void HLSWriter::codeDCI(const DCI* dci) #if ENABLE_TRACING xTraceDCIHeader(); #endif +#if JVET_R0108_DCI_SIGNALING + WRITE_CODE(0, 4, "dci_reserved_zero_4bits"); +#else WRITE_CODE(dci->getMaxSubLayersMinus1(), 3, "dci_max_sub_layers_minus1"); WRITE_CODE(0, 1, "dci_reserved_zero_bit"); +#endif uint32_t numPTLs = (uint32_t)dci->getNumPTLs(); - CHECK(numPTLs < 1, "At least one PTL must be available in DCI"); + CHECK( (numPTLs < 1) || ( numPTLs > 15), "dci_num_plts_minus1 shall be in the range of 0 - 14"); WRITE_CODE(numPTLs - 1, 4, "dci_num_ptls_minus1");