From a022d68f48ae0c2e1a506c0a33f87d99a8da9efa Mon Sep 17 00:00:00 2001
From: Dominik Mehlem <dmehlem@apple.com>
Date: Fri, 9 Aug 2019 14:11:51 -0700
Subject: [PATCH] Made the code compliant with the softwares style guidelines

---
 source/App/EncoderApp/EncApp.cpp  |  14 +-
 source/App/EncoderApp/EncApp.h    |   6 +-
 source/App/EncoderApp/encmain.cpp |  20 +--
 source/Lib/EncoderLib/Analyze.h   |  39 +++--
 source/Lib/EncoderLib/EncCfg.h    |  48 +++---
 source/Lib/EncoderLib/EncGOP.cpp  | 271 +++++++++++++++---------------
 source/Lib/EncoderLib/EncGOP.h    |  20 ++-
 source/Lib/EncoderLib/EncLib.cpp  |   6 +-
 source/Lib/EncoderLib/EncLib.h    |   9 +-
 9 files changed, 228 insertions(+), 205 deletions(-)

diff --git a/source/App/EncoderApp/EncApp.cpp b/source/App/EncoderApp/EncApp.cpp
index 5b32d68e6..e7193f225 100644
--- a/source/App/EncoderApp/EncApp.cpp
+++ b/source/App/EncoderApp/EncApp.cpp
@@ -612,16 +612,18 @@ void EncApp::xInitLibCfg()
   m_cEncLib.setReshapeCW                                         ( m_reshapeCW );
   
 #if JVET_O0756_CALCULATE_HDRMETRICS
-  for (int i=0; i<hdrtoolslib::NB_REF_WHITE; i++) {
+  for (int i=0; i<hdrtoolslib::NB_REF_WHITE; i++)
+  {
     m_cEncLib.setWhitePointDeltaE                                (i, m_whitePointDeltaE[i] );
   }
   m_cEncLib.setMaxSampleValue                                    (m_maxSampleValue);
   m_cEncLib.setSampleRange                                       (m_sampleRange);
   m_cEncLib.setColorPrimaries                                    (m_colorPrimaries);
   m_cEncLib.setEnableTFunctionLUT                                (m_enableTFunctionLUT);
-  for (int i=0; i<2; i++) {
-  m_cEncLib.setChromaLocation                                    (i, m_chromaLocation);
-  m_cEncLib.setChromaUPFilter                                    (m_chromaUPFilter);
+  for (int i=0; i<2; i++)
+  {
+    m_cEncLib.setChromaLocation                                    (i, m_chromaLocation);
+    m_cEncLib.setChromaUPFilter                                    (m_chromaUPFilter);
   }
   m_cEncLib.setCropOffsetLeft                                    (m_cropOffsetLeft);
   m_cEncLib.setCropOffsetTop                                     (m_cropOffsetTop);
@@ -766,7 +768,7 @@ void EncApp::encode()
       m_cEncLib.encode( bEos, flush ? 0 : &orgPic, flush ? 0 : &trueOrgPic, snrCSC, recBufList,
                         iNumEncoded, m_isTopFieldFirst );
 #if JVET_O0756_CALCULATE_HDRMETRICS
-      m_metricTime = m_cEncLib.m_metricTime;
+      m_metricTime = m_cEncLib.getMetricTime();
 #endif
     }
     else
@@ -774,7 +776,7 @@ void EncApp::encode()
       m_cEncLib.encode( bEos, flush ? 0 : &orgPic, flush ? 0 : &trueOrgPic, snrCSC, recBufList,
                         iNumEncoded );
 #if JVET_O0756_CALCULATE_HDRMETRICS
-      m_metricTime = m_cEncLib.m_metricTime;
+      m_metricTime = m_cEncLib.getMetricTime();
 #endif
     }
 
diff --git a/source/App/EncoderApp/EncApp.h b/source/App/EncoderApp/EncApp.h
index 2f6812885..17bf61a62 100644
--- a/source/App/EncoderApp/EncApp.h
+++ b/source/App/EncoderApp/EncApp.h
@@ -69,7 +69,6 @@ private:
   uint32_t              m_essentialBytes;
   uint32_t              m_totalBytes;
   fstream           m_bitstream;
-public:
 #if JVET_O0756_CALCULATE_HDRMETRICS
   std::chrono::duration<long long, ratio<1, 1000000000>> m_metricTime;
 #endif
@@ -96,6 +95,11 @@ public:
   void  encode();                               ///< main encoding function
 
   void  outputAU( const AccessUnit& au );
+  
+#if JVET_O0756_CALCULATE_HDRMETRICS
+  std::chrono::duration<long long, ratio<1, 1000000000>> getMetricTime()    const { return m_metricTime; };
+#endif
+  
 
 };// END CLASS DEFINITION EncApp
 
diff --git a/source/App/EncoderApp/encmain.cpp b/source/App/EncoderApp/encmain.cpp
index b53a822e7..11b0ab78d 100644
--- a/source/App/EncoderApp/encmain.cpp
+++ b/source/App/EncoderApp/encmain.cpp
@@ -169,12 +169,12 @@ int main(int argc, char* argv[])
   auto endTime = std::chrono::steady_clock::now();
   std::time_t endTime2 = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
 #if JVET_O0756_CALCULATE_HDRMETRICS
-  auto metricTime = pcEncApp->m_metricTime;
-  auto totalTime = std::chrono::duration_cast<std::chrono::milliseconds>( endTime- startTime ).count();
-  auto encTime = std::chrono::duration_cast<std::chrono::milliseconds>( endTime- startTime - metricTime ).count();
+  auto metricTime     = pcEncApp->getMetricTime();
+  auto totalTime      = std::chrono::duration_cast<std::chrono::milliseconds>( endTime - startTime ).count();
+  auto encTime        = std::chrono::duration_cast<std::chrono::milliseconds>( endTime - startTime - metricTime ).count();
   auto metricTimeuser = std::chrono::duration_cast<std::chrono::milliseconds>( metricTime ).count();
 #else
-  auto encTime = std::chrono::duration_cast<std::chrono::milliseconds>( endTime- startTime).count();
+  auto encTime = std::chrono::duration_cast<std::chrono::milliseconds>( endTime - startTime).count();
 #endif
   // destroy application encoder class
   pcEncApp->destroy();
@@ -183,17 +183,17 @@ int main(int argc, char* argv[])
 
   printf( "\n finished @ %s", std::ctime(&endTime2) );
 
-  #if JVET_O0756_CALCULATE_HDRMETRICS
-  printf(" Encoding Time(Total Time): %12.3f(%12.3f) sec. [user] %12.3f(%12.3f) sec. [elapsed]\n",
+#if JVET_O0756_CALCULATE_HDRMETRICS
+  printf(" Encoding Time (Total Time): %12.3f ( %12.3f ) sec. [user] %12.3f ( %12.3f ) sec. [elapsed]\n",
          ((endClock - startClock) * 1.0 / CLOCKS_PER_SEC) - (metricTimeuser/1000.0),
          (endClock - startClock) * 1.0 / CLOCKS_PER_SEC,
-         totalTime / 1000.0,
-         encTime / 1000.0);
-  #else
+         encTime / 1000.0,
+         totalTime / 1000.0);
+#else
   printf(" Total Time: %12.3f sec. [user] %12.3f sec. [elapsed]\n",
          (endClock - startClock) * 1.0 / CLOCKS_PER_SEC,
          encTime / 1000.0);
-  #endif
+#endif
 
   return 0;
 }
diff --git a/source/Lib/EncoderLib/Analyze.h b/source/Lib/EncoderLib/Analyze.h
index fce136162..393f2a1ab 100644
--- a/source/Lib/EncoderLib/Analyze.h
+++ b/source/Lib/EncoderLib/Analyze.h
@@ -73,8 +73,8 @@ private:
   TExt360EncAnalyze m_ext360;
 #endif
 #if JVET_O0756_CALCULATE_HDRMETRICS
-  double    m_dLogDeltaESum[hdrtoolslib::NB_REF_WHITE];
-  double    m_dPSNRLSum[hdrtoolslib::NB_REF_WHITE];
+  double    m_logDeltaESum[hdrtoolslib::NB_REF_WHITE];
+  double    m_psnrLSum[hdrtoolslib::NB_REF_WHITE];
 #endif
   
 public:
@@ -101,8 +101,8 @@ public:
 #endif
   double  getPsnr(ComponentID compID) const { return  m_dPSNRSum[compID];  }
 #if JVET_O0756_CALCULATE_HDRMETRICS
-  double getDeltaE()                  const { return m_dLogDeltaESum[0];  }
-  double getPSNRL()                  const { return m_dPSNRLSum[0];  }
+  double getDeltaE()                  const { return m_logDeltaESum[0];  }
+  double getPsnrL()                   const { return m_psnrLSum[0];  }
 #endif
   double  getBits()                   const { return  m_dAddBits;   }
   void    setBits(double numBits)     { m_dAddBits = numBits; }
@@ -111,10 +111,12 @@ public:
   TExt360EncAnalyze& getExt360Info() { return m_ext360; }
 #endif
 #if JVET_O0756_CALCULATE_HDRMETRICS
-  void addHDRMetricsResult(double dDeltaE[hdrtoolslib::NB_REF_WHITE], double dPSNRL[hdrtoolslib::NB_REF_WHITE]){
-    for (int i=0; i<hdrtoolslib::NB_REF_WHITE; i++) {
-      m_dLogDeltaESum[i] += dDeltaE[i];
-      m_dPSNRLSum[i] += dPSNRL[i];
+  void addHDRMetricsResult(double deltaE[hdrtoolslib::NB_REF_WHITE], double psnrL[hdrtoolslib::NB_REF_WHITE])
+  {
+    for (int i=0; i<hdrtoolslib::NB_REF_WHITE; i++)
+    {
+      m_logDeltaESum[i] += deltaE[i];
+      m_psnrLSum[i] += psnrL[i];
     }
   }
 #endif
@@ -133,9 +135,10 @@ public:
     m_ext360.clear();
 #endif
 #if JVET_O0756_CALCULATE_HDRMETRICS
-    for (int i=0; i<hdrtoolslib::NB_REF_WHITE; i++) {
-      m_dLogDeltaESum[i] = 0.0;
-      m_dPSNRLSum[i] = 0.0;
+    for (int i=0; i<hdrtoolslib::NB_REF_WHITE; i++)
+    {
+      m_logDeltaESum[i] = 0.0;
+      m_psnrLSum[i] = 0.0;
     }
 #endif
   }
@@ -432,9 +435,10 @@ public:
 #endif
             msg( e_msg_level, "\tTotal Frames |   "   "Bitrate     "  "Y-PSNR    "  "U-PSNR    "  "V-PSNR    "  "YUV-PSNR   " );
 #if JVET_O0756_CALCULATE_HDRMETRICS
-          if(!useWPSNR){
-          msg(e_msg_level, "DeltaE   "  "PSNRL   ");
-          }
+            if(!useWPSNR)
+            {
+              msg(e_msg_level, "DeltaE   "  "PSNRL   ");
+            }
 #endif
 #if EXTENSION_360_VIDEO
             m_ext360.printHeader(e_msg_level);
@@ -472,9 +476,10 @@ public:
               getPsnr(COMPONENT_Cr) / (double)getNumPic(),
               PSNRyuv );
 #if JVET_O0756_CALCULATE_HDRMETRICS
-          if(!useWPSNR){
-          msg( e_msg_level, "  %8.4lf  " "%8.4lf  ", getDeltaE()/(double)getNumPic(), getPSNRL()/(double)getNumPic());
-          }
+            if(!useWPSNR)
+            {
+              msg( e_msg_level, "  %8.4lf  " "%8.4lf  ", getDeltaE()/(double)getNumPic(), getPsnrL()/(double)getNumPic());
+            }
 #endif
           
 #if EXTENSION_360_VIDEO
diff --git a/source/Lib/EncoderLib/EncCfg.h b/source/Lib/EncoderLib/EncCfg.h
index c4359b09c..f4a21b157 100644
--- a/source/Lib/EncoderLib/EncCfg.h
+++ b/source/Lib/EncoderLib/EncCfg.h
@@ -1641,30 +1641,30 @@ public:
   bool         getUseALF()                                      const { return m_alf; }
   
 #if JVET_O0756_CALCULATE_HDRMETRICS
-  void        setWhitePointDeltaE( uint32_t uiIndex, double dValue ) { m_whitePointDeltaE[ uiIndex ] = dValue; }
-  double      getWhitePointDeltaE( uint32_t uiIndex )          const { return m_whitePointDeltaE[ uiIndex ]; }
-  void        setMaxSampleValue(double dValue)                       { m_maxSampleValue = dValue;}
-  double      getMaxSampleValue()                              const { return m_maxSampleValue;}
-  void        setSampleRange(int iValue)                             { m_sampleRange = static_cast<hdrtoolslib::SampleRange>(iValue);}
-  hdrtoolslib::SampleRange getSampleRange()                    const { return m_sampleRange;}
-  void        setColorPrimaries(int iValue)                          { m_colorPrimaries = static_cast<hdrtoolslib::ColorPrimaries>(iValue);}
-  hdrtoolslib::ColorPrimaries getColorPrimaries()              const { return m_colorPrimaries;}
-  void        setEnableTFunctionLUT(bool bValue)                     { m_enableTFunctionLUT = bValue;}
-  bool        getEnableTFunctionLUT()                          const { return m_enableTFunctionLUT;}
-  void        setChromaLocation(uint32_t uiIndex, int iValue)        { m_chromaLocation[ uiIndex ] = static_cast<hdrtoolslib::ChromaLocation>(iValue);}
-  hdrtoolslib::ChromaLocation getChromaLocation(uint32_t uiIndex) const { return m_chromaLocation[uiIndex];}
-  void        setChromaUPFilter(int iValue)                          { m_chromaUPFilter = iValue;}
-  int         getChromaUPFilter()                              const { return m_chromaUPFilter;}
-  void        setCropOffsetLeft(int iValue)                          { m_cropOffsetLeft = iValue;}
-  int         getCropOffsetLeft()                              const { return m_cropOffsetLeft;}
-  void        setCropOffsetTop(int iValue)                           { m_cropOffsetTop = iValue;}
-  int         getCropOffsetTop()                               const { return m_cropOffsetTop;}
-  void        setCropOffsetRight(int iValue)                         { m_cropOffsetRight = iValue;}
-  int         getCropOffsetRight()                             const { return m_cropOffsetRight;}
-  void        setCropOffsetBottom(int iValue)                        { m_cropOffsetBottom = iValue;}
-  int         getCropOffsetBottom()                            const { return m_cropOffsetBottom;}
-  void        setCalculateHdrMetrics(bool bValue)                    { m_calculateHdrMetrics = bValue;}
-  bool        getCalcluateHdrMetrics()                         const { return m_calculateHdrMetrics;}
+  void        setWhitePointDeltaE( uint32_t index, double value )     { m_whitePointDeltaE[ index ] = value; }
+  double      getWhitePointDeltaE( uint32_t index )             const { return m_whitePointDeltaE[ index ]; }
+  void        setMaxSampleValue(double value)                         { m_maxSampleValue = value;}
+  double      getMaxSampleValue()                               const { return m_maxSampleValue;}
+  void        setSampleRange(int value)                               { m_sampleRange = static_cast<hdrtoolslib::SampleRange>(value);}
+  hdrtoolslib::SampleRange getSampleRange()                     const { return m_sampleRange;}
+  void        setColorPrimaries(int value)                            { m_colorPrimaries = static_cast<hdrtoolslib::ColorPrimaries>(value);}
+  hdrtoolslib::ColorPrimaries getColorPrimaries()               const { return m_colorPrimaries;}
+  void        setEnableTFunctionLUT(bool value)                       { m_enableTFunctionLUT = value;}
+  bool        getEnableTFunctionLUT()                           const { return m_enableTFunctionLUT;}
+  void        setChromaLocation(uint32_t index, int value)            { m_chromaLocation[ index ] = static_cast<hdrtoolslib::ChromaLocation>(value);}
+  hdrtoolslib::ChromaLocation getChromaLocation(uint32_t index) const { return m_chromaLocation[index];}
+  void        setChromaUPFilter(int value)                            { m_chromaUPFilter = value;}
+  int         getChromaUPFilter()                               const { return m_chromaUPFilter;}
+  void        setCropOffsetLeft(int value)                            { m_cropOffsetLeft = value;}
+  int         getCropOffsetLeft()                               const { return m_cropOffsetLeft;}
+  void        setCropOffsetTop(int value)                             { m_cropOffsetTop = value;}
+  int         getCropOffsetTop()                                const { return m_cropOffsetTop;}
+  void        setCropOffsetRight(int value)                           { m_cropOffsetRight = value;}
+  int         getCropOffsetRight()                              const { return m_cropOffsetRight;}
+  void        setCropOffsetBottom(int value)                          { m_cropOffsetBottom = value;}
+  int         getCropOffsetBottom()                             const { return m_cropOffsetBottom;}
+  void        setCalculateHdrMetrics(bool value)                      { m_calculateHdrMetrics = value;}
+  bool        getCalcluateHdrMetrics()                          const { return m_calculateHdrMetrics;}
 #endif
 
 };
diff --git a/source/Lib/EncoderLib/EncGOP.cpp b/source/Lib/EncoderLib/EncGOP.cpp
index 944e70e8e..4245dd42b 100644
--- a/source/Lib/EncoderLib/EncGOP.cpp
+++ b/source/Lib/EncoderLib/EncGOP.cpp
@@ -110,21 +110,19 @@ EncGOP::EncGOP()
 #endif
 
 #if JVET_O0756_CALCULATE_HDRMETRICS
+  m_ppcFrameOrg             = nullptr;
+  m_ppcFrameRec             = nullptr;
   
-  m_ppcFrameOrg = NULL;
-  m_ppcFrameRec = NULL;
+  m_pcConvertFormat         = nullptr;
+  m_pcConvertIQuantize      = nullptr;
+  m_pcColorTransform        = nullptr;
+  m_pcDistortionDeltaE      = nullptr;
+  m_pcTransferFct           = nullptr;
   
-  m_pcConvertFormat = NULL;
-  m_pcConvertIQuantize = NULL;
-  m_pcColorTransform = NULL;
-  m_pcDistortionDeltaE = NULL;
-  m_pcTransferFct = NULL;
-  
-  m_pcColorTransformParams = NULL;
-  m_pcFrameFormat = NULL;
+  m_pcColorTransformParams  = nullptr;
+  m_pcFrameFormat           = nullptr;
   
   m_metricTime = std::chrono::milliseconds(0);
-  
 #endif
   
   m_bInitAMaxBT         = true;
@@ -145,30 +143,26 @@ EncGOP::~EncGOP()
     tryDecodePicture( NULL, 0, std::string("") );
   }
 #if JVET_O0756_CALCULATE_HDRMETRICS
-  
   delete [] m_ppcFrameOrg;
   delete [] m_ppcFrameRec;
   
-  m_ppcFrameOrg = m_ppcFrameRec = NULL;
+  m_ppcFrameOrg = m_ppcFrameRec = nullptr;
   
   delete m_pcConvertFormat;
   delete m_pcConvertIQuantize;
   delete m_pcColorTransform;
   delete m_pcDistortionDeltaE;
   delete m_pcTransferFct;
-  
-  m_pcConvertFormat = NULL;
-  m_pcConvertIQuantize = NULL;
-  m_pcColorTransform = NULL;
-  m_pcDistortionDeltaE = NULL;
-  m_pcTransferFct = NULL;
-  
   delete m_pcColorTransformParams;
   delete m_pcFrameFormat;
   
-  m_pcColorTransformParams = NULL;
-  m_pcFrameFormat = NULL;
-  
+  m_pcConvertFormat         = nullptr;
+  m_pcConvertIQuantize      = nullptr;
+  m_pcColorTransform        = nullptr;
+  m_pcDistortionDeltaE      = nullptr;
+  m_pcTransferFct           = nullptr;
+  m_pcColorTransformParams  = nullptr;
+  m_pcFrameFormat           = nullptr;
 #endif
 }
 
@@ -244,63 +238,67 @@ void EncGOP::init ( EncLib* pcEncLib )
   
 #if JVET_O0756_CALCULATE_HDRMETRICS
   const bool calculateHdrMetrics = m_pcEncLib->getCalcluateHdrMetrics();
-  if(calculateHdrMetrics){
-  //allocate frame buffers and initialize class members
-  int chainNumber = 5;
-  
-  m_ppcFrameOrg = new hdrtoolslib::Frame* [chainNumber];
-  m_ppcFrameRec = new hdrtoolslib::Frame* [chainNumber];
-  
-  double* whitePointDeltaE = new double[hdrtoolslib::NB_REF_WHITE];
-  for (int i=0; i<hdrtoolslib::NB_REF_WHITE; i++) {
-    whitePointDeltaE[i] = m_pcCfg->getWhitePointDeltaE(i);
-  }
-  double dMaxSampleValue = m_pcCfg->getMaxSampleValue();
-  hdrtoolslib::SampleRange sampleRange = m_pcCfg->getSampleRange();
-  hdrtoolslib::ChromaFormat chFmt = hdrtoolslib::ChromaFormat(m_pcCfg->getChromaFormatIdc());
-  int iBitDepth = m_pcCfg->getBitDepth(CHANNEL_TYPE_LUMA);
-  hdrtoolslib::ColorPrimaries colorPrimaries = m_pcCfg->getColorPrimaries();
-  bool bEnableTFunctionLUT = m_pcCfg->getEnableTFunctionLUT();
-  hdrtoolslib::ChromaLocation* chromaLocation = new hdrtoolslib::ChromaLocation[2];
-  for (int i=0; i<2; i++) {
-    chromaLocation[i] = m_pcCfg->getChromaLocation(i);
-  }
-  int iChromaUpFilter  = m_pcCfg->getChromaUPFilter();
-  int cropOffsetLeft   = m_pcCfg->getCropOffsetLeft();
-  int cropOffsetTop    = m_pcCfg->getCropOffsetTop();
-  int cropOffsetRight  = m_pcCfg->getCropOffsetRight();
-  int cropOffsetBottom = m_pcCfg->getCropOffsetBottom();
-  
-  int iWidth = m_pcCfg->getSourceWidth() - cropOffsetLeft + cropOffsetRight;
-  int iHeight = m_pcCfg->getSourceHeight() - cropOffsetTop  + cropOffsetBottom;
-  
-  m_ppcFrameOrg[0] = new hdrtoolslib::Frame(iWidth, iHeight, false, hdrtoolslib::CM_YCbCr, colorPrimaries, chFmt, sampleRange, iBitDepth, false, hdrtoolslib::TF_PQ, 0);
-  m_ppcFrameRec[0] = new hdrtoolslib::Frame(iWidth, iHeight, false, hdrtoolslib::CM_YCbCr, colorPrimaries, chFmt, sampleRange, iBitDepth, false, hdrtoolslib::TF_PQ, 0);                                                                   // Orginal & Reconstructed 4:2:0
-  
-  m_ppcFrameOrg[1] = new hdrtoolslib::Frame(m_ppcFrameOrg[0]->m_width[hdrtoolslib::Y_COMP], m_ppcFrameOrg[0]->m_height[hdrtoolslib::Y_COMP], false, hdrtoolslib::CM_YCbCr, colorPrimaries, hdrtoolslib::CF_444, sampleRange, iBitDepth, false, hdrtoolslib::TF_PQ, 0);
-  m_ppcFrameRec[1] = new hdrtoolslib::Frame(m_ppcFrameRec[0]->m_width[hdrtoolslib::Y_COMP], m_ppcFrameRec[0]->m_height[hdrtoolslib::Y_COMP], false, hdrtoolslib::CM_YCbCr, colorPrimaries, hdrtoolslib::CF_444, sampleRange, iBitDepth, false, hdrtoolslib::TF_PQ, 0);                                // 420 to 444 conversion
-  
-  m_ppcFrameOrg[2] =  new hdrtoolslib::Frame(m_ppcFrameOrg[0]->m_width[hdrtoolslib::Y_COMP], m_ppcFrameOrg[0]->m_height[hdrtoolslib::Y_COMP], true, hdrtoolslib::CM_YCbCr, colorPrimaries, hdrtoolslib::CF_444, hdrtoolslib::SR_UNKNOWN, 32, false, hdrtoolslib::TF_PQ, 0);
-  m_ppcFrameRec[2] =  new hdrtoolslib::Frame(m_ppcFrameRec[0]->m_width[hdrtoolslib::Y_COMP], m_ppcFrameRec[0]->m_height[hdrtoolslib::Y_COMP], true, hdrtoolslib::CM_YCbCr, colorPrimaries, hdrtoolslib::CF_444, hdrtoolslib::SR_UNKNOWN, 32, false, hdrtoolslib::TF_PQ, 0);                                // 444 to Float conversion
-  
-  m_ppcFrameOrg[3] = new hdrtoolslib::Frame(m_ppcFrameOrg[0]->m_width[hdrtoolslib::Y_COMP], m_ppcFrameOrg[0]->m_height[hdrtoolslib::Y_COMP], true, hdrtoolslib::CM_RGB, hdrtoolslib::CP_2020, hdrtoolslib::CF_444, hdrtoolslib::SR_UNKNOWN, 32, false, hdrtoolslib::TF_PQ, 0);
-  m_ppcFrameRec[3] = new hdrtoolslib::Frame(m_ppcFrameRec[0]->m_width[hdrtoolslib::Y_COMP], m_ppcFrameRec[0]->m_height[hdrtoolslib::Y_COMP], true, hdrtoolslib::CM_RGB, hdrtoolslib::CP_2020, hdrtoolslib::CF_444, hdrtoolslib::SR_UNKNOWN, 32, false, hdrtoolslib::TF_PQ, 0);                                // YCbCr to RGB conversion
-  
-  m_ppcFrameOrg[4] = new hdrtoolslib::Frame(m_ppcFrameOrg[0]->m_width[hdrtoolslib::Y_COMP], m_ppcFrameOrg[0]->m_height[hdrtoolslib::Y_COMP], true, hdrtoolslib::CM_RGB, hdrtoolslib::CP_2020, hdrtoolslib::CF_444, hdrtoolslib::SR_UNKNOWN, 32, false, hdrtoolslib::TF_NULL, 0);
-  m_ppcFrameRec[4] = new hdrtoolslib::Frame(m_ppcFrameRec[0]->m_width[hdrtoolslib::Y_COMP], m_ppcFrameRec[0]->m_height[hdrtoolslib::Y_COMP], true, hdrtoolslib::CM_RGB, hdrtoolslib::CP_2020, hdrtoolslib::CF_444, hdrtoolslib::SR_UNKNOWN, 32, false, hdrtoolslib::TF_NULL, 0);                                // Inverse Transfer Function
-  
-  m_pcFrameFormat = new hdrtoolslib::FrameFormat();
-  m_pcFrameFormat->m_isFloat = true;
-  m_pcFrameFormat->m_chromaFormat = hdrtoolslib::CF_UNKNOWN;
-  m_pcFrameFormat->m_colorSpace = hdrtoolslib::CM_RGB;
-  m_pcFrameFormat->m_colorPrimaries = hdrtoolslib::CP_2020;
-  m_pcFrameFormat->m_sampleRange = hdrtoolslib::SR_UNKNOWN;
-  
-  m_pcConvertFormat = hdrtoolslib::ConvertColorFormat::create(iWidth, iHeight, chFmt, hdrtoolslib::CF_444, iChromaUpFilter, chromaLocation, chromaLocation);
-  m_pcConvertIQuantize = hdrtoolslib::Convert::create(&m_ppcFrameOrg[1]->m_format, &m_ppcFrameOrg[2]->m_format);
-  m_pcColorTransform = hdrtoolslib::ColorTransform::create(m_ppcFrameOrg[2]->m_colorSpace, m_ppcFrameOrg[2]->m_colorPrimaries, m_ppcFrameOrg[3]->m_colorSpace, m_ppcFrameOrg[3]->m_colorPrimaries, true, 1);
-  m_pcDistortionDeltaE = new hdrtoolslib::DistortionMetricDeltaE(m_pcFrameFormat, false, dMaxSampleValue, whitePointDeltaE, 1);
-  m_pcTransferFct = hdrtoolslib::TransferFunction::create(hdrtoolslib::TF_PQ, true, (float) dMaxSampleValue, 0, 0.0, 1.0, bEnableTFunctionLUT);
+  if(calculateHdrMetrics)
+  {
+    //allocate frame buffers and initialize class members
+    int chainNumber = 5;
+    
+    m_ppcFrameOrg = new hdrtoolslib::Frame* [chainNumber];
+    m_ppcFrameRec = new hdrtoolslib::Frame* [chainNumber];
+    
+    double* whitePointDeltaE = new double[hdrtoolslib::NB_REF_WHITE];
+    for (int i=0; i<hdrtoolslib::NB_REF_WHITE; i++)
+    {
+      whitePointDeltaE[i] = m_pcCfg->getWhitePointDeltaE(i);
+    }
+    
+    double maxSampleValue                       = m_pcCfg->getMaxSampleValue();
+    hdrtoolslib::SampleRange sampleRange        = m_pcCfg->getSampleRange();
+    hdrtoolslib::ChromaFormat chFmt             = hdrtoolslib::ChromaFormat(m_pcCfg->getChromaFormatIdc());
+    int bitDepth = m_pcCfg->getBitDepth(CHANNEL_TYPE_LUMA);
+    hdrtoolslib::ColorPrimaries colorPrimaries  = m_pcCfg->getColorPrimaries();
+    bool enableTFunctionLUT                     = m_pcCfg->getEnableTFunctionLUT();
+    hdrtoolslib::ChromaLocation* chromaLocation = new hdrtoolslib::ChromaLocation[2];
+    for (int i=0; i<2; i++)
+    {
+      chromaLocation[i] = m_pcCfg->getChromaLocation(i);
+    }
+    int chromaUpFilter  = m_pcCfg->getChromaUPFilter();
+    int cropOffsetLeft   = m_pcCfg->getCropOffsetLeft();
+    int cropOffsetTop    = m_pcCfg->getCropOffsetTop();
+    int cropOffsetRight  = m_pcCfg->getCropOffsetRight();
+    int cropOffsetBottom = m_pcCfg->getCropOffsetBottom();
+    
+    int width  = m_pcCfg->getSourceWidth() - cropOffsetLeft + cropOffsetRight;
+    int height = m_pcCfg->getSourceHeight() - cropOffsetTop  + cropOffsetBottom;
+    
+    m_ppcFrameOrg[0] = new hdrtoolslib::Frame(width, height, false, hdrtoolslib::CM_YCbCr, colorPrimaries, chFmt, sampleRange, bitDepth, false, hdrtoolslib::TF_PQ, 0);
+    m_ppcFrameRec[0] = new hdrtoolslib::Frame(width, height, false, hdrtoolslib::CM_YCbCr, colorPrimaries, chFmt, sampleRange, bitDepth, false, hdrtoolslib::TF_PQ, 0);
+    
+    m_ppcFrameOrg[1] = new hdrtoolslib::Frame(m_ppcFrameOrg[0]->m_width[hdrtoolslib::Y_COMP], m_ppcFrameOrg[0]->m_height[hdrtoolslib::Y_COMP], false, hdrtoolslib::CM_YCbCr, colorPrimaries, hdrtoolslib::CF_444, sampleRange, bitDepth, false, hdrtoolslib::TF_PQ, 0);
+    m_ppcFrameRec[1] = new hdrtoolslib::Frame(m_ppcFrameRec[0]->m_width[hdrtoolslib::Y_COMP], m_ppcFrameRec[0]->m_height[hdrtoolslib::Y_COMP], false, hdrtoolslib::CM_YCbCr, colorPrimaries, hdrtoolslib::CF_444, sampleRange, bitDepth, false, hdrtoolslib::TF_PQ, 0);                                // 420 to 444 conversion
+    
+    m_ppcFrameOrg[2] =  new hdrtoolslib::Frame(m_ppcFrameOrg[0]->m_width[hdrtoolslib::Y_COMP], m_ppcFrameOrg[0]->m_height[hdrtoolslib::Y_COMP], true, hdrtoolslib::CM_YCbCr, colorPrimaries, hdrtoolslib::CF_444, hdrtoolslib::SR_UNKNOWN, 32, false, hdrtoolslib::TF_PQ, 0);
+    m_ppcFrameRec[2] =  new hdrtoolslib::Frame(m_ppcFrameRec[0]->m_width[hdrtoolslib::Y_COMP], m_ppcFrameRec[0]->m_height[hdrtoolslib::Y_COMP], true, hdrtoolslib::CM_YCbCr, colorPrimaries, hdrtoolslib::CF_444, hdrtoolslib::SR_UNKNOWN, 32, false, hdrtoolslib::TF_PQ, 0);                                // 444 to Float conversion
+    
+    m_ppcFrameOrg[3] = new hdrtoolslib::Frame(m_ppcFrameOrg[0]->m_width[hdrtoolslib::Y_COMP], m_ppcFrameOrg[0]->m_height[hdrtoolslib::Y_COMP], true, hdrtoolslib::CM_RGB, hdrtoolslib::CP_2020, hdrtoolslib::CF_444, hdrtoolslib::SR_UNKNOWN, 32, false, hdrtoolslib::TF_PQ, 0);
+    m_ppcFrameRec[3] = new hdrtoolslib::Frame(m_ppcFrameRec[0]->m_width[hdrtoolslib::Y_COMP], m_ppcFrameRec[0]->m_height[hdrtoolslib::Y_COMP], true, hdrtoolslib::CM_RGB, hdrtoolslib::CP_2020, hdrtoolslib::CF_444, hdrtoolslib::SR_UNKNOWN, 32, false, hdrtoolslib::TF_PQ, 0);                                // YCbCr to RGB conversion
+    
+    m_ppcFrameOrg[4] = new hdrtoolslib::Frame(m_ppcFrameOrg[0]->m_width[hdrtoolslib::Y_COMP], m_ppcFrameOrg[0]->m_height[hdrtoolslib::Y_COMP], true, hdrtoolslib::CM_RGB, hdrtoolslib::CP_2020, hdrtoolslib::CF_444, hdrtoolslib::SR_UNKNOWN, 32, false, hdrtoolslib::TF_NULL, 0);
+    m_ppcFrameRec[4] = new hdrtoolslib::Frame(m_ppcFrameRec[0]->m_width[hdrtoolslib::Y_COMP], m_ppcFrameRec[0]->m_height[hdrtoolslib::Y_COMP], true, hdrtoolslib::CM_RGB, hdrtoolslib::CP_2020, hdrtoolslib::CF_444, hdrtoolslib::SR_UNKNOWN, 32, false, hdrtoolslib::TF_NULL, 0);                                // Inverse Transfer Function
+    
+    m_pcFrameFormat                   = new hdrtoolslib::FrameFormat();
+    m_pcFrameFormat->m_isFloat        = true;
+    m_pcFrameFormat->m_chromaFormat   = hdrtoolslib::CF_UNKNOWN;
+    m_pcFrameFormat->m_colorSpace     = hdrtoolslib::CM_RGB;
+    m_pcFrameFormat->m_colorPrimaries = hdrtoolslib::CP_2020;
+    m_pcFrameFormat->m_sampleRange    = hdrtoolslib::SR_UNKNOWN;
+    
+    m_pcConvertFormat     = hdrtoolslib::ConvertColorFormat::create(width, height, chFmt, hdrtoolslib::CF_444, chromaUpFilter, chromaLocation, chromaLocation);
+    m_pcConvertIQuantize  = hdrtoolslib::Convert::create(&m_ppcFrameOrg[1]->m_format, &m_ppcFrameOrg[2]->m_format);
+    m_pcColorTransform    = hdrtoolslib::ColorTransform::create(m_ppcFrameOrg[2]->m_colorSpace, m_ppcFrameOrg[2]->m_colorPrimaries, m_ppcFrameOrg[3]->m_colorSpace, m_ppcFrameOrg[3]->m_colorPrimaries, true, 1);
+    m_pcDistortionDeltaE  = new hdrtoolslib::DistortionMetricDeltaE(m_pcFrameFormat, false, maxSampleValue, whitePointDeltaE, 1);
+    m_pcTransferFct       = hdrtoolslib::TransferFunction::create(hdrtoolslib::TF_PQ, true, (float) maxSampleValue, 0, 0.0, 1.0, enableTFunctionLUT);
   }
 #endif
 }
@@ -3350,14 +3348,15 @@ void EncGOP::xCalculateAddPSNR(Picture* pcPic, PelUnitBuf cPicD, const AccessUni
     MSEyuvframeWeighted[i] = 0.0;
 #endif
   }
-  #if JVET_O0756_CALCULATE_HDRMETRICS
-  double dDeltaE[hdrtoolslib::NB_REF_WHITE];
-  double dPSNRL[hdrtoolslib::NB_REF_WHITE];
-  for (int i=0; i<hdrtoolslib::NB_REF_WHITE; i++) {
-    dDeltaE[i] = 0.0;
-    dPSNRL[i] = 0.0;
+#if JVET_O0756_CALCULATE_HDRMETRICS
+  double deltaE[hdrtoolslib::NB_REF_WHITE];
+  double psnrL[hdrtoolslib::NB_REF_WHITE];
+  for (int i=0; i<hdrtoolslib::NB_REF_WHITE; i++)
+  {
+    deltaE[i] = 0.0;
+    psnrL[i] = 0.0;
   }
-  #endif
+#endif
   
   PelStorage interm;
 
@@ -3419,10 +3418,10 @@ void EncGOP::xCalculateAddPSNR(Picture* pcPic, PelUnitBuf cPicD, const AccessUni
   
 #if JVET_O0756_CALCULATE_HDRMETRICS
   const bool calculateHdrMetrics = m_pcEncLib->getCalcluateHdrMetrics();
-  if(calculateHdrMetrics)
+  if (calculateHdrMetrics)
   {
     auto beforeTime = std::chrono::steady_clock::now();
-    xCalculateHDRMetrics(pcPic, dDeltaE, dPSNRL);
+    xCalculateHDRMetrics(pcPic, deltaE, psnrL);
     auto elapsed = std::chrono::steady_clock::now() - beforeTime;
     m_metricTime += elapsed;
   }
@@ -3464,11 +3463,12 @@ void EncGOP::xCalculateAddPSNR(Picture* pcPic, PelUnitBuf cPicD, const AccessUni
 #if EXTENSION_360_VIDEO
   m_ext360.addResult(m_gcAnalyzeAll);
 #endif
-  #if JVET_O0756_CALCULATE_HDRMETRICS
-  if(calculateHdrMetrics){
-      m_gcAnalyzeAll.addHDRMetricsResult(dDeltaE, dPSNRL);
+#if JVET_O0756_CALCULATE_HDRMETRICS
+  if (calculateHdrMetrics)
+  {
+    m_gcAnalyzeAll.addHDRMetricsResult(deltaE, psnrL);
   }
-  #endif
+#endif
   if (pcSlice->isIntra())
   {
     m_gcAnalyzeI.addResult(dPSNR, (double)uibits, MSEyuvframe
@@ -3478,11 +3478,12 @@ void EncGOP::xCalculateAddPSNR(Picture* pcPic, PelUnitBuf cPicD, const AccessUni
 #if EXTENSION_360_VIDEO
     m_ext360.addResult(m_gcAnalyzeI);
 #endif
-    #if JVET_O0756_CALCULATE_HDRMETRICS
-    if(calculateHdrMetrics){
-          m_gcAnalyzeI.addHDRMetricsResult(dDeltaE, dPSNRL);
+#if JVET_O0756_CALCULATE_HDRMETRICS
+    if (calculateHdrMetrics)
+    {
+      m_gcAnalyzeI.addHDRMetricsResult(deltaE, psnrL);
     }
-    #endif
+#endif
   }
   if (pcSlice->isInterP())
   {
@@ -3493,11 +3494,12 @@ void EncGOP::xCalculateAddPSNR(Picture* pcPic, PelUnitBuf cPicD, const AccessUni
 #if EXTENSION_360_VIDEO
     m_ext360.addResult(m_gcAnalyzeP);
 #endif
-    #if JVET_O0756_CALCULATE_HDRMETRICS
-    if(calculateHdrMetrics){
-          m_gcAnalyzeP.addHDRMetricsResult(dDeltaE, dPSNRL);
+#if JVET_O0756_CALCULATE_HDRMETRICS
+    if (calculateHdrMetrics)
+    {
+      m_gcAnalyzeP.addHDRMetricsResult(deltaE, psnrL);
     }
-    #endif
+#endif
   }
   if (pcSlice->isInterB())
   {
@@ -3508,11 +3510,12 @@ void EncGOP::xCalculateAddPSNR(Picture* pcPic, PelUnitBuf cPicD, const AccessUni
 #if EXTENSION_360_VIDEO
     m_ext360.addResult(m_gcAnalyzeB);
 #endif
-    #if JVET_O0756_CALCULATE_HDRMETRICS
-    if(calculateHdrMetrics){
-          m_gcAnalyzeB.addHDRMetricsResult(dDeltaE, dPSNRL);
+#if JVET_O0756_CALCULATE_HDRMETRICS
+    if (calculateHdrMetrics)
+    {
+      m_gcAnalyzeB.addHDRMetricsResult(deltaE, psnrL);
     }
-    #endif
+#endif
   }
 #if WCG_WPSNR
   if (useLumaWPSNR)
@@ -3581,13 +3584,16 @@ void EncGOP::xCalculateAddPSNR(Picture* pcPic, PelUnitBuf cPicD, const AccessUni
     }
 #endif
 #if JVET_O0756_CALCULATE_HDRMETRICS
-    if(calculateHdrMetrics){
-    for (int i=0; i<1; i++) {
-          msg(NOTICE, " [DeltaE%d %6.4lf dB]", (int)m_pcCfg->getWhitePointDeltaE(i), dDeltaE[i]);
-    }
-    for (int i=0; i<1; i++) {
-          msg(NOTICE, " [PSNRL%d %6.4lf dB]", (int)m_pcCfg->getWhitePointDeltaE(i), dPSNRL[i]);
-    }
+    if(calculateHdrMetrics)
+    {
+      for (int i=0; i<1; i++)
+      {
+        msg(NOTICE, " [DeltaE%d %6.4lf dB]", (int)m_pcCfg->getWhitePointDeltaE(i), deltaE[i]);
+      }
+      for (int i=0; i<1; i++)
+      {
+        msg(NOTICE, " [PSNRL%d %6.4lf dB]", (int)m_pcCfg->getWhitePointDeltaE(i), psnrL[i]);
+      }
     }
 #endif
     msg( NOTICE, " [ET %5.0f ]", dEncTime );
@@ -3612,13 +3618,14 @@ void EncGOP::xCalculateAddPSNR(Picture* pcPic, PelUnitBuf cPicD, const AccessUni
 }
 
 #if JVET_O0756_CALCULATE_HDRMETRICS
-void EncGOP::xCalculateHDRMetrics( Picture* pcPic, double dDeltaE[hdrtoolslib::NB_REF_WHITE], double dPSNRL[hdrtoolslib::NB_REF_WHITE])
+void EncGOP::xCalculateHDRMetrics( Picture* pcPic, double deltaE[hdrtoolslib::NB_REF_WHITE], double psnrL[hdrtoolslib::NB_REF_WHITE])
 {
   copyBuftoFrame(pcPic);
   
   ChromaFormat chFmt =  pcPic->chromaFormat;
   
-  if (chFmt != CHROMA_444) {
+  if (chFmt != CHROMA_444)
+  {
     m_pcConvertFormat->process(m_ppcFrameOrg[1], m_ppcFrameOrg[0]);
     m_pcConvertFormat->process(m_ppcFrameRec[1], m_ppcFrameRec[0]);
   }
@@ -3635,8 +3642,8 @@ void EncGOP::xCalculateHDRMetrics( Picture* pcPic, double dDeltaE[hdrtoolslib::N
   // Calculate the Metrics
   m_pcDistortionDeltaE->computeMetric(m_ppcFrameOrg[4], m_ppcFrameRec[4]);
   
-  *dDeltaE = m_pcDistortionDeltaE->getDeltaE();
-  *dPSNRL = m_pcDistortionDeltaE->getPsnrL();
+  *deltaE = m_pcDistortionDeltaE->getDeltaE();
+  *psnrL  = m_pcDistortionDeltaE->getPsnrL();
   
 }
 
@@ -3647,8 +3654,8 @@ void EncGOP::copyBuftoFrame( Picture* pcPic )
   int cropOffsetRight  = m_pcCfg->getCropOffsetRight();
   int cropOffsetBottom = m_pcCfg->getCropOffsetBottom();
   
-  int iHeight = pcPic->getOrigBuf(COMPONENT_Y).height - cropOffsetLeft + cropOffsetRight;
-  int iWidth = pcPic->getOrigBuf(COMPONENT_Y).width - cropOffsetTop + cropOffsetBottom;
+  int height = pcPic->getOrigBuf(COMPONENT_Y).height - cropOffsetLeft + cropOffsetRight;
+  int width = pcPic->getOrigBuf(COMPONENT_Y).width - cropOffsetTop + cropOffsetBottom;
   
   ChromaFormat chFmt =  pcPic->chromaFormat;
   
@@ -3671,16 +3678,16 @@ void EncGOP::copyBuftoFrame( Picture* pcPic )
     vRec = m_ppcFrameRec[1]->m_ui16Comp[hdrtoolslib::Cr_COMP];
   }
   
-  for (int i = 0; i < iHeight; i++) {
-    for (int j = 0; j < iWidth; j++) {
-      yOrg[i*iWidth + j] = static_cast<uint16_t>(pOrg[(i + cropOffsetTop) * pcPic->getOrigBuf(COMPONENT_Y).stride + j + cropOffsetLeft]);
-      yRec[i*iWidth + j] = static_cast<uint16_t>(pRec[(i + cropOffsetTop) * pcPic->getRecoBuf(COMPONENT_Y).stride + j + cropOffsetLeft]);
+  for (int i = 0; i < height; i++) {
+    for (int j = 0; j < width; j++) {
+      yOrg[i*width + j] = static_cast<uint16_t>(pOrg[(i + cropOffsetTop) * pcPic->getOrigBuf(COMPONENT_Y).stride + j + cropOffsetLeft]);
+      yRec[i*width + j] = static_cast<uint16_t>(pRec[(i + cropOffsetTop) * pcPic->getRecoBuf(COMPONENT_Y).stride + j + cropOffsetLeft]);
     }
   }
   
   if (chFmt != CHROMA_444) {
-    iHeight >>= 1;
-    iWidth  >>= 1;
+    height >>= 1;
+    width  >>= 1;
     cropOffsetLeft >>= 1;
     cropOffsetTop >>= 1;
   }
@@ -3688,20 +3695,20 @@ void EncGOP::copyBuftoFrame( Picture* pcPic )
   pOrg = pcPic->getOrigBuf(COMPONENT_Cb).buf;
   pRec = pcPic->getRecoBuf(COMPONENT_Cb).buf;
   
-  for (int i = 0; i < iHeight; i++) {
-    for (int j = 0; j < iWidth; j++) {
-      uOrg[i*iWidth + j] = static_cast<uint16_t>(pOrg[(i + cropOffsetTop) * pcPic->getOrigBuf(COMPONENT_Cb).stride + j + cropOffsetLeft]);
-      uRec[i*iWidth + j] = static_cast<uint16_t>(pRec[(i + cropOffsetTop) * pcPic->getRecoBuf(COMPONENT_Cb).stride + j + cropOffsetLeft]);
+  for (int i = 0; i < height; i++) {
+    for (int j = 0; j < width; j++) {
+      uOrg[i*width + j] = static_cast<uint16_t>(pOrg[(i + cropOffsetTop) * pcPic->getOrigBuf(COMPONENT_Cb).stride + j + cropOffsetLeft]);
+      uRec[i*width + j] = static_cast<uint16_t>(pRec[(i + cropOffsetTop) * pcPic->getRecoBuf(COMPONENT_Cb).stride + j + cropOffsetLeft]);
     }
   }
   
   pOrg = pcPic->getOrigBuf(COMPONENT_Cr).buf;
   pRec = pcPic->getRecoBuf(COMPONENT_Cr).buf;
   
-  for (int i = 0; i < iHeight; i++) {
-    for (int j = 0; j < iWidth; j++) {
-      vOrg[i*iWidth + j] = static_cast<uint16_t>(pOrg[(i + cropOffsetTop) * pcPic->getOrigBuf(COMPONENT_Cr).stride + j + cropOffsetLeft]);
-      vRec[i*iWidth + j] = static_cast<uint16_t>(pRec[(i + cropOffsetTop) * pcPic->getRecoBuf(COMPONENT_Cr).stride + j + cropOffsetLeft]);
+  for (int i = 0; i < height; i++) {
+    for (int j = 0; j < width; j++) {
+      vOrg[i*width + j] = static_cast<uint16_t>(pOrg[(i + cropOffsetTop) * pcPic->getOrigBuf(COMPONENT_Cr).stride + j + cropOffsetLeft]);
+      vRec[i*width + j] = static_cast<uint16_t>(pRec[(i + cropOffsetTop) * pcPic->getRecoBuf(COMPONENT_Cr).stride + j + cropOffsetLeft]);
     }
   }
 }
diff --git a/source/Lib/EncoderLib/EncGOP.h b/source/Lib/EncoderLib/EncGOP.h
index 80b6caab0..5700a7617 100644
--- a/source/Lib/EncoderLib/EncGOP.h
+++ b/source/Lib/EncoderLib/EncGOP.h
@@ -183,16 +183,15 @@ private:
   hdrtoolslib::Frame **m_ppcFrameOrg;
   hdrtoolslib::Frame **m_ppcFrameRec;
   
-  hdrtoolslib::ConvertColorFormat* m_pcConvertFormat;
-  hdrtoolslib::Convert* m_pcConvertIQuantize;
-  hdrtoolslib::ColorTransform* m_pcColorTransform;
-  hdrtoolslib::DistortionMetricDeltaE* m_pcDistortionDeltaE;
-  hdrtoolslib::TransferFunction* m_pcTransferFct;
+  hdrtoolslib::ConvertColorFormat     *m_pcConvertFormat;
+  hdrtoolslib::Convert                *m_pcConvertIQuantize;
+  hdrtoolslib::ColorTransform         *m_pcColorTransform;
+  hdrtoolslib::DistortionMetricDeltaE *m_pcDistortionDeltaE;
+  hdrtoolslib::TransferFunction       *m_pcTransferFct;
   
-  hdrtoolslib::ColorTransformParams* m_pcColorTransformParams;
-  hdrtoolslib::FrameFormat* m_pcFrameFormat;
+  hdrtoolslib::ColorTransformParams   *m_pcColorTransformParams;
+  hdrtoolslib::FrameFormat            *m_pcFrameFormat;
   
-public:
   std::chrono::duration<long long, ratio<1, 1000000000>> m_metricTime;
 #endif
   
@@ -244,6 +243,9 @@ public:
   Analyze& getAnalyzePData() { return m_gcAnalyzeP; }
   Analyze& getAnalyzeBData() { return m_gcAnalyzeB; }
 #endif
+#if JVET_O0756_CALCULATE_HDRMETRICS
+  std::chrono::duration<long long, ratio<1, 1000000000>> getMetricTime()    const { return m_metricTime; };
+#endif
 
 protected:
   RateCtrl* getRateCtrl()       { return m_pcRateCtrl;  }
@@ -257,7 +259,7 @@ protected:
                             int iNumPicRcvd, int iTimeOffset, Picture*& rpcPic, int pocCurr, bool isField );
     
 #if JVET_O0756_CALCULATE_HDRMETRICS
-  void xCalculateHDRMetrics ( Picture* pcPic, double dDeltaE[hdrtoolslib::NB_REF_WHITE], double dPSNRL[hdrtoolslib::NB_REF_WHITE]);
+  void xCalculateHDRMetrics ( Picture* pcPic, double deltaE[hdrtoolslib::NB_REF_WHITE], double psnrL[hdrtoolslib::NB_REF_WHITE]);
   void copyBuftoFrame       ( Picture* pcPic );
 #endif
 
diff --git a/source/Lib/EncoderLib/EncLib.cpp b/source/Lib/EncoderLib/EncLib.cpp
index 695806502..edd8e9e4b 100644
--- a/source/Lib/EncoderLib/EncLib.cpp
+++ b/source/Lib/EncoderLib/EncLib.cpp
@@ -574,7 +574,7 @@ void EncLib::encode( bool flush, PelStorage* pcPicYuvOrg, PelStorage* cPicYuvTru
     m_cGOPEncoder.compressGOP(m_iPOCLast, m_iNumPicRcvd, m_cListPic, rcListPicYuvRecOut,
       false, false, snrCSC, m_printFrameMSE, true);
 #if JVET_O0756_CALCULATE_HDRMETRICS
-    m_metricTime = m_cGOPEncoder.m_metricTime;
+    m_metricTime = m_cGOPEncoder.getMetricTime();
 #endif
     m_cGOPEncoder.setEncodedLTRef(true);
     if (m_RCEnableRateControl)
@@ -642,7 +642,7 @@ void EncLib::encode( bool flush, PelStorage* pcPicYuvOrg, PelStorage* cPicYuvTru
     , false
   );
 #if JVET_O0756_CALCULATE_HDRMETRICS
-  m_metricTime = m_cGOPEncoder.m_metricTime;
+  m_metricTime = m_cGOPEncoder.getMetricTime();
 #endif
 
   if ( m_RCEnableRateControl )
@@ -734,7 +734,7 @@ void EncLib::encode( bool flush, PelStorage* pcPicYuvOrg, PelStorage* pcPicYuvTr
                               , false
       );
 #if JVET_O0756_CALCULATE_HDRMETRICS
-      m_metricTime = m_cGOPEncoder.m_metricTime;
+      m_metricTime = m_cGOPEncoder.getMetricTime();
 #endif
       
       iNumEncoded += m_iNumPicRcvd;
diff --git a/source/Lib/EncoderLib/EncLib.h b/source/Lib/EncoderLib/EncLib.h
index 1b8967c78..3cbdbc15a 100644
--- a/source/Lib/EncoderLib/EncLib.h
+++ b/source/Lib/EncoderLib/EncLib.h
@@ -151,15 +151,15 @@ private:
 #if JVET_O0119_BASE_PALETTE_444 
   bool                      m_doPlt;
 #endif
+#if JVET_O0756_CALCULATE_HDRMETRICS
+  std::chrono::duration<long long, ratio<1, 1000000000>> m_metricTime;
+#endif
 
 public:
   Ctx                       m_entropyCodingSyncContextState;      ///< leave in addition to vector for compatibility
 #if ENABLE_WPP_PARALLELISM
   std::vector<Ctx>          m_entropyCodingSyncContextStateVec;   ///< context storage for state of contexts at the wavefront/WPP/entropy-coding-sync second CTU of tile-row
 #endif
-#if JVET_O0756_CALCULATE_HDRMETRICS
-  std::chrono::duration<long long, ratio<1, 1000000000>> m_metricTime;
-#endif
 
 protected:
   void  xGetNewPicBuffer  ( std::list<PelUnitBuf*>& rcListPicYuvRecOut, Picture*& rpcPic, int ppsId ); ///< get picture buffer which will be processed. If ppsId<0, then the ppsMap will be queried for the first match.
@@ -252,6 +252,9 @@ public:
 #if JVET_O0119_BASE_PALETTE_444
   bool                   getPltEnc()   const { return m_doPlt; }
   void                   checkPltStats( Picture* pic );
+#endif
+#if JVET_O0756_CALCULATE_HDRMETRICS
+  std::chrono::duration<long long, ratio<1, 1000000000>> getMetricTime()    const { return m_metricTime; };
 #endif
   // -------------------------------------------------------------------------------------------------------------------
   // encoder function
-- 
GitLab