<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 1, 2018 at 5:59 PM,  <span dir="ltr"><<a href="mailto:bhavna@multicorewareinc.com" target="_blank">bhavna@multicorewareinc.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"># HG changeset patch<br>
# User Bhavna Hariharan <<a href="mailto:bhavna@multicorewareinc.com">bhavna@multicorewareinc.com</a>><br>
# Date 1517408059 -19800<br>
#      Wed Jan 31 19:44:19 2018 +0530<br>
# Node ID 4345744c5e23e925ed658837359d55<wbr>02b5ff94a7<br>
# Parent  79c5e3bfeb59041be822f7a4a21b95<wbr>548ddccd07<br>
csv: Bypass luma calculatations when --max-cll is OFF or when csv-log-level < 2<br>
<br>
The maxFall and maxCll values are calculated from the min, max and average luma<br>
values. The luma values were being calculated even when --max-cll is disabled.<br>
This patch bypasses the luma calculations when --max-cll is OFF or<br>
when csv-log-level < 2<br>
<br>
diff -r 79c5e3bfeb59 -r 4345744c5e23 source/common/picyuv.cpp<br>
--- a/source/common/picyuv.cpp  Tue Jan 30 15:57:08 2018 +0530<br>
+++ b/source/common/picyuv.cpp  Wed Jan 31 19:44:19 2018 +0530<br>
@@ -358,17 +358,21 @@<br>
     pixel *uPic = m_picOrg[1];<br>
     pixel *vPic = m_picOrg[2];<br>
<br>
-    for (int r = 0; r < height; r++)<br>
+<br>
+    if (param.csvLogLevel >= 2 || param.maxCLL || param.maxFALL)<br>
     {<br>
-        for (int c = 0; c < width; c++)<br>
+        for (int r = 0; r < height; r++)<br>
         {<br>
-            m_maxLumaLevel = X265_MAX(yPic[c], m_maxLumaLevel);<br>
-            m_minLumaLevel = X265_MIN(yPic[c], m_minLumaLevel);<br>
-            lumaSum += yPic[c];<br>
+            for (int c = 0; c < width; c++)<br>
+            {<br>
+                m_maxLumaLevel = X265_MAX(yPic[c], m_maxLumaLevel);<br>
+                m_minLumaLevel = X265_MIN(yPic[c], m_minLumaLevel);<br>
+                lumaSum += yPic[c];<br>
+            }<br>
+            yPic += m_stride;<br>
         }<br>
-        yPic += m_stride;<br>
+        m_avgLumaLevel = (double)lumaSum / (m_picHeight * m_picWidth);<br>
     }<br>
-    m_avgLumaLevel = (double)lumaSum / (m_picHeight * m_picWidth);<br>
<br>
     if (param.csvLogLevel >= 2)<br>
     {<br>
diff -r 79c5e3bfeb59 -r 4345744c5e23 source/encoder/api.cpp<br>
--- a/source/encoder/api.cpp    Tue Jan 30 15:57:08 2018 +0530<br>
+++ b/source/encoder/api.cpp    Wed Jan 31 19:44:19 2018 +0530<br>
@@ -67,8 +67,7 @@<br>
     "Y PSNR, U PSNR, V PSNR, Global PSNR, SSIM, SSIM (dB), "<br>
     "I count, I ave-QP, I kbps, I-PSNR Y, I-PSNR U, I-PSNR V, I-SSIM (dB), "<br>
     "P count, P ave-QP, P kbps, P-PSNR Y, P-PSNR U, P-PSNR V, P-SSIM (dB), "<br>
-    "B count, B ave-QP, B kbps, B-PSNR Y, B-PSNR U, B-PSNR V, B-SSIM (dB), "<br>
-    "MaxCLL, MaxFALL, Version\n";<br>
+    "B count, B ave-QP, B kbps, B-PSNR Y, B-PSNR U, B-PSNR V, B-SSIM (dB), ";<br>
<br>
 x265_encoder *x265_encoder_open(x265_param *p)<br>
 {<br>
@@ -757,7 +756,12 @@<br>
                 fprintf(csvfp, "\n");<br>
             }<br>
             else<br>
+            {<br>
                 fputs(summaryCSVHeader, csvfp);<br>
+                if (param->csvLogLevel >= 2 || param->maxCLL || param->maxFALL)<br>
+                    fputs("MaxCLL, MaxFALL,", csvfp);<br>
+                fputs(" Version\n", csvfp);<br>
+            }<br>
         }<br>
         return csvfp;<br>
     }<br>
@@ -881,6 +885,9 @@<br>
             // adding summary to a per-frame csv log file, so it needs a summary header<br>
             fprintf(p->csvfpt, "\nSummary\n");<br>
             fputs(summaryCSVHeader, p->csvfpt);<br>
+            if (p->csvLogLevel >= 2 || p->maxCLL || p->maxFALL)<br>
+                fputs("MaxCLL, MaxFALL,", p->csvfpt);<br>
+            fputs(" Version\n",p->csvfpt);<br>
         }<br>
<br>
         // CLI arguments or other<br>
