From 74daea989820e2d229de9a7718355c2af3dfc041 Mon Sep 17 00:00:00 2001 From: Karsten Suehring <karsten.suehring@hhi.fraunhofer.de> Date: Sun, 26 Apr 2020 20:10:26 +0200 Subject: [PATCH] remove macro JVET_Q0441_SAO_MOD_12_BIT --- source/App/EncoderApp/EncApp.cpp | 4 --- source/App/EncoderApp/EncAppCfg.cpp | 38 ----------------------------- source/App/EncoderApp/EncAppCfg.h | 3 --- source/Lib/CommonLib/Slice.cpp | 9 ------- source/Lib/CommonLib/Slice.h | 14 ----------- source/Lib/CommonLib/TypeDef.h | 1 - source/Lib/DecoderLib/DecLib.cpp | 4 --- source/Lib/DecoderLib/VLCReader.cpp | 6 ----- source/Lib/EncoderLib/EncCfg.h | 6 ----- source/Lib/EncoderLib/EncGOP.cpp | 5 ---- source/Lib/EncoderLib/EncLib.cpp | 4 --- source/Lib/EncoderLib/VLCWriter.cpp | 4 --- 12 files changed, 98 deletions(-) diff --git a/source/App/EncoderApp/EncApp.cpp b/source/App/EncoderApp/EncApp.cpp index 8f312a535..10beae17e 100644 --- a/source/App/EncoderApp/EncApp.cpp +++ b/source/App/EncoderApp/EncApp.cpp @@ -556,10 +556,6 @@ void EncApp::xInitLibCfg() m_cEncLib.setCrossComponentPredictionEnabledFlag ( m_crossComponentPredictionEnabledFlag ); #endif m_cEncLib.setUseReconBasedCrossCPredictionEstimate ( m_reconBasedCrossCPredictionEstimate ); -#if !JVET_Q0441_SAO_MOD_12_BIT - m_cEncLib.setLog2SaoOffsetScale ( CHANNEL_TYPE_LUMA , m_log2SaoOffsetScale[CHANNEL_TYPE_LUMA] ); - m_cEncLib.setLog2SaoOffsetScale ( CHANNEL_TYPE_CHROMA, m_log2SaoOffsetScale[CHANNEL_TYPE_CHROMA] ); -#endif m_cEncLib.setUseTransformSkip ( m_useTransformSkip ); m_cEncLib.setUseTransformSkipFast ( m_useTransformSkipFast ); m_cEncLib.setUseChromaTS ( m_useChromaTS && m_useTransformSkip); diff --git a/source/App/EncoderApp/EncAppCfg.cpp b/source/App/EncoderApp/EncAppCfg.cpp index 687de71d6..f286bc6eb 100644 --- a/source/App/EncoderApp/EncAppCfg.cpp +++ b/source/App/EncoderApp/EncAppCfg.cpp @@ -602,9 +602,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) string inputColourSpaceConvert; string inputPathPrefix; ExtendedProfileName extendedProfile; -#if !JVET_Q0441_SAO_MOD_12_BIT - int saoOffsetBitShift[MAX_NUM_CHANNEL_TYPE]; -#endif // Multi-value input fields: // minval, maxval (incl), min_entries, max_entries (incl) [, default values, number of default values] SMultiValueInput<uint32_t> cfgTileColumnWidth (0, std::numeric_limits<uint32_t>::max(), 0, std::numeric_limits<uint32_t>::max()); @@ -1098,10 +1095,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) ("CrossComponentPrediction", m_crossComponentPredictionEnabledFlag, false, "Enable the use of cross-component prediction (not valid in V1 profiles)") #endif ("ReconBasedCrossCPredictionEstimate", m_reconBasedCrossCPredictionEstimate, false, "When determining the alpha value for cross-component prediction, use the decoded residual rather than the pre-transform encoder-side residual") -#if !JVET_Q0441_SAO_MOD_12_BIT - ("SaoLumaOffsetBitShift", saoOffsetBitShift[CHANNEL_TYPE_LUMA], 0, "Specify the luma SAO bit-shift. If negative, automatically calculate a suitable value based upon bit depth and initial QP") - ("SaoChromaOffsetBitShift", saoOffsetBitShift[CHANNEL_TYPE_CHROMA], 0, "Specify the chroma SAO bit-shift. If negative, automatically calculate a suitable value based upon bit depth and initial QP") -#endif ("TransformSkip", m_useTransformSkip, false, "Intra transform skipping") ("TransformSkipFast", m_useTransformSkipFast, false, "Fast encoder search for transform skipping, winner takes it all mode.") ("TransformSkipLog2MaxSize", m_log2MaxTransformSkipBlockSize, 5U, "Specify transform-skip maximum size. Minimum 2, Maximum 5. (not valid in V1 profiles)") @@ -1920,26 +1913,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) } #endif -#if !JVET_Q0441_SAO_MOD_12_BIT - for(uint32_t ch=0; ch<MAX_NUM_CHANNEL_TYPE; ch++) - { - if (saoOffsetBitShift[ch]<0) - { - if (m_internalBitDepth[ch]>10) - { - m_log2SaoOffsetScale[ch]=uint32_t(Clip3<int>(0, m_internalBitDepth[ch]-10, int(m_internalBitDepth[ch]-10 + 0.165*m_iQP - 3.22 + 0.5) ) ); - } - else - { - m_log2SaoOffsetScale[ch]=0; - } - } - else - { - m_log2SaoOffsetScale[ch]=uint32_t(saoOffsetBitShift[ch]); - } - } -#endif #if SHARP_LUMA_DELTA_QP CHECK( lumaLevelToDeltaQPMode >= LUMALVL_TO_DQP_NUM_MODES, "Error in cfg" ); @@ -2478,10 +2451,6 @@ bool EncAppCfg::xCheckParameter() xConfirmPara( (m_MSBExtendedBitDepth[CHANNEL_TYPE_LUMA ] < m_inputBitDepth[CHANNEL_TYPE_LUMA ]), "MSB-extended bit depth for luma channel (--MSBExtendedBitDepth) must be greater than or equal to input bit depth for luma channel (--InputBitDepth)" ); xConfirmPara( (m_MSBExtendedBitDepth[CHANNEL_TYPE_CHROMA] < m_inputBitDepth[CHANNEL_TYPE_CHROMA]), "MSB-extended bit depth for chroma channel (--MSBExtendedBitDepthC) must be greater than or equal to input bit depth for chroma channel (--InputBitDepthC)" ); -#if !JVET_Q0441_SAO_MOD_12_BIT - xConfirmPara( m_log2SaoOffsetScale[CHANNEL_TYPE_LUMA] > (m_internalBitDepth[CHANNEL_TYPE_LUMA ]<10?0:(m_internalBitDepth[CHANNEL_TYPE_LUMA ]-10)), "SaoLumaOffsetBitShift must be in the range of 0 to InternalBitDepth-10, inclusive"); - xConfirmPara( m_log2SaoOffsetScale[CHANNEL_TYPE_CHROMA] > (m_internalBitDepth[CHANNEL_TYPE_CHROMA]<10?0:(m_internalBitDepth[CHANNEL_TYPE_CHROMA]-10)), "SaoChromaOffsetBitShift must be in the range of 0 to InternalBitDepth-10, inclusive"); -#endif xConfirmPara( m_chromaFormatIDC >= NUM_CHROMA_FORMAT, "ChromaFormatIDC must be either 400, 420, 422 or 444" ); std::string sTempIPCSC="InputColourSpaceConvert must be empty, "+getListOfColourSpaceConverts(true); @@ -3698,13 +3667,6 @@ void EncAppCfg::xPrintParameter() msg( DETAILS, "high_precision_offsets_enabled_flag : %s\n", (m_highPrecisionOffsetsEnabledFlag ? "Enabled" : "Disabled") ); msg( DETAILS, "persistent_rice_adaptation_enabled_flag: %s\n", (m_persistentRiceAdaptationEnabledFlag ? "Enabled" : "Disabled") ); msg( DETAILS, "cabac_bypass_alignment_enabled_flag : %s\n", (m_cabacBypassAlignmentEnabledFlag ? "Enabled" : "Disabled") ); -#if !JVET_Q0441_SAO_MOD_12_BIT - if (m_bUseSAO) - { - msg( DETAILS, "log2_sao_offset_scale_luma : %d\n", m_log2SaoOffsetScale[CHANNEL_TYPE_LUMA] ); - msg( DETAILS, "log2_sao_offset_scale_chroma : %d\n", m_log2SaoOffsetScale[CHANNEL_TYPE_CHROMA] ); - } -#endif switch (m_costMode) { diff --git a/source/App/EncoderApp/EncAppCfg.h b/source/App/EncoderApp/EncAppCfg.h index fa373f2a6..f26f4ad11 100644 --- a/source/App/EncoderApp/EncAppCfg.h +++ b/source/App/EncoderApp/EncAppCfg.h @@ -217,9 +217,6 @@ protected: bool m_crossComponentPredictionEnabledFlag; ///< flag enabling the use of cross-component prediction #endif bool m_reconBasedCrossCPredictionEstimate; ///< causes the alpha calculation in encoder search to be based on the decoded residual rather than the pre-transform encoder-side residual -#if !JVET_Q0441_SAO_MOD_12_BIT - uint32_t m_log2SaoOffsetScale[MAX_NUM_CHANNEL_TYPE]; ///< number of bits for the upward bit shift operation on the decoded SAO offsets -#endif bool m_useTransformSkip; ///< flag for enabling intra transform skipping bool m_useTransformSkipFast; ///< flag for enabling fast intra transform skipping bool m_useBDPCM; diff --git a/source/Lib/CommonLib/Slice.cpp b/source/Lib/CommonLib/Slice.cpp index d79444058..034d79b71 100644 --- a/source/Lib/CommonLib/Slice.cpp +++ b/source/Lib/CommonLib/Slice.cpp @@ -2800,16 +2800,7 @@ SubPic::~SubPic() #if !REMOVE_PPS_REXT PPSRExt::PPSRExt() : m_crossComponentPredictionEnabledFlag(false) -#if JVET_Q0441_SAO_MOD_12_BIT { -#else -// m_log2SaoOffsetScale initialized below -{ - for(int ch=0; ch<MAX_NUM_CHANNEL_TYPE; ch++) - { - m_log2SaoOffsetScale[ch] = 0; - } -#endif } #endif diff --git a/source/Lib/CommonLib/Slice.h b/source/Lib/CommonLib/Slice.h index f26de2169..ecc7bd5fe 100644 --- a/source/Lib/CommonLib/Slice.h +++ b/source/Lib/CommonLib/Slice.h @@ -1888,32 +1888,18 @@ class PPSRExt // TODO: remove private: bool m_crossComponentPredictionEnabledFlag; -#if !JVET_Q0441_SAO_MOD_12_BIT - uint32_t m_log2SaoOffsetScale[MAX_NUM_CHANNEL_TYPE]; -#endif public: PPSRExt(); bool settingsDifferFromDefaults(const bool bTransformSkipEnabledFlag) const { -#if JVET_Q0441_SAO_MOD_12_BIT return (getCrossComponentPredictionEnabledFlag() ); -#else - return (getCrossComponentPredictionEnabledFlag() ) - || (getLog2SaoOffsetScale(CHANNEL_TYPE_LUMA) !=0 ) - || (getLog2SaoOffsetScale(CHANNEL_TYPE_CHROMA) !=0 ); -#endif } bool getCrossComponentPredictionEnabledFlag() const { return m_crossComponentPredictionEnabledFlag; } void setCrossComponentPredictionEnabledFlag(bool value) { m_crossComponentPredictionEnabledFlag = value; } -#if !JVET_Q0441_SAO_MOD_12_BIT - // Now: getPpsRangeExtension().getLog2SaoOffsetScale and getPpsRangeExtension().setLog2SaoOffsetScale - uint32_t getLog2SaoOffsetScale(ChannelType type) const { return m_log2SaoOffsetScale[type]; } - void setLog2SaoOffsetScale(ChannelType type, uint32_t uiBitShift) { m_log2SaoOffsetScale[type] = uiBitShift; } -#endif }; #endif diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index 978225e82..9c2b144dc 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -104,7 +104,6 @@ -#define JVET_Q0441_SAO_MOD_12_BIT 1 // JVET-Q0441: SAO modification for 12 bit. Also removes old HEVC RExt SAO modification, which was broken. #define JVET_Q0043_RPR_and_Subpics 1 // JVET-Q0043: Disallow for both RPR and subpics to be used together diff --git a/source/Lib/DecoderLib/DecLib.cpp b/source/Lib/DecoderLib/DecLib.cpp index 105dfdc14..b4b96d09d 100644 --- a/source/Lib/DecoderLib/DecLib.cpp +++ b/source/Lib/DecoderLib/DecLib.cpp @@ -1249,7 +1249,6 @@ void DecLib::xActivateParameterSets( const int layerId ) // Initialise the various objects for the new set of settings const int maxDepth = floorLog2(sps->getMaxCUWidth()) - pps->pcv->minCUWidthLog2; -#if JVET_Q0441_SAO_MOD_12_BIT const uint32_t log2SaoOffsetScaleLuma = (uint32_t) std::max(0, sps->getBitDepth(CHANNEL_TYPE_LUMA ) - MAX_SAO_TRUNCATED_BITDEPTH); const uint32_t log2SaoOffsetScaleChroma = (uint32_t) std::max(0, sps->getBitDepth(CHANNEL_TYPE_CHROMA) - MAX_SAO_TRUNCATED_BITDEPTH); m_cSAO.create( pps->getPicWidthInLumaSamples(), pps->getPicHeightInLumaSamples(), @@ -1257,9 +1256,6 @@ void DecLib::xActivateParameterSets( const int layerId ) sps->getMaxCUWidth(), sps->getMaxCUHeight(), maxDepth, log2SaoOffsetScaleLuma, log2SaoOffsetScaleChroma ); -#else - m_cSAO.create(pps->getPicWidthInLumaSamples(), pps->getPicHeightInLumaSamples(), sps->getChromaFormatIdc(), sps->getMaxCUWidth(), sps->getMaxCUHeight(), maxDepth, pps->getPpsRangeExtension().getLog2SaoOffsetScale(CHANNEL_TYPE_LUMA), pps->getPpsRangeExtension().getLog2SaoOffsetScale(CHANNEL_TYPE_CHROMA)); -#endif m_cLoopFilter.create(maxDepth); m_cIntraPred.init( sps->getChromaFormatIdc(), sps->getBitDepth( CHANNEL_TYPE_LUMA ) ); m_cInterPred.init( &m_cRdCost, sps->getChromaFormatIdc(), sps->getMaxCUHeight() ); diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 26159f300..ebc368d79 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -892,12 +892,6 @@ void HLSyntaxReader::parsePPS( PPS* pcPPS ) READ_FLAG( uiCode, "cross_component_prediction_enabled_flag"); ppsRangeExtension.setCrossComponentPredictionEnabledFlag(uiCode != 0); -#if !JVET_Q0441_SAO_MOD_12_BIT - READ_UVLC( uiCode, "log2_sao_offset_scale_luma"); - ppsRangeExtension.setLog2SaoOffsetScale(CHANNEL_TYPE_LUMA, uiCode); - READ_UVLC( uiCode, "log2_sao_offset_scale_chroma"); - ppsRangeExtension.setLog2SaoOffsetScale(CHANNEL_TYPE_CHROMA, uiCode); -#endif } break; default: diff --git a/source/Lib/EncoderLib/EncCfg.h b/source/Lib/EncoderLib/EncCfg.h index 287097f79..b9feb43b4 100644 --- a/source/Lib/EncoderLib/EncCfg.h +++ b/source/Lib/EncoderLib/EncCfg.h @@ -478,9 +478,6 @@ protected: bool m_crossComponentPredictionEnabledFlag; #endif bool m_reconBasedCrossCPredictionEstimate; -#if !JVET_Q0441_SAO_MOD_12_BIT - uint32_t m_log2SaoOffsetScale[MAX_NUM_CHANNEL_TYPE]; -#endif bool m_useTransformSkip; bool m_useTransformSkipFast; bool m_useChromaTS; @@ -1422,9 +1419,6 @@ public: #endif bool getUseReconBasedCrossCPredictionEstimate () const { return m_reconBasedCrossCPredictionEstimate; } void setUseReconBasedCrossCPredictionEstimate (const bool value) { m_reconBasedCrossCPredictionEstimate = value; } -#if !JVET_Q0441_SAO_MOD_12_BIT - void setLog2SaoOffsetScale(ChannelType type, uint32_t uiBitShift) { m_log2SaoOffsetScale[type] = uiBitShift; } -#endif bool getUseTransformSkip () { return m_useTransformSkip; } void setUseTransformSkip ( bool b ) { m_useTransformSkip = b; } diff --git a/source/Lib/EncoderLib/EncGOP.cpp b/source/Lib/EncoderLib/EncGOP.cpp index b9a8bf87a..0c16e8be3 100644 --- a/source/Lib/EncoderLib/EncGOP.cpp +++ b/source/Lib/EncoderLib/EncGOP.cpp @@ -2913,13 +2913,8 @@ void EncGOP::compressGOP( int iPOCLast, int iNumPicRcvd, PicList& rcListPic, const uint32_t widthInCtus = ( picWidth + maxCUWidth - 1 ) / maxCUWidth; const uint32_t heightInCtus = ( picHeight + maxCUHeight - 1 ) / maxCUHeight; const uint32_t numCtuInFrame = widthInCtus * heightInCtus; -#if JVET_Q0441_SAO_MOD_12_BIT const uint32_t log2SaoOffsetScaleLuma = (uint32_t) std::max(0, pcSlice->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA ) - MAX_SAO_TRUNCATED_BITDEPTH); const uint32_t log2SaoOffsetScaleChroma = (uint32_t) std::max(0, pcSlice->getSPS()->getBitDepth(CHANNEL_TYPE_CHROMA) - MAX_SAO_TRUNCATED_BITDEPTH); -#else - const uint32_t log2SaoOffsetScaleLuma = pcPic->cs->slice->getPPS()->getPpsRangeExtension().getLog2SaoOffsetScale( CHANNEL_TYPE_LUMA ); - const uint32_t log2SaoOffsetScaleChroma = pcPic->cs->slice->getPPS()->getPpsRangeExtension().getLog2SaoOffsetScale( CHANNEL_TYPE_CHROMA ); -#endif m_pcSAO->create( picWidth, picHeight, chromaFormatIDC, maxCUWidth, maxCUHeight, maxTotalCUDepth, log2SaoOffsetScaleLuma, log2SaoOffsetScaleChroma ); m_pcSAO->destroyEncData(); diff --git a/source/Lib/EncoderLib/EncLib.cpp b/source/Lib/EncoderLib/EncLib.cpp index 08a8a95d9..0dbbb5f00 100644 --- a/source/Lib/EncoderLib/EncLib.cpp +++ b/source/Lib/EncoderLib/EncLib.cpp @@ -1623,10 +1623,6 @@ void EncLib::xInitPPS(PPS &pps, const SPS &sps) } #if !REMOVE_PPS_REXT pps.getPpsRangeExtension().setCrossComponentPredictionEnabledFlag(m_crossComponentPredictionEnabledFlag); -#if !JVET_Q0441_SAO_MOD_12_BIT - pps.getPpsRangeExtension().setLog2SaoOffsetScale(CHANNEL_TYPE_LUMA, m_log2SaoOffsetScale[CHANNEL_TYPE_LUMA ]); - pps.getPpsRangeExtension().setLog2SaoOffsetScale(CHANNEL_TYPE_CHROMA, m_log2SaoOffsetScale[CHANNEL_TYPE_CHROMA]); -#endif #endif { int baseQp = 26; diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index b37ccc550..09ba548f1 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -537,10 +537,6 @@ void HLSWriter::codePPS( const PPS* pcPPS ) const PPSRExt &ppsRangeExtension = pcPPS->getPpsRangeExtension(); WRITE_FLAG((ppsRangeExtension.getCrossComponentPredictionEnabledFlag() ? 1 : 0), "cross_component_prediction_enabled_flag" ); -#if !JVET_Q0441_SAO_MOD_12_BIT - WRITE_UVLC( ppsRangeExtension.getLog2SaoOffsetScale(CHANNEL_TYPE_LUMA), "log2_sao_offset_scale_luma" ); - WRITE_UVLC( ppsRangeExtension.getLog2SaoOffsetScale(CHANNEL_TYPE_CHROMA), "log2_sao_offset_scale_chroma" ); -#endif } break; default: -- GitLab