diff --git a/source/Lib/EncoderLib/Analyze.h b/source/Lib/EncoderLib/Analyze.h
index 148e53b2a43b6e151789f5a802a336d0fc417b53..29439c3ead42ebf74d65d5f33ae11766ac959931 100644
--- a/source/Lib/EncoderLib/Analyze.h
+++ b/source/Lib/EncoderLib/Analyze.h
@@ -68,6 +68,7 @@ private:
   double    m_dAddBits;
 #if JVET_AC0055_NN_POST_FILTERING
   double    m_seiMessagesBits;
+  bool      m_nnpf = false;
 #endif
   uint32_t  m_uiNumPic;
   double    m_dFrmRate; //--CFG_KDY
@@ -83,6 +84,12 @@ private:
 #endif
 
 public:
+
+#if JVET_AC0055_NN_POST_FILTERING
+  void set_nnpf(bool nnpf) { m_nnpf = nnpf; }
+  bool get_nnpf() { return m_nnpf; }
+#endif
+
   virtual ~Analyze()  {}
   Analyze() { clear(); }
 
@@ -495,9 +502,13 @@ public:
             } else
 #endif
 #if JVET_AC0055_NN_POST_FILTERING
-            msg( e_msg_level, "\tTotal Frames |   "   "Bitrate     "  "SEI Bitrate     "  "Y-PSNR    "  "U-PSNR    "  "V-PSNR    "  "YUV-PSNR " );
-#else
+            if (m_nnpf) {
+              msg( e_msg_level, "\tTotal Frames |   "   "Bitrate     "  "SEI Bitrate     "  "Y-PSNR    "  "U-PSNR    "  "V-PSNR    "  "YUV-PSNR " );
+            } else {
+#endif
             msg( e_msg_level, "\tTotal Frames |   "   "Bitrate     "  "Y-PSNR    "  "U-PSNR    "  "V-PSNR    "  "YUV-PSNR   " );
+#if JVET_AC0055_NN_POST_FILTERING
+            }
 #endif
 #if JVET_O0756_CALCULATE_HDRMETRICS
             if (printHdrMetrics)
@@ -534,15 +545,29 @@ public:
 
             //msg( e_msg_level, "\t------------ "  " ----------"   " -------- "  " -------- "  " --------\n" );
 #if JVET_AC0055_NN_POST_FILTERING
-            msg( e_msg_level, "\t %8d    %c "          "%12.4lf  "    "%12.4lf  "         "%8.4lf  "   "%8.4lf  "    "%8.4lf  "   "%8.4lf",
-                getNumPic(), cDelim,
-                getBits() * dScale,
-                getSEIMessageBits() * dScale,
-#else
+            if (m_nnpf) {
+              msg( e_msg_level, "\t %8d    %c "          "%12.4lf  "    "%12.4lf  "         "%8.4lf  "   "%8.4lf  "    "%8.4lf  "   "%8.4lf",
+                  getNumPic(), cDelim,
+                  getBits() * dScale,
+                  getSEIMessageBits() * dScale,
+#if ENABLE_QPA
+                   useWPSNR ? getWPSNR(COMPONENT_Y ) :
+#endif
+                   getPsnr(COMPONENT_Y ) / (double)getNumPic(),
+#if ENABLE_QPA
+                   useWPSNR ? getWPSNR(COMPONENT_Cb) :
+#endif
+                   getPsnr(COMPONENT_Cb) / (double)getNumPic(),
+#if ENABLE_QPA
+                   useWPSNR ? getWPSNR(COMPONENT_Cr) :
+#endif
+              getPsnr(COMPONENT_Cr) / (double)getNumPic(),
+              PSNRyuv );
+             } else {
+#endif
             msg( e_msg_level, "\t %8d    %c "          "%12.4lf  "    "%8.4lf  "   "%8.4lf  "    "%8.4lf  "   "%8.4lf",
                    getNumPic(), cDelim,
                    getBits() * dScale,
-#endif
 #if ENABLE_QPA
                    useWPSNR ? getWPSNR(COMPONENT_Y ) :
 #endif
@@ -556,6 +581,10 @@ public:
 #endif
               getPsnr(COMPONENT_Cr) / (double)getNumPic(),
               PSNRyuv );
+#if JVET_AC0055_NN_POST_FILTERING
+            }
+#endif
+
 #if JVET_O0756_CALCULATE_HDRMETRICS
             if (printHdrMetrics)
             {
diff --git a/source/Lib/EncoderLib/EncGOP.cpp b/source/Lib/EncoderLib/EncGOP.cpp
index fae656f181f8f8dcff8366a44b3b74f0ce0614a4..b5fc311f140be6f192786a8948d01d5e276d55f8 100644
--- a/source/Lib/EncoderLib/EncGOP.cpp
+++ b/source/Lib/EncoderLib/EncGOP.cpp
@@ -264,6 +264,15 @@ void EncGOP::init ( EncLib* pcEncLib )
 
 #if JVET_AC0055_NN_POST_FILTERING
   m_nnPostFilter = pcEncLib->getNnpf();
+  
+  m_gcAnalyzeAll.set_nnpf(m_pcCfg->getUseNnpf());
+  m_gcAnalyzeI.set_nnpf(m_pcCfg->getUseNnpf());
+  m_gcAnalyzeP.set_nnpf(m_pcCfg->getUseNnpf());
+  m_gcAnalyzeB.set_nnpf(m_pcCfg->getUseNnpf());
+#if WCG_WPSNR
+  m_gcAnalyzeWPSNR.set_nnpf(m_pcCfg->getUseNnpf());
+#endif
+  m_gcAnalyzeAll_in.set_nnpf(m_pcCfg->getUseNnpf());
 #endif
 
 #if JVET_O0756_CALCULATE_HDRMETRICS