@@ -974,7 +981,9 @@<br>
         else<br>
             fprintf(p->csvfpt, " -, -, -, -, -, -, -,");<br>
<br>
-        fprintf(p->csvfpt, " %-6u, %-6u, %s\n", stats->maxCLL, stats->maxFALL, api->version_str);<br>
+        if (p->csvLogLevel >= 2 || p->maxCLL || p->maxFALL)<br>
+            fprintf(p->csvfpt, " %-6u, %-6u,", stats->maxCLL, stats->maxFALL);<br>
+        fprintf(p->csvfpt, " %s\n", api->version_str);<br>
     }<br>
<br>
 }<br>
diff -r 79c5e3bfeb59 -r 4345744c5e23 source/encoder/encoder.cpp<br>
--- a/source/encoder/encoder.cpp        Tue Jan 30 15:57:08 2018 +0530<br>
+++ b/source/encoder/encoder.cpp        Wed Jan 31 19:44:19 2018 +0530<br>
@@ -1984,8 +1984,11 @@<br>
         stats->statsB.psnrV   = m_analyzeB.m_psnrSumV / (double)m_analyzeB.m_numPics;<br>
         stats->statsB.ssim    = x265_ssim2dB(m_analyzeB.m_<wbr>globalSsim / (double)m_analyzeB.m_numPics);<br>
<br>
-        stats->maxCLL         = m_analyzeAll.m_maxCLL;<br>
-        stats->maxFALL        = (uint16_t)(m_analyzeAll.m_<wbr>maxFALL / m_analyzeAll.m_numPics);<br>
+        if (m_param->csvLogLevel >= 2 || m_param->maxCLL || m_param->maxFALL)<br>
+        {<br>
+            stats->maxCLL = m_analyzeAll.m_maxCLL;<br>
+            stats->maxFALL = (uint16_t)(m_analyzeAll.m_<wbr>maxFALL / m_analyzeAll.m_numPics);<br>
+        }<br>
     }<br>
<br>
     /* If new statistics are added to x265_stats, we must check here whether the<br>
@@ -2060,8 +2063,11 @@<br>
             m_analyzeB.addSsim(ssim);<br>
     }<br>
<br>
-    m_analyzeAll.m_maxFALL += curFrame->m_fencPic->m_<wbr>avgLumaLevel;<br>
-    m_analyzeAll.m_maxCLL = X265_MAX(m_analyzeAll.m_<wbr>maxCLL, curFrame->m_fencPic->m_<wbr>maxLumaLevel);<br>
+    if (m_param->csvLogLevel >= 2 || m_param->maxCLL || m_param->maxFALL)<br>
+    {<br>
+        m_analyzeAll.m_maxFALL += curFrame->m_fencPic->m_<wbr>avgLumaLevel;<br>
+        m_analyzeAll.m_maxCLL = X265_MAX(m_analyzeAll.m_<wbr>maxCLL, curFrame->m_fencPic->m_<wbr>maxLumaLevel);<br>
+    }<br>
<br>
     char c = (slice->isIntra() ? (curFrame->m_lowres.sliceType == X265_TYPE_IDR ? 'I' : 'i') : slice->isInterP() ? 'P' : 'B');<br>
     int poc = slice->m_poc;<br>
@@ -2104,10 +2110,6 @@<br>
<br>
 #define ELAPSED_MSEC(start, end) (((double)(end) - (start)) / 1000)<br>
<br>
-        frameStats->maxLumaLevel = curFrame->m_fencPic->m_<wbr>maxLumaLevel;<br>
-        frameStats->minLumaLevel = curFrame->m_fencPic->m_<wbr>minLumaLevel;<br>
-        frameStats->avgLumaLevel = curFrame->m_fencPic->m_<wbr>avgLumaLevel;<br>
-<br>
         if (m_param->csvLogLevel >= 2)<br>
         {<br>
             frameStats->decideWaitTime = ELAPSED_MSEC(0, curEncoder->m_<wbr>slicetypeWaitTime);<br>
@@ -2128,6 +2130,10 @@<br>
             frameStats->avgPsyEnergy = curFrame->m_encData->m_<wbr>frameStats.avgPsyEnergy;<br>
             frameStats->avgResEnergy = curFrame->m_encData->m_<wbr>frameStats.avgResEnergy;<br>
<br>
+            frameStats->maxLumaLevel = curFrame->m_fencPic->m_<wbr>maxLumaLevel;<br>
+            frameStats->minLumaLevel = curFrame->m_fencPic->m_<wbr>minLumaLevel;<br>
+            frameStats->avgLumaLevel = curFrame->m_fencPic->m_<wbr>avgLumaLevel;<br>
+<br>
             frameStats->maxChromaULevel = curFrame->m_fencPic->m_<wbr>maxChromaULevel;<br>
             frameStats->minChromaULevel = curFrame->m_fencPic->m_<wbr>minChromaULevel;<br>
             frameStats->avgChromaULevel = curFrame->m_fencPic->m_<wbr>avgChromaULevel;<br>
<br>______________________________<wbr>_________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/<wbr>listinfo/x265-devel</a><br>
<br></blockquote></div><br></div><div class="gmail_extra">Thanks. Pushed to default.</div></div>