Ignore:
Timestamp:
12 Apr 2018, 11:12:21 (7 years ago)
Author:
tech
Message:
  • Update HM-16.18
  • Cleanups
  • Encoder Extension

-- Representation formats
-- Parameter set sharing
-- GOP configuration

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-16.2-dev/source/Lib/TLibEncoder/TEncAnalyze.h

    r1405 r1412  
    44 * granted under this license.
    55 *
    6  * Copyright (c) 2010-2016, ITU/ISO/IEC
     6 * Copyright (c) 2010-2017, ITU/ISO/IEC
    77 * All rights reserved.
    88 *
     
    4949#include "TLibCommon/TComChromaFormat.h"
    5050#include "math.h"
     51#if EXTENSION_360_VIDEO
     52#include "TAppEncHelper360/TExt360EncAnalyze.h"
     53#endif
    5154
    5255//! \ingroup TLibEncoder
     
    6669  Double    m_dFrmRate; //--CFG_KDY
    6770  Double    m_MSEyuvframe[MAX_NUM_COMPONENT]; // sum of MSEs
     71#if JVET_F0064_MSSSIM
     72  Double    m_MSSSIM[MAX_NUM_COMPONENT];
     73#endif
     74
     75#if EXTENSION_360_VIDEO
     76  TExt360EncAnalyze m_ext360;
     77#endif
    6878
    6979public:
     
    7181  TEncAnalyze() { clear(); }
    7282
    73   Void  addResult( Double psnr[MAX_NUM_COMPONENT], Double bits, const Double MSEyuvframe[MAX_NUM_COMPONENT])
    74   {
     83#if JVET_F0064_MSSSIM
     84  Void  addResult( Double psnr[MAX_NUM_COMPONENT], Double bits, const Double MSEyuvframe[MAX_NUM_COMPONENT], const Double MSSSIM[MAX_NUM_COMPONENT] )  {
     85#else
     86  Void  addResult( Double psnr[MAX_NUM_COMPONENT], Double bits, const Double MSEyuvframe[MAX_NUM_COMPONENT] )  {
     87#endif
    7588    m_dAddBits  += bits;
    7689    for(UInt i=0; i<MAX_NUM_COMPONENT; i++)
     
    7891      m_dPSNRSum[i] += psnr[i];
    7992      m_MSEyuvframe[i] += MSEyuvframe[i];
     93#if JVET_F0064_MSSSIM
     94      m_MSSSIM[i] += MSSSIM[i];
     95#endif
    8096    }
    8197
     
    84100
    85101  Double  getPsnr(ComponentID compID) const { return  m_dPSNRSum[compID];  }
     102#if JVET_F0064_MSSSIM
     103  Double  getMsssim(ComponentID compID) const { return  m_MSSSIM[compID];  }
     104#endif
    86105  Double  getBits()                   const { return  m_dAddBits;   }
    87106  Void    setBits(Double numBits)     { m_dAddBits=numBits; }
    88107  UInt    getNumPic()                 const { return  m_uiNumPic;   }
     108#if EXTENSION_360_VIDEO
     109  TExt360EncAnalyze& getExt360Info() { return m_ext360; }
     110#endif
    89111
    90112  Void    setFrmRate  (Double dFrameRate) { m_dFrmRate = dFrameRate; } //--CFG_KDY
     
    96118      m_dPSNRSum[i] = 0;
    97119      m_MSEyuvframe[i] = 0;
     120#if JVET_F0064_MSSSIM
     121      m_MSSSIM[i] = 0;
     122#endif
    98123    }
    99124    m_uiNumPic = 0;
     125#if EXTENSION_360_VIDEO
     126    m_ext360.clear();
     127#endif
    100128  }
    101129
     
    137165
    138166
     167#if JVET_F0064_MSSSIM
     168  Void    printOut ( TChar cDelim, const ChromaFormat chFmt, const Bool printMSEBasedSNR, const Bool printSequenceMSE, const Bool printMSSSIM, const BitDepths &bitDepths )
     169#else
    139170  Void    printOut ( TChar cDelim, const ChromaFormat chFmt, const Bool printMSEBasedSNR, const Bool printSequenceMSE, const BitDepths &bitDepths )
     171#endif
    140172  {
    141173    Double dFps     =   m_dFrmRate; //--CFG_KDY
     
    171203          printf( "         \tTotal Frames |   "   "Bitrate     "  "Y-PSNR" );
    172204
     205#if JVET_F0064_MSSSIM
     206          if (printMSSSIM)
     207          {
     208            printf( "    Y-MS-SSIM");
     209          }
     210#endif
    173211          if (printSequenceMSE)
    174212          {
     
    186224                 getPsnr(COMPONENT_Y) / (Double)getNumPic() );
    187225
     226#if JVET_F0064_MSSSIM
     227          if (printMSSSIM)
     228          {
     229            printf("    %8.6lf", getMsssim(COMPONENT_Y) / (Double)getNumPic());
     230          }
     231#endif
     232
    188233          if (printSequenceMSE)
    189234          {
     
    203248        {
    204249          printf( "\tTotal Frames |   "   "Bitrate     "  "Y-PSNR" );
     250
     251#if JVET_F0064_MSSSIM
     252          if (printMSSSIM)
     253          {
     254            printf( "Y-MS-SSIM");
     255          }
     256#endif
    205257
    206258          if (printSequenceMSE)
     
    219271                 getPsnr(COMPONENT_Y) / (Double)getNumPic() );
    220272
     273#if JVET_F0064_MSSSIM
     274          if (printMSSSIM)
     275          {
     276            printf("%8.6lf", getMsssim(COMPONENT_Y) / (Double)getNumPic());
     277          }
     278#endif
    221279          if (printSequenceMSE)
    222280          {
     
    242300            printf( "         \tTotal Frames |   "   "Bitrate     "  "Y-PSNR    "  "U-PSNR    "  "V-PSNR    "  "YUV-PSNR " );
    243301
     302#if JVET_F0064_MSSSIM
     303            if (printMSSSIM)
     304            {
     305              printf("   Y-MS-SSIM    " "U-MS-SSIM    " "V-MS-SSIM ");
     306            }
     307#endif
    244308            if (printSequenceMSE)
    245309            {
     
    260324                   PSNRyuv );
    261325
     326#if JVET_F0064_MSSSIM
     327            if (printMSSSIM)
     328            {
     329              printf("    %8.6lf     " "%8.6lf     " "%8.6lf ",
     330                     getMsssim(COMPONENT_Y) / (Double)getNumPic(),
     331                     getMsssim(COMPONENT_Cb) / (Double)getNumPic(),
     332                     getMsssim(COMPONENT_Cr) / (Double)getNumPic());
     333            }
     334#endif
    262335            if (printSequenceMSE)
    263336            {
     
    285358            printf( "\tTotal Frames |   "   "Bitrate     "  "Y-PSNR    "  "U-PSNR    "  "V-PSNR    "  "YUV-PSNR " );
    286359           
     360#if JVET_F0064_MSSSIM
     361            if (printMSSSIM)
     362            {
     363              printf("   Y-MS-SSIM    " "U-MS-SSIM    " "V-MS-SSIM ");
     364            }
     365#endif
     366
     367#if EXTENSION_360_VIDEO
     368            m_ext360.printHeader();
     369#endif
     370
    287371            if (printSequenceMSE)
    288372            {
     
    303387                   PSNRyuv );
    304388
     389#if JVET_F0064_MSSSIM
     390            if (printMSSSIM)
     391            {
     392              printf("    %8.6lf     " "%8.6lf     " "%8.6lf ",
     393                     getMsssim(COMPONENT_Y) / (Double)getNumPic(),
     394                     getMsssim(COMPONENT_Cb) / (Double)getNumPic(),
     395                     getMsssim(COMPONENT_Cr) / (Double)getNumPic());
     396            }
     397#endif
     398
     399#if EXTENSION_360_VIDEO
     400            m_ext360.printPSNRs(getNumPic());
     401#endif
     402
    305403            if (printSequenceMSE)
    306404            {
Note: See TracChangeset for help on using the changeset viewer.