[x265] [PATCH] stats: write encoder summary in the console to libx265

Steve Borho steve at borho.org
Fri Jun 12 17:03:24 CEST 2015


On 06/12, Divya Manivannan wrote:
> # HG changeset patch
> # User Divya Manivannan <divya at multicorewareinc.com>
> # Date 1434101056 -19800
> #      Fri Jun 12 14:54:16 2015 +0530
> # Node ID 91f6f8daef59781f45d3d13a931b7b6196a31465
> # Parent  54c798d021019d820224bdd74cb78e20bf317fc8
> stats: write encoder summary in the console to libx265

sure, don't see why not

> diff -r 54c798d02101 -r 91f6f8daef59 source/encoder/encoder.cpp
> --- a/source/encoder/encoder.cpp	Fri Jun 12 14:27:01 2015 +0530
> +++ b/source/encoder/encoder.cpp	Fri Jun 12 14:54:16 2015 +0530
> @@ -786,8 +786,6 @@
>          x265_log(m_param, X265_LOG_INFO, "frame P: %s\n", statsString(m_analyzeP, buffer));
>      if (m_analyzeB.m_numPics)
>          x265_log(m_param, X265_LOG_INFO, "frame B: %s\n", statsString(m_analyzeB, buffer));
> -    if (m_analyzeAll.m_numPics)
> -        x265_log(m_param, X265_LOG_INFO, "global : %s\n", statsString(m_analyzeAll, buffer));
>      if (m_param->bEnableWeightedPred && m_analyzeP.m_numPics)
>      {
>          x265_log(m_param, X265_LOG_INFO, "Weighted P-Frames: Y:%.1f%% UV:%.1f%%\n",
> @@ -821,6 +819,30 @@
>          x265_log(m_param, X265_LOG_INFO, "lossless compression ratio %.2f::1\n", uncompressed / m_analyzeAll.m_accBits);
>      }
>  
> +    if (m_analyzeAll.m_numPics)
> +    {
> +        int p = 0;
> +        double elapsedEncodeTime = (double)(x265_mdate() - m_encodeStartTime) / 1000000;
> +        double elapsedVideoTime = (double)m_analyzeAll.m_numPics * m_param->fpsDenom / m_param->fpsNum;
> +        double bitrate = (0.001f * m_analyzeAll.m_accBits) / elapsedVideoTime;
> +
> +        p += sprintf(buffer + p, "\nencoded %d frames in %.2fs (%.2f fps), %.2f kb/s, Avg QP:%2.2lf", m_analyzeAll.m_numPics,
> +                     elapsedEncodeTime, m_analyzeAll.m_numPics / elapsedEncodeTime, bitrate, m_analyzeAll.m_totalQp / (double)m_analyzeAll.m_numPics);
> +
> +        if (m_param->bEnablePsnr)
> +        {
> +            double globalPsnr = (m_analyzeAll.m_psnrSumY * 6 + m_analyzeAll.m_psnrSumU + m_analyzeAll.m_psnrSumV) / (8 * m_analyzeAll.m_numPics);
> +            p += sprintf(buffer + p, ", Global PSNR: %.3f", globalPsnr);
> +        }
> +
> +        if (m_param->bEnableSsim)
> +            p += sprintf(buffer + p, ", SSIM Mean Y: %.7f (%6.3f dB)", m_analyzeAll.m_globalSsim / m_analyzeAll.m_numPics, x265_ssim2dB(m_analyzeAll.m_globalSsim / m_analyzeAll.m_numPics));
> +
> +        sprintf(buffer + p, "\n");
> +        general_log(m_param, NULL, X265_LOG_INFO, buffer);
> +    }
> +    else
> +        general_log(m_param, NULL, X265_LOG_INFO, "\nencoded 0 frames\n");
>  
>  #if DETAILED_CU_STATS
>      /* Summarize stats from all frame encoders */
> diff -r 54c798d02101 -r 91f6f8daef59 source/x265.cpp
> --- a/source/x265.cpp	Fri Jun 12 14:27:01 2015 +0530
> +++ b/source/x265.cpp	Fri Jun 12 14:54:16 2015 +0530
> @@ -896,26 +896,6 @@
>          general_log(param, NULL, X265_LOG_INFO, "aborted at input frame %d, output frame %d\n",
>                      cliopt.seek + inFrameCount, stats.encodedPictureCount);
>  
> -    if (stats.encodedPictureCount)
> -    {
> -        char buffer[4096];
> -        int p = sprintf(buffer, "\nencoded %d frames in %.2fs (%.2f fps), %.2f kb/s", stats.encodedPictureCount,
> -                        stats.elapsedEncodeTime, stats.encodedPictureCount / stats.elapsedEncodeTime, stats.bitrate);
> -
> -        if (param->bEnablePsnr)
> -            p += sprintf(buffer + p, ", Global PSNR: %.3f", stats.globalPsnr);
> -
> -        if (param->bEnableSsim)
> -            p += sprintf(buffer + p, ", SSIM Mean Y: %.7f (%6.3f dB)", stats.globalSsim, x265_ssim2dB(stats.globalSsim));
> -
> -        sprintf(buffer + p, "\n");
> -        general_log(param, NULL, X265_LOG_INFO, buffer);
> -    }
> -    else
> -    {
> -        general_log(param, NULL, X265_LOG_INFO, "\nencoded 0 frames\n");
> -    }
> -
>      api->cleanup(); /* Free library singletons */
>  
>      cliopt.destroy();
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel

-- 
Steve Borho


More information about the x265-devel mailing list