diff --git a/source/App/EncoderApp/EncApp.cpp b/source/App/EncoderApp/EncApp.cpp index 59645c1d321b0896507ab521e2130fdf21e6011d..2a5d13b77187b44b40e6f4e09f3e5c2f8ab778f8 100644 --- a/source/App/EncoderApp/EncApp.cpp +++ b/source/App/EncoderApp/EncApp.cpp @@ -274,11 +274,9 @@ void EncApp::xInitLibCfg( int layerIdx ) m_cEncLib.setPsnrThresholdRPR (m_psnrThresholdRPR, m_psnrThresholdRPR2, m_psnrThresholdRPR3); m_cEncLib.setQpOffsetRPR (m_qpOffsetRPR, m_qpOffsetRPR2, m_qpOffsetRPR3); m_cEncLib.setQpOffsetChromaRPR (m_qpOffsetChromaRPR, m_qpOffsetChromaRPR2, m_qpOffsetChromaRPR3); -#if JVET_AC0096 m_cEncLib.setRprFunctionalityTestingEnabledFlag (m_rprFunctionalityTestingEnabledFlag); m_cEncLib.setRprSwitchingSegmentSize (m_rprSwitchingSegmentSize); m_cEncLib.setRprPopulatePPSatIntraFlag (m_rprPopulatePPSatIntraFlag); -#endif m_cEncLib.setRprEnabled (m_rprEnabledFlag); m_cEncLib.setResChangeInClvsEnabled ( m_resChangeInClvsEnabled ); m_cEncLib.setSwitchPocPeriod ( m_switchPocPeriod ); @@ -758,7 +756,6 @@ void EncApp::xInitLibCfg( int layerIdx ) m_cEncLib.setLadfIntervalLowerBound(m_ladfIntervalLowerBound[k], k); } } -#if JVET_AC0096 if (m_rprFunctionalityTestingEnabledFlag) { for (int k = 0; k < m_rprSwitchingListSize; k++) @@ -768,7 +765,6 @@ void EncApp::xInitLibCfg( int layerIdx ) } m_cEncLib.setRprSwitchingListSize(m_rprSwitchingListSize); } -#endif m_cEncLib.setUseCiip ( m_ciip ); m_cEncLib.setUseGeo ( m_Geo ); m_cEncLib.setUseHashMECfgEnable (m_HashME); @@ -1928,11 +1924,7 @@ void EncApp::xWriteOutput(int numEncoded, std::list<PelUnitBuf *> &recBufList) const int layerId = getVPS() ? getVPS()->getGeneralLayerIdx(m_cEncLib.getLayerId()) : 0; const SPS& sps = *m_cEncLib.getSPS(layerId); int ppsID = layerId; -#if JVET_AC0096 if ((m_gopBasedRPREnabledFlag && (m_cEncLib.getBaseQP() >= m_cEncLib.getGOPBasedRPRQPThreshold())) || m_rprFunctionalityTestingEnabledFlag) -#else - if (m_gopBasedRPREnabledFlag && (m_cEncLib.getBaseQP() >= m_cEncLib.getGOPBasedRPRQPThreshold())) -#endif { const PPS& pps1 = *m_cEncLib.getPPS(ENC_PPS_ID_RPR); const PPS& pps2 = *m_cEncLib.getPPS(ENC_PPS_ID_RPR2); diff --git a/source/App/EncoderApp/EncAppCfg.cpp b/source/App/EncoderApp/EncAppCfg.cpp index a152a2a31477e1c764a70becdbce8ba4c11804f9..78e186d417e625ba5f8b87d4611159a15031e36f 100644 --- a/source/App/EncoderApp/EncAppCfg.cpp +++ b/source/App/EncoderApp/EncAppCfg.cpp @@ -712,12 +712,10 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) SMultiValueInput<unsigned> cfg_virtualBoundariesPosX (0, std::numeric_limits<uint32_t>::max(), 0, 3); SMultiValueInput<unsigned> cfg_virtualBoundariesPosY (0, std::numeric_limits<uint32_t>::max(), 0, 3); -#if JVET_AC0096 const int defaultRprSwitchingResolutionOrderList[12] = { 1, 0, 2, 0, 3, 0, 1, 0, 2, 0, 3, 0 }; const int defaultRprSwitchingQPOffsetOrderList[12] = { -2, 0, -4, 0, -6, 0, -2, 0, -4, 0, -6, 0 }; SMultiValueInput<int> cfg_rprSwitchingResolutionOrderList(0, 3, 0, MAX_RPR_SWITCHING_ORDER_LIST_SIZE, defaultRprSwitchingResolutionOrderList, 12); SMultiValueInput<int> cfg_rprSwitchingQPOffsetOrderList(-MAX_QP, MAX_QP, 0, MAX_RPR_SWITCHING_ORDER_LIST_SIZE, defaultRprSwitchingQPOffsetOrderList, 12); -#endif SMultiValueInput<uint32_t> cfg_SubProfile(0, std::numeric_limits<uint8_t>::max(), 0, std::numeric_limits<uint8_t>::max()); SMultiValueInput<uint32_t> cfg_subPicCtuTopLeftX(0, std::numeric_limits<uint32_t>::max(), 0, MAX_NUM_SUB_PICS); @@ -1684,14 +1682,12 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) ("QpOffsetChromaRPR", m_qpOffsetChromaRPR, -6, "QP offset for RPR (-6 for 0.5x)") ("QpOffsetChromaRPR2", m_qpOffsetChromaRPR2, -4, "QP offset for RPR2 (-4 for 2/3x)") ("QpOffsetChromaRPR3", m_qpOffsetChromaRPR3, -2, "QP offset for RPR3 (-2 for 4/5x)") -#if JVET_AC0096 ("RPRFunctionalityTesting", m_rprFunctionalityTestingEnabledFlag, false, "Enables RPR functionality testing") ("RPRSwitchingResolutionOrderList", cfg_rprSwitchingResolutionOrderList, cfg_rprSwitchingResolutionOrderList, "Order of resolutions for each segment in RPR functionality testing where 0,1,2,3 corresponds to full resolution,4/5,2/3 and 1/2") ("RPRSwitchingQPOffsetOrderList", cfg_rprSwitchingQPOffsetOrderList, cfg_rprSwitchingQPOffsetOrderList, "Order of QP offset for each segment in RPR functionality testing, where the QP is modified according to the given offset") ("RPRSwitchingSegmentSize", m_rprSwitchingSegmentSize, 32, "Segment size with same resolution") ("RPRSwitchingTime", m_rprSwitchingTime, 0.0, "Segment switching time in seconds, when non-zero it defines the segment size according to frame rate (a multiple of 8)") ("RPRPopulatePPSatIntra", m_rprPopulatePPSatIntraFlag, false, "Populate all PPS which can be used in the sequence at the Intra, e.g. full-res, 4/5, 2/3 and 1/2") -#endif ( "FractionNumFrames", m_fractionOfFrames, 1.0, "Encode a fraction of the specified in FramesToBeEncoded frames" ) ( "SwitchPocPeriod", m_switchPocPeriod, 0, "Switch POC period for RPR" ) ( "UpscaledOutput", m_upscaledOutput, 0, "Output upscaled (2), decoded but in full resolution buffer (1) or decoded cropped (0, default) picture for RPR" ) @@ -1986,11 +1982,7 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) m_scalingRatioVer = 2.0; } } -#if JVET_AC0096 m_resChangeInClvsEnabled = m_scalingRatioHor != 1.0 || m_scalingRatioVer != 1.0 || m_gopBasedRPREnabledFlag || m_rprFunctionalityTestingEnabledFlag; -#else - m_resChangeInClvsEnabled = m_scalingRatioHor != 1.0 || m_scalingRatioVer != 1.0 || m_gopBasedRPREnabledFlag; -#endif m_resChangeInClvsEnabled = m_resChangeInClvsEnabled && m_rprEnabledFlag; if( m_constrainedRaslEncoding ) @@ -2878,7 +2870,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) m_cuChromaQpOffsetList[i].u.comp.jointCbCrOffset = cfg_cbCrQpOffsetList.values.size() ? cfg_cbCrQpOffsetList.values[i] : 0; } -#if JVET_AC0096 if (m_rprFunctionalityTestingEnabledFlag) { m_upscaledOutput = 2; @@ -2902,7 +2893,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) m_rprSwitchingSegmentSize = segmentSize; } } -#endif if ( m_LadfEnabed ) { CHECK(m_ladfNumIntervals != cfg_ladfQpOffset.values.size(), @@ -5502,30 +5492,16 @@ void EncAppCfg::xPrintParameter() if (m_resChangeInClvsEnabled) { -#if !JVET_AC0096 - msg( VERBOSE, "RPR:(%1.2lfx, %1.2lfx)|%d ", m_scalingRatioHor, m_scalingRatioVer, m_switchPocPeriod ); -#endif -#if JVET_AC0096 if (m_gopBasedRPREnabledFlag || m_rprFunctionalityTestingEnabledFlag) -#else - if (m_gopBasedRPREnabledFlag) -#endif { -#if JVET_AC0096 msg(VERBOSE, "RPR:(%1.2lfx, %1.2lfx)|%d ", m_scalingRatioHor, m_scalingRatioVer, m_rprFunctionalityTestingEnabledFlag ? m_rprSwitchingSegmentSize : m_gopSize); msg(VERBOSE, "RPR2:(%1.2lfx, %1.2lfx)|%d ", m_scalingRatioHor2, m_scalingRatioVer2, m_rprFunctionalityTestingEnabledFlag ? m_rprSwitchingSegmentSize : m_gopSize); msg(VERBOSE, "RPR3:(%1.2lfx, %1.2lfx)|%d ", m_scalingRatioHor3, m_scalingRatioVer3, m_rprFunctionalityTestingEnabledFlag ? m_rprSwitchingSegmentSize : m_gopSize); -#else - msg(VERBOSE, "RPR2:(%1.2lfx, %1.2lfx)|%d ", m_scalingRatioHor2, m_scalingRatioVer2, m_switchPocPeriod); - msg(VERBOSE, "RPR3:(%1.2lfx, %1.2lfx)|%d ", m_scalingRatioHor3, m_scalingRatioVer3, m_switchPocPeriod); -#endif } -#if JVET_AC0096 else { msg(VERBOSE, "RPR:(%1.2lfx, %1.2lfx)|%d ", m_scalingRatioHor, m_scalingRatioVer, m_switchPocPeriod); } -#endif } else { diff --git a/source/App/EncoderApp/EncAppCfg.h b/source/App/EncoderApp/EncAppCfg.h index 47fd45e77d9dcd3f3b050352512a7129a70d1452..32b4c06ba3036e5b84e00eaac41bf6582af8a6da 100644 --- a/source/App/EncoderApp/EncAppCfg.h +++ b/source/App/EncoderApp/EncAppCfg.h @@ -990,7 +990,6 @@ protected: int m_qpOffsetChromaRPR; int m_qpOffsetChromaRPR2; int m_qpOffsetChromaRPR3; -#if JVET_AC0096 int m_rprSwitchingResolutionOrderList[MAX_RPR_SWITCHING_ORDER_LIST_SIZE]; int m_rprSwitchingQPOffsetOrderList[MAX_RPR_SWITCHING_ORDER_LIST_SIZE]; int m_rprSwitchingListSize; @@ -998,7 +997,6 @@ protected: bool m_rprPopulatePPSatIntraFlag; int m_rprSwitchingSegmentSize; double m_rprSwitchingTime; -#endif bool m_resChangeInClvsEnabled; bool m_refMetricsEnabled; double m_fractionOfFrames; ///< encode a fraction of the frames as specified in FramesToBeEncoded diff --git a/source/Lib/CommonLib/CommonDef.h b/source/Lib/CommonLib/CommonDef.h index 052c0dba35e6e0a477e8fac6c12a6ef84f7d832a..492534f550c723c4ab33e999354ed77235cd92ba 100644 --- a/source/Lib/CommonLib/CommonDef.h +++ b/source/Lib/CommonLib/CommonDef.h @@ -462,9 +462,7 @@ static constexpr int MAX_FILTER_SIZE = NTAPS_LUMA > NTAPS_CHROMA ? NTAPS_LUM static constexpr int MAX_LADF_INTERVALS = 5; /// max number of luma adaptive deblocking filter qp offset intervals -#if JVET_AC0096 static constexpr int MAX_RPR_SWITCHING_ORDER_LIST_SIZE = 32; /// max number of pre-defined RPR switching segments -#endif static constexpr int ATMVP_SUB_BLOCK_SIZE = 3; ///< sub-block size for ATMVP static constexpr int GEO_MAX_NUM_UNI_CANDS = 6; static constexpr int GEO_MAX_NUM_CANDS = GEO_MAX_NUM_UNI_CANDS * (GEO_MAX_NUM_UNI_CANDS - 1); diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index 53162de02448188efd87cd8ef867d199324ec373..7b8bd1afe59e5b6b27620908a29b8347a7c5d58a 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -56,7 +56,6 @@ //########### place macros to be removed in next cycle below this line ############### -#define JVET_AC0096 1 #define JVET_AC0058_SEI 1 #define JVET_AC0154 1 #define JVET_AC0127_BIT_MASKING_NNPFC_PURPOSE 1 diff --git a/source/Lib/EncoderLib/EncCfg.h b/source/Lib/EncoderLib/EncCfg.h index 44656a613748d9725c2ecdf16d15e247970714f6..9bd4cf08a60d5534d8319c407a5812831a8bf717 100644 --- a/source/Lib/EncoderLib/EncCfg.h +++ b/source/Lib/EncoderLib/EncCfg.h @@ -1044,7 +1044,6 @@ protected: int m_qpOffsetChromaRPR; int m_qpOffsetChromaRPR2; int m_qpOffsetChromaRPR3; -#if JVET_AC0096 int m_rprSwitchingResolutionOrderList[MAX_RPR_SWITCHING_ORDER_LIST_SIZE]; int m_rprSwitchingQPOffsetOrderList[MAX_RPR_SWITCHING_ORDER_LIST_SIZE]; int m_rprSwitchingListSize; @@ -1052,7 +1051,6 @@ protected: bool m_rprPopulatePPSatIntraFlag; int m_rprSwitchingSegmentSize; double m_rprSwitchingTime; -#endif bool m_rprEnabledFlag; bool m_resChangeInClvsEnabled; int m_switchPocPeriod; @@ -2846,7 +2844,6 @@ public: int getQpOffsetChromaRPR() const { return m_qpOffsetChromaRPR; } int getQpOffsetChromaRPR2() const { return m_qpOffsetChromaRPR2; } int getQpOffsetChromaRPR3() const { return m_qpOffsetChromaRPR3; } -#if JVET_AC0096 bool getRprFunctionalityTestingEnabledFlag() const { return m_rprFunctionalityTestingEnabledFlag; } void setRprFunctionalityTestingEnabledFlag(bool flag) { m_rprFunctionalityTestingEnabledFlag = flag; } bool getRprPopulatePPSatIntraFlag() const { return m_rprPopulatePPSatIntraFlag; } @@ -2873,7 +2870,6 @@ public: } return num; } -#endif void setResChangeInClvsEnabled(bool b) { m_resChangeInClvsEnabled = b; } bool isResChangeInClvsEnabled() const { return m_resChangeInClvsEnabled; } void setRefLayerMetricsEnabled(bool b) { m_refLayerMetricsEnabled = b; } diff --git a/source/Lib/EncoderLib/EncGOP.cpp b/source/Lib/EncoderLib/EncGOP.cpp index 975ba7da815b24d93f8c6adb8ec51261b3bd2e25..95562bff7f865ba40f2d0eac8a7bf30c1c143fdf 100644 --- a/source/Lib/EncoderLib/EncGOP.cpp +++ b/source/Lib/EncoderLib/EncGOP.cpp @@ -427,7 +427,6 @@ int EncGOP::xWriteParameterSets(AccessUnit &accessUnit, Slice *slice, const bool if( newPPS ) // Note this assumes that all changes to the PPS are made at the EncLib level prior to picture creation (EncLib::xGetNewPicBuffer). { -#if JVET_AC0096 if (m_pcEncLib->getRprPopulatePPSatIntraFlag()) { if (slice->isIntra()) @@ -463,9 +462,6 @@ int EncGOP::xWriteParameterSets(AccessUnit &accessUnit, Slice *slice, const bool { actualTotalBits += xWritePPS(accessUnit, slice->getPPS(), m_pcEncLib->getLayerId()); } -#else - actualTotalBits += xWritePPS( accessUnit, slice->getPPS(), m_pcEncLib->getLayerId() ); -#endif } return actualTotalBits; diff --git a/source/Lib/EncoderLib/EncLib.cpp b/source/Lib/EncoderLib/EncLib.cpp index f6662261137c60d49a98d4e404b81c4369c5bb15..333a937e1a1a5b35e4c7ecb74057a50880573f87 100644 --- a/source/Lib/EncoderLib/EncLib.cpp +++ b/source/Lib/EncoderLib/EncLib.cpp @@ -283,11 +283,7 @@ void EncLib::init(AUWriterIf *auWriterIf) pps.setWrapAroundOffset ( 0 ); } } -#if JVET_AC0096 if (m_resChangeInClvsEnabled && ((m_gopBasedRPREnabledFlag && (m_iQP >= getGOPBasedRPRQPThreshold())) || m_rprFunctionalityTestingEnabledFlag)) -#else - if (m_resChangeInClvsEnabled && m_gopBasedRPREnabledFlag && (m_iQP >= getGOPBasedRPRQPThreshold())) -#endif { PPS& pps = *(m_ppsMap.allocatePS(ENC_PPS_ID_RPR2)); Window& inputScalingWindow = pps0.getScalingWindow(); @@ -362,11 +358,7 @@ void EncLib::init(AUWriterIf *auWriterIf) pps.setWrapAroundOffset(0); } } -#if JVET_AC0096 if (m_resChangeInClvsEnabled && ((m_gopBasedRPREnabledFlag && (m_iQP >= getGOPBasedRPRQPThreshold())) || m_rprFunctionalityTestingEnabledFlag)) -#else - if (m_resChangeInClvsEnabled && m_gopBasedRPREnabledFlag && (getBaseQP() >= getGOPBasedRPRQPThreshold())) -#endif { PPS& pps = *(m_ppsMap.allocatePS(ENC_PPS_ID_RPR3)); Window& inputScalingWindow = pps0.getScalingWindow(); @@ -760,7 +752,6 @@ bool EncLib::encodePrep(bool flush, PelStorage *pcPicYuvOrg, PelStorage *cPicYuv } } -#if JVET_AC0096 if (m_resChangeInClvsEnabled && m_rprFunctionalityTestingEnabledFlag) { const int poc = m_pocLast + (m_compositeRefEnabled ? 2 : 1); @@ -783,12 +774,7 @@ bool EncLib::encodePrep(bool flush, PelStorage *pcPicYuvOrg, PelStorage *cPicYuv ppsID = m_gopRprPpsId; } } -#endif -#if JVET_AC0096 if (m_resChangeInClvsEnabled && m_intraPeriod == -1 && !m_gopBasedRPREnabledFlag && !m_rprFunctionalityTestingEnabledFlag) -#else - if (m_resChangeInClvsEnabled && m_intraPeriod == -1 && !m_gopBasedRPREnabledFlag) -#endif { const int poc = m_pocLast + (m_compositeRefEnabled ? 2 : 1); @@ -1470,11 +1456,7 @@ void EncLib::xInitSPS( SPS& sps ) { int maxPicWidth = std::max(m_sourceWidth, (int)((double)m_sourceWidth / m_scalingRatioHor + 0.5)); int maxPicHeight = std::max(m_sourceHeight, (int)((double)m_sourceHeight / m_scalingRatioVer + 0.5)); -#if JVET_AC0096 if (m_gopBasedRPREnabledFlag || m_rprFunctionalityTestingEnabledFlag) -#else - if (m_gopBasedRPREnabledFlag) -#endif { maxPicWidth = std::max(maxPicWidth, (int)((double)m_sourceWidth / m_scalingRatioHor2 + 0.5)); maxPicHeight = std::max(maxPicHeight, (int)((double)m_sourceHeight / m_scalingRatioVer2 + 0.5)); @@ -1932,11 +1914,7 @@ void EncLib::xInitPPS(PPS &pps, const SPS &sps) { pps.setSliceChromaQpFlag(m_chromaCbQpOffsetDualTree != 0 || m_chromaCrQpOffsetDualTree != 0 || m_chromaCbCrQpOffsetDualTree != 0); } -#if JVET_AC0096 if (m_gopBasedRPREnabledFlag || m_rprFunctionalityTestingEnabledFlag) -#else - if (m_gopBasedRPREnabledFlag) -#endif { bool isRprPPS = false; for (int nr = 0; nr < NUM_RPR_PPS; nr++) @@ -2641,14 +2619,12 @@ int EncCfg::getQPForPicture(const uint32_t gopIndex, const Slice *pSlice) const qp += EncCfg::m_qpOffsetRPR3; } } -#if JVET_AC0096 if (!m_gopBasedRPREnabledFlag && m_rprFunctionalityTestingEnabledFlag) { int currPoc = pSlice->getPOC() + m_frameSkip; int rprSegment = EncCfg::getRprSwitchingSegment(currPoc); qp += EncCfg::m_rprSwitchingQPOffsetOrderList[rprSegment]; } -#endif } qp = Clip3( -lumaQpBDOffset, MAX_QP, qp ); return qp; diff --git a/source/Lib/EncoderLib/EncSlice.cpp b/source/Lib/EncoderLib/EncSlice.cpp index 1d10f304b10368604b0cb621df4c42ad73e8890e..2269b0a25a7ce0259f9ce4a099a86c3cece7a518 100644 --- a/source/Lib/EncoderLib/EncSlice.cpp +++ b/source/Lib/EncoderLib/EncSlice.cpp @@ -532,18 +532,13 @@ void EncSlice::initEncSlice(Picture *pcPic, const int pocLast, const int pocCurr int crQP = bUseIntraOrPeriodicOffset ? m_pcCfg->getSliceChromaOffsetQpIntraOrPeriodic(true) : m_pcCfg->getGOPEntry(gopId).m_CrQPoffset; // adjust chroma QP such that it corresponds to the luma QP change when encoding in reduced resolution -#if JVET_AC0096 if (m_pcCfg->getGOPBasedRPREnabledFlag() || m_pcCfg->getRprFunctionalityTestingEnabledFlag()) -#else - if (m_pcCfg->getGOPBasedRPREnabledFlag()) -#endif { auto mappedQpDelta = [&](ComponentID c, int qpOffset) -> int { const int mappedQpBefore = rpcSlice->getSPS()->getMappedChromaQpValue(c, qp - qpOffset); const int mappedQpAfter = rpcSlice->getSPS()->getMappedChromaQpValue(c, qp); return mappedQpBefore - mappedQpAfter + qpOffset; }; -#if JVET_AC0096 if (m_pcCfg->getRprFunctionalityTestingEnabledFlag()) { int currPoc = rpcSlice->getPOC() + m_pcCfg->getFrameSkip(); @@ -553,7 +548,6 @@ void EncSlice::initEncSlice(Picture *pcPic, const int pocLast, const int pocCurr } else { -#endif if (rpcSlice->getPPS()->getPPSId() == ENC_PPS_ID_RPR) // ScalingRatioHor/ScalingRatioVer { cbQP += mappedQpDelta(COMPONENT_Cb, m_pcCfg->getQpOffsetChromaRPR()); @@ -569,9 +563,7 @@ void EncSlice::initEncSlice(Picture *pcPic, const int pocLast, const int pocCurr cbQP += mappedQpDelta(COMPONENT_Cb, m_pcCfg->getQpOffsetChromaRPR3()); crQP += mappedQpDelta(COMPONENT_Cr, m_pcCfg->getQpOffsetChromaRPR3()); } -#if JVET_AC0096 } -#endif } int cbCrQP = (cbQP + crQP) >> 1; // use floor of average chroma QP offset for joint-Cb/Cr coding