From 606c9908d2ac115fcbe3d6e8f678c77a7fdff77f Mon Sep 17 00:00:00 2001 From: Adam Wieckowski <adam.wieckowski@hhi.fraunhofer.de> Date: Mon, 18 Feb 2019 12:23:12 +0100 Subject: [PATCH] fix for ticket #194 --- source/Lib/EncoderLib/EncCu.cpp | 4 +--- source/Lib/EncoderLib/EncCu.h | 6 +++--- source/Lib/EncoderLib/EncModeCtrl.cpp | 20 ++++---------------- source/Lib/EncoderLib/EncModeCtrl.h | 7 ------- source/Lib/EncoderLib/EncSlice.cpp | 2 +- 5 files changed, 9 insertions(+), 30 deletions(-) diff --git a/source/Lib/EncoderLib/EncCu.cpp b/source/Lib/EncoderLib/EncCu.cpp index 0e4108899..0a4b43242 100644 --- a/source/Lib/EncoderLib/EncCu.cpp +++ b/source/Lib/EncoderLib/EncCu.cpp @@ -165,10 +165,8 @@ void EncCu::create( EncCfg* encCfg ) m_modeCtrl = new EncModeCtrlMTnoRQT(); -#if REUSE_CU_RESULTS m_modeCtrl->create( *encCfg ); -#endif for (unsigned ui = 0; ui < MMVD_MRG_MAX_RD_BUF_NUM; ui++) { m_acMergeBuffer[ui].create( chromaFormat, Area( 0, 0, uiMaxWidth, uiMaxHeight ) ); @@ -333,7 +331,7 @@ void EncCu::init( EncLib* pcEncLib, const SPS& sps PARL_PARAM( const int tId ) ) m_shareBndSizeH = 0; #endif -#if REUSE_CU_RESULTS +#if REUSE_CU_RESULTS || JVET_M0170_MRG_SHARELIST || JVET_M0427_INLOOP_RESHAPER DecCu::init( m_pcTrQuant, m_pcIntraSearch, m_pcInterSearch ); #endif diff --git a/source/Lib/EncoderLib/EncCu.h b/source/Lib/EncoderLib/EncCu.h index 89760c849..32392e806 100644 --- a/source/Lib/EncoderLib/EncCu.h +++ b/source/Lib/EncoderLib/EncCu.h @@ -47,7 +47,7 @@ #include "CommonLib/UnitPartitioner.h" #include "CommonLib/IbcHashMap.h" -#if REUSE_CU_RESULTS +#if REUSE_CU_RESULTS || JVET_M0170_MRG_SHARELIST #include "DecoderLib/DecCu.h" #endif @@ -79,7 +79,7 @@ struct TriangleMotionInfo }; #endif class EncCu -#if REUSE_CU_RESULTS +#if REUSE_CU_RESULTS || JVET_M0170_MRG_SHARELIST || JVET_M0427_INLOOP_RESHAPER : DecCu #endif { @@ -159,7 +159,7 @@ private: public: /// copy parameters from encoder class void init ( EncLib* pcEncLib, const SPS& sps PARL_PARAM( const int jId = 0 ) ); -#if JVET_M0427_INLOOP_RESHAPER && REUSE_CU_RESULTS +#if JVET_M0427_INLOOP_RESHAPER void setDecCuReshaperInEncCU(EncReshape* pcReshape, ChromaFormat chromaFormatIDC) { initDecCuReshaper((Reshape*) pcReshape, chromaFormatIDC); } #endif /// create internal buffers diff --git a/source/Lib/EncoderLib/EncModeCtrl.cpp b/source/Lib/EncoderLib/EncModeCtrl.cpp index e9f99b29c..d95114f9e 100644 --- a/source/Lib/EncoderLib/EncModeCtrl.cpp +++ b/source/Lib/EncoderLib/EncModeCtrl.cpp @@ -1036,25 +1036,12 @@ static bool interHadActive( const ComprCUCtx& ctx ) // EncModeCtrlQTBT ////////////////////////////////////////////////////////////////////////// -EncModeCtrlMTnoRQT::EncModeCtrlMTnoRQT() -{ -#if !REUSE_CU_RESULTS - CacheBlkInfoCtrl::create(); -#endif -} - -EncModeCtrlMTnoRQT::~EncModeCtrlMTnoRQT() -{ -#if !REUSE_CU_RESULTS - CacheBlkInfoCtrl::destroy(); -#endif -} - -#if REUSE_CU_RESULTS void EncModeCtrlMTnoRQT::create( const EncCfg& cfg ) { CacheBlkInfoCtrl::create(); +#if REUSE_CU_RESULTS BestEncInfoCache::create( cfg.getChromaFormatIdc() ); +#endif #if JVET_M0140_SBT SaveLoadEncInfoSbt::create(); #endif @@ -1063,13 +1050,14 @@ void EncModeCtrlMTnoRQT::create( const EncCfg& cfg ) void EncModeCtrlMTnoRQT::destroy() { CacheBlkInfoCtrl::destroy(); +#if REUSE_CU_RESULTS BestEncInfoCache::destroy(); +#endif #if JVET_M0140_SBT SaveLoadEncInfoSbt::destroy(); #endif } -#endif void EncModeCtrlMTnoRQT::initCTUEncoding( const Slice &slice ) { CacheBlkInfoCtrl::init( slice ); diff --git a/source/Lib/EncoderLib/EncModeCtrl.h b/source/Lib/EncoderLib/EncModeCtrl.h index bda381a20..505717ff3 100644 --- a/source/Lib/EncoderLib/EncModeCtrl.h +++ b/source/Lib/EncoderLib/EncModeCtrl.h @@ -283,10 +283,8 @@ public: virtual ~EncModeCtrl () {} -#if REUSE_CU_RESULTS virtual void create ( const EncCfg& cfg ) = 0; virtual void destroy () = 0; -#endif virtual void initCTUEncoding ( const Slice &slice ) = 0; virtual void initCULevel ( Partitioner &partitioner, const CodingStructure& cs ) = 0; virtual void finishCULevel ( Partitioner &partitioner ) = 0; @@ -539,13 +537,8 @@ class EncModeCtrlMTnoRQT : public EncModeCtrl, public CacheBlkInfoCtrl public: - EncModeCtrlMTnoRQT (); - ~EncModeCtrlMTnoRQT(); - -#if REUSE_CU_RESULTS virtual void create ( const EncCfg& cfg ); virtual void destroy (); -#endif virtual void initCTUEncoding ( const Slice &slice ); virtual void initCULevel ( Partitioner &partitioner, const CodingStructure& cs ); virtual void finishCULevel ( Partitioner &partitioner ); diff --git a/source/Lib/EncoderLib/EncSlice.cpp b/source/Lib/EncoderLib/EncSlice.cpp index 52ebcfda6..5eaa68ab4 100644 --- a/source/Lib/EncoderLib/EncSlice.cpp +++ b/source/Lib/EncoderLib/EncSlice.cpp @@ -1657,7 +1657,7 @@ void EncSlice::encodeCtus( Picture* pcPic, const bool bCompressEntireSlice, cons resetGbiCodingOrder(false, cs); m_pcInterSearch->initWeightIdxBits(); } -#if JVET_M0427_INLOOP_RESHAPER && REUSE_CU_RESULTS +#if JVET_M0427_INLOOP_RESHAPER if (pcSlice->getSPS()->getUseReshaper()) { m_pcCuEncoder->setDecCuReshaperInEncCU(m_pcLib->getReshaper(), pcSlice->getSPS()->getChromaFormatIdc()); -- GitLab