diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index b03001080d23a5cef156e2262a87e1aa6441ba67..a363ffcb2266c789abcdf67b6ba6f1a5532c1a56 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -51,6 +51,7 @@ #include <cassert> //########### place macros to be removed in next cycle below this line ############### +#define JVET_R0266_DESC 1 // JVET-R0266: change the signalling of the PPS ID from ue(v) to u(6); Code virtual boundary positions using ue(v) #define JVET_R0330_CRS_CLIP_REM 1 // JVET-R0330: Remove redundant clipping in chroma residual scaling factor derivation #define JVET_R0059_RPL_CLEANUP 1 // JVET-R0059 aspect 2: Condition the signalling of ltrp_in_header_flag[ listIdx ][ rplsIdx ]. diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 8193a66945070203cdc902f63a9d79f31f30a5fc..646bcffb95aba3ef1363892941a1eb2712e9664a 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -427,8 +427,11 @@ void HLSyntaxReader::parsePPS( PPS* pcPPS ) uint32_t uiCode; int iCode; - +#if JVET_R0266_DESC + READ_CODE(6, uiCode, "pps_pic_parameter_set_id"); +#else READ_UVLC( uiCode, "pps_pic_parameter_set_id"); +#endif CHECK(uiCode > 63, "PPS id exceeds boundary (63)"); pcPPS->setPPSId (uiCode); @@ -2487,12 +2490,20 @@ void HLSyntaxReader::parsePictureHeader( PicHeader* picHeader, ParameterSetManag READ_CODE( 2, uiCode, "ph_num_ver_virtual_boundaries"); picHeader->setNumVerVirtualBoundaries( uiCode ); for( unsigned i = 0; i < picHeader->getNumVerVirtualBoundaries(); i++ ) { +#if JVET_R0266_DESC + READ_UVLC(uiCode, "ph_virtual_boundaries_pos_x"); picHeader->setVirtualBoundariesPosX(uiCode << 3, i); +#else READ_CODE(13, uiCode, "ph_virtual_boundaries_pos_x"); picHeader->setVirtualBoundariesPosX(uiCode << 3, i); +#endif } READ_CODE( 2, uiCode, "ph_num_hor_virtual_boundaries"); picHeader->setNumHorVirtualBoundaries( uiCode ); for( unsigned i = 0; i < picHeader->getNumHorVirtualBoundaries(); i++ ) { +#if JVET_R0266_DESC + READ_UVLC(uiCode, "ph_virtual_boundaries_pos_y"); picHeader->setVirtualBoundariesPosY(uiCode << 3, i); +#else READ_CODE(13, uiCode, "ph_virtual_boundaries_pos_y"); picHeader->setVirtualBoundariesPosY(uiCode << 3, i); +#endif } } else diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index 6a6cb98491fe9e0a1ee126cb9ccf2d6d1953c86c..09b46b2405325ad296f7951195362868b3d29a7f 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -255,8 +255,11 @@ void HLSWriter::codePPS( const PPS* pcPPS ) #if ENABLE_TRACING xTracePPSHeader (); #endif - +#if JVET_R0266_DESC + WRITE_CODE( pcPPS->getPPSId(), 6, "pps_pic_parameter_set_id" ); +#else WRITE_UVLC( pcPPS->getPPSId(), "pps_pic_parameter_set_id" ); +#endif WRITE_CODE( pcPPS->getSPSId(), 4, "pps_seq_parameter_set_id" ); WRITE_FLAG( pcPPS->getMixedNaluTypesInPicFlag() ? 1 : 0, "mixed_nalu_types_in_pic_flag" ); @@ -1136,12 +1139,20 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) WRITE_CODE( pcSPS->getNumVerVirtualBoundaries(), 2, "sps_num_ver_virtual_boundaries"); for( unsigned i = 0; i < pcSPS->getNumVerVirtualBoundaries(); i++ ) { +#if JVET_R0266_DESC + WRITE_UVLC((pcSPS->getVirtualBoundariesPosX(i)>>3), "sps_virtual_boundaries_pos_x"); +#else WRITE_CODE((pcSPS->getVirtualBoundariesPosX(i)>>3), 13, "sps_virtual_boundaries_pos_x"); +#endif } WRITE_CODE(pcSPS->getNumHorVirtualBoundaries(), 2, "sps_num_hor_virtual_boundaries"); for( unsigned i = 0; i < pcSPS->getNumHorVirtualBoundaries(); i++ ) { +#if JVET_R0266_DESC + WRITE_UVLC((pcSPS->getVirtualBoundariesPosY(i)>>3), "sps_virtual_boundaries_pos_y"); +#else WRITE_CODE((pcSPS->getVirtualBoundariesPosY(i)>>3), 13, "sps_virtual_boundaries_pos_y"); +#endif } } }