diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index 87e0eec2ddf4cf83d88f4e5c22adf82328dc705d..cbbc2fc0c96bc3890df37a2e0b0ada1ee7de97c0 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -112,7 +112,6 @@ -#define JVET_R0059_RPL_CLEANUP 1 // JVET-R0059 aspect 2: Condition the signalling of ltrp_in_header_flag[ listIdx ][ rplsIdx ]. #define JVET_R0202_WHEN_PH_IN_SH_INFO_FLAGS_EQUAL_0 1 // JVET-R0202 When sh_picture_header_in_slice_header_flag is equal to 1, rpl_info_in_ph_flag, dbf_info_in_ph_flag, sao_info_in_ph_flag, wp_info_in_ph_flag, qp_delta_info_in_ph_flag shall be be equal to 0 diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index f4c88acf22790d1cbeb5358b37d671b9c1dc1fff..80df67e4e3865b55d7006458608b15ceefc8cbe2 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -316,11 +316,7 @@ void HLSyntaxReader::copyRefPicList(SPS* sps, ReferencePictureList* source_rpl, } } -#if JVET_R0059_RPL_CLEANUP void HLSyntaxReader::parseRefPicList(SPS* sps, ReferencePictureList* rpl, int rplIdx) -#else -void HLSyntaxReader::parseRefPicList(SPS* sps, ReferencePictureList* rpl) -#endif { uint32_t code; READ_UVLC(code, "num_ref_entries[ listIdx ][ rplsIdx ]"); @@ -329,21 +325,15 @@ void HLSyntaxReader::parseRefPicList(SPS* sps, ReferencePictureList* rpl) uint32_t numLtrp = 0; uint32_t numIlrp = 0; -#if JVET_R0059_RPL_CLEANUP if (sps->getLongTermRefsPresent() && rplIdx != -1) -#else - if (sps->getLongTermRefsPresent()) -#endif { READ_FLAG(code, "ltrp_in_slice_header_flag[ listIdx ][ rplsIdx ]"); rpl->setLtrpInSliceHeaderFlag(code); } -#if JVET_R0059_RPL_CLEANUP else if(sps->getLongTermRefsPresent()) { rpl->setLtrpInSliceHeaderFlag( 1 ); } -#endif bool isLongTerm; int prevDelta = MAX_INT; @@ -1728,11 +1718,7 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) for (uint32_t ii = 0; ii < numberOfRPL; ii++) { rpl = rplList->getReferencePictureList(ii); -#if JVET_R0059_RPL_CLEANUP parseRefPicList(pcSPS, rpl, ii); -#else - parseRefPicList(pcSPS, rpl); -#endif } //Read candidate for List1 @@ -1745,11 +1731,7 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) for (uint32_t ii = 0; ii < numberOfRPL; ii++) { rpl = rplList->getReferencePictureList(ii); -#if JVET_R0059_RPL_CLEANUP parseRefPicList(pcSPS, rpl, ii); -#else - parseRefPicList(pcSPS, rpl); -#endif } } else @@ -2857,11 +2839,7 @@ void HLSyntaxReader::parsePictureHeader( PicHeader* picHeader, ParameterSetManag { ReferencePictureList* rpl = picHeader->getLocalRPL( listIdx ); (*rpl) = ReferencePictureList(); -#if JVET_R0059_RPL_CLEANUP parseRefPicList(sps, rpl, -1); -#else - parseRefPicList(sps, rpl); -#endif picHeader->setRPLIdx(listIdx, -1); picHeader->setRPL(listIdx, rpl); } @@ -3831,11 +3809,7 @@ void HLSyntaxReader::parseSliceHeader (Slice* pcSlice, PicHeader* picHeader, Par { ReferencePictureList* rpl0 = pcSlice->getLocalRPL0(); (*rpl0) = ReferencePictureList(); -#if JVET_R0059_RPL_CLEANUP parseRefPicList(sps, rpl0, -1); -#else - parseRefPicList(sps, rpl0); -#endif pcSlice->setRPL0idx(-1); pcSlice->setRPL0(rpl0); } @@ -3941,11 +3915,7 @@ void HLSyntaxReader::parseSliceHeader (Slice* pcSlice, PicHeader* picHeader, Par { ReferencePictureList* rpl1 = pcSlice->getLocalRPL1(); (*rpl1) = ReferencePictureList(); -#if JVET_R0059_RPL_CLEANUP parseRefPicList(sps, rpl1, -1); -#else - parseRefPicList(sps, rpl1); -#endif pcSlice->setRPL1idx(-1); pcSlice->setRPL1(rpl1); } diff --git a/source/Lib/DecoderLib/VLCReader.h b/source/Lib/DecoderLib/VLCReader.h index 51b506c332e9fa40b7e52017b920e4b6d3939b44..33cebe969bf9936fb6263185003f12e31cfcbe6e 100644 --- a/source/Lib/DecoderLib/VLCReader.h +++ b/source/Lib/DecoderLib/VLCReader.h @@ -152,11 +152,7 @@ public: protected: void copyRefPicList(SPS* pcSPS, ReferencePictureList* source_rpl, ReferencePictureList* dest_rpl); -#if JVET_R0059_RPL_CLEANUP void parseRefPicList(SPS* pcSPS, ReferencePictureList* rpl, int rplIdx); -#else - void parseRefPicList(SPS* pcSPS, ReferencePictureList* rpl); -#endif public: void setBitstream ( InputBitstream* p ) { m_pcBitstream = p; } diff --git a/source/Lib/EncoderLib/EncGOP.cpp b/source/Lib/EncoderLib/EncGOP.cpp index 4043933c95a1d3c8e42f186ee68353ceaa9bde43..11337b9746e3eb53db04a3525651d55173b7a8cf 100644 --- a/source/Lib/EncoderLib/EncGOP.cpp +++ b/source/Lib/EncoderLib/EncGOP.cpp @@ -5482,11 +5482,7 @@ void EncGOP::xCreateExplicitReferencePictureSetFromReference( Slice* slice, PicL int numPics = numOfLTRPL0 + numOfSTRPL0; pLocalRPL0->setNumberOfActivePictures( ( numPics < rpl0->getNumberOfActivePictures() ? numPics : rpl0->getNumberOfActivePictures() ) + numOfILRPL0 ); -#if JVET_R0059_RPL_CLEANUP pLocalRPL0->setLtrpInSliceHeaderFlag( 1 ); -#else - pLocalRPL0->setLtrpInSliceHeaderFlag( rpl0->getLtrpInSliceHeaderFlag() ); -#endif slice->setRPL0idx( -1 ); slice->setRPL0( pLocalRPL0 ); @@ -5530,11 +5526,7 @@ void EncGOP::xCreateExplicitReferencePictureSetFromReference( Slice* slice, PicL numPics = numOfLTRPL1 + numOfSTRPL1; pLocalRPL1->setNumberOfActivePictures( ( isDisallowMixedRefPic ? numPics : ( numPics < rpl1->getNumberOfActivePictures() ? numPics : rpl1->getNumberOfActivePictures() ) ) + numOfILRPL1 ); -#if JVET_R0059_RPL_CLEANUP pLocalRPL1->setLtrpInSliceHeaderFlag( 1 ); -#else - pLocalRPL1->setLtrpInSliceHeaderFlag( rpl1->getLtrpInSliceHeaderFlag() ); -#endif slice->setRPL1idx( -1 ); slice->setRPL1( pLocalRPL1 ); } diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index b11651b4340a55fd471610a39ff534dbf37c1b73..4be57ea6700559e7f4b6cab829bd9568bb39b27b 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -180,20 +180,12 @@ void AUDWriter::codeAUD(OutputBitstream& bs, const bool audIrapOrGdrAuFlag, cons xWriteRbspTrailingBits(); } -#if JVET_R0059_RPL_CLEANUP void HLSWriter::xCodeRefPicList( const ReferencePictureList* rpl, bool isLongTermPresent, uint32_t ltLsbBitsCount, const bool isForbiddenZeroDeltaPoc, int rplIdx) -#else -void HLSWriter::xCodeRefPicList( const ReferencePictureList* rpl, bool isLongTermPresent, uint32_t ltLsbBitsCount, const bool isForbiddenZeroDeltaPoc) -#endif { uint32_t numRefPic = rpl->getNumberOfShorttermPictures() + rpl->getNumberOfLongtermPictures() + rpl->getNumberOfInterLayerPictures(); WRITE_UVLC( numRefPic, "num_ref_entries[ listIdx ][ rplsIdx ]" ); -#if JVET_R0059_RPL_CLEANUP if (isLongTermPresent && rplIdx != -1) -#else - if (isLongTermPresent) -#endif { WRITE_FLAG(rpl->getLtrpInSliceHeaderFlag(), "ltrp_in_slice_header_flag[ listIdx ][ rplsIdx ]"); } @@ -1030,11 +1022,7 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) for (int ii = 0; ii < numberOfRPL; ii++) { const ReferencePictureList* rpl = rplList0->getReferencePictureList(ii); -#if JVET_R0059_RPL_CLEANUP xCodeRefPicList(rpl, pcSPS->getLongTermRefsPresent(), pcSPS->getBitsForPOC(), !pcSPS->getUseWP() && !pcSPS->getUseWPBiPred(), ii); -#else - xCodeRefPicList( rpl, pcSPS->getLongTermRefsPresent(), pcSPS->getBitsForPOC(), !pcSPS->getUseWP() && !pcSPS->getUseWPBiPred()); -#endif } //Write candidate for List1 @@ -1045,11 +1033,7 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) for (int ii = 0; ii < numberOfRPL; ii++) { const ReferencePictureList* rpl = rplList1->getReferencePictureList(ii); -#if JVET_R0059_RPL_CLEANUP xCodeRefPicList(rpl, pcSPS->getLongTermRefsPresent(), pcSPS->getBitsForPOC(), !pcSPS->getUseWP() && !pcSPS->getUseWPBiPred(), ii); -#else - xCodeRefPicList( rpl, pcSPS->getLongTermRefsPresent(), pcSPS->getBitsForPOC(), !pcSPS->getUseWP() && !pcSPS->getUseWPBiPred()); -#endif } } @@ -1789,11 +1773,7 @@ void HLSWriter::codePictureHeader( PicHeader* picHeader, bool writeRbspTrailingB // explicit RPL in picture header else { -#if JVET_R0059_RPL_CLEANUP xCodeRefPicList( picHeader->getRPL(listIdx), sps->getLongTermRefsPresent(), sps->getBitsForPOC(), !sps->getUseWP() && !sps->getUseWPBiPred(), -1); -#else - xCodeRefPicList( picHeader->getRPL(listIdx), sps->getLongTermRefsPresent(), sps->getBitsForPOC(), !sps->getUseWP() && !sps->getUseWPBiPred()); -#endif } // POC MSB cycle signalling for LTRP @@ -2294,11 +2274,7 @@ void HLSWriter::codeSliceHeader ( Slice* pcSlice ) } else { //write local RPL0 -#if JVET_R0059_RPL_CLEANUP xCodeRefPicList( pcSlice->getRPL0(), pcSlice->getSPS()->getLongTermRefsPresent(), pcSlice->getSPS()->getBitsForPOC(), !pcSlice->getSPS()->getUseWP() && !pcSlice->getSPS()->getUseWPBiPred(), -1); -#else - xCodeRefPicList( pcSlice->getRPL0(), pcSlice->getSPS()->getLongTermRefsPresent(), pcSlice->getSPS()->getBitsForPOC(), !pcSlice->getSPS()->getUseWP() && !pcSlice->getSPS()->getUseWPBiPred()); -#endif } //Deal POC Msb cycle signalling for LTRP if (pcSlice->getRPL0()->getNumberOfLongtermPictures()) @@ -2359,11 +2335,7 @@ void HLSWriter::codeSliceHeader ( Slice* pcSlice ) } else { //write local RPL1 -#if JVET_R0059_RPL_CLEANUP xCodeRefPicList( pcSlice->getRPL1(), pcSlice->getSPS()->getLongTermRefsPresent(), pcSlice->getSPS()->getBitsForPOC(), !pcSlice->getSPS()->getUseWP() && !pcSlice->getSPS()->getUseWPBiPred(), -1); -#else - xCodeRefPicList( pcSlice->getRPL1(), pcSlice->getSPS()->getLongTermRefsPresent(), pcSlice->getSPS()->getBitsForPOC(), !pcSlice->getSPS()->getUseWP() && !pcSlice->getSPS()->getUseWPBiPred()); -#endif } //Deal POC Msb cycle signalling for LTRP if (pcSlice->getRPL1()->getNumberOfLongtermPictures()) diff --git a/source/Lib/EncoderLib/VLCWriter.h b/source/Lib/EncoderLib/VLCWriter.h index c47e8b8935e1896ccd331493a2ee5c9d57ae2686..bc2b28d18db1182d6b75986d6d95bd54d9da67a6 100644 --- a/source/Lib/EncoderLib/VLCWriter.h +++ b/source/Lib/EncoderLib/VLCWriter.h @@ -113,11 +113,7 @@ public: virtual ~HLSWriter() {} private: -#if JVET_R0059_RPL_CLEANUP void xCodeRefPicList( const ReferencePictureList* rpl, bool isLongTermPresent, uint32_t ltLsbBitsCount, const bool isForbiddenZeroDeltaPoc, int rplIdx); -#else - void xCodeRefPicList( const ReferencePictureList* rpl, bool isLongTermPresent, uint32_t ltLsbBitsCount, const bool isForbiddenZeroDeltaPoc); -#endif bool xFindMatchingLTRP ( Slice* pcSlice, uint32_t *ltrpsIndex, int ltrpPOC, bool usedFlag ); void xCodePredWeightTable ( Slice* pcSlice ); void xCodePredWeightTable ( PicHeader *picHeader, const SPS *sps );