From b5d4513a21044e653975896935d7dce857551f7d Mon Sep 17 00:00:00 2001 From: eeehey <yonghe@qti.qualcomm.com> Date: Mon, 4 May 2020 21:56:11 -0700 Subject: [PATCH] code PPS ID using u(6) and virtual boundary position using ue(v) --- source/Lib/CommonLib/TypeDef.h | 1 + source/Lib/DecoderLib/VLCReader.cpp | 13 ++++++++++++- source/Lib/EncoderLib/VLCWriter.cpp | 13 ++++++++++++- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index b03001080d..a363ffcb22 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 8193a66945..646bcffb95 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 6a6cb98491..09b46b2405 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 } } } -- GitLab