[x265] [PATCH] stats: log maxCLL and maxFALL values calculated from input pictures

Deepthi Nandakumar deepthi at multicorewareinc.com
Mon Aug 17 08:05:48 CEST 2015


Thanks, I modified the earlier patch and pushed it

On Mon, Aug 17, 2015 at 11:35 AM, <kavitha at multicorewareinc.com> wrote:

> # HG changeset patch
> # User Kavitha Sampath <kavitha at multicorewareinc.com>
> # Date 1439791372 -19800
> #      Mon Aug 17 11:32:52 2015 +0530
> # Node ID 42d5e1b252fcc1a506d9bdcf97afeee4e4bfd922
> # Parent  d56b2466c04459205287e1581d8a36eebf372ba6
> stats: log maxCLL and maxFALL values calculated from input pictures
>
> diff -r d56b2466c044 -r 42d5e1b252fc source/CMakeLists.txt
> --- a/source/CMakeLists.txt     Wed Aug 12 18:12:20 2015 +0530
> +++ b/source/CMakeLists.txt     Mon Aug 17 11:32:52 2015 +0530
> @@ -30,7 +30,7 @@
>  mark_as_advanced(FPROFILE_USE FPROFILE_GENERATE NATIVE_BUILD)
>
>  # X265_BUILD must be incremented each time the public API is changed
> -set(X265_BUILD 70)
> +set(X265_BUILD 71)
>  configure_file("${PROJECT_SOURCE_DIR}/x265.def.in"
>                 "${PROJECT_BINARY_DIR}/x265.def")
>  configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in"
> diff -r d56b2466c044 -r 42d5e1b252fc source/encoder/encoder.cpp
> --- a/source/encoder/encoder.cpp        Wed Aug 12 18:12:20 2015 +0530
> +++ b/source/encoder/encoder.cpp        Mon Aug 17 11:32:52 2015 +0530
> @@ -1038,6 +1038,9 @@
>          stats->statsB.psnrU   = m_analyzeB.m_psnrSumU /
> (double)m_analyzeB.m_numPics;
>          stats->statsB.psnrV   = m_analyzeB.m_psnrSumV /
> (double)m_analyzeB.m_numPics;
>          stats->statsB.ssim    = x265_ssim2dB(m_analyzeB.m_globalSsim /
> (double)m_analyzeB.m_numPics);
> +
> +        stats->maxCLL         = m_analyzeAll.m_maxCLL;
> +        stats->maxFALL        = (uint16_t)(m_analyzeAll.m_maxFALL /
> m_analyzeAll.m_numPics);
>      }
>
>      /* If new statistics are added to x265_stats, we must check here
> whether the
> @@ -1111,6 +1114,9 @@
>              m_analyzeB.addSsim(ssim);
>      }
>
> +    m_analyzeAll.m_maxFALL += curFrame->m_fencPic->m_avgLumaLevel;
> +    m_analyzeAll.m_maxCLL = X265_MAX(m_analyzeAll.m_maxCLL,
> curFrame->m_fencPic->m_maxLumaLevel);
> +
>      char c = (slice->isIntra() ? 'I' : slice->isInterP() ? 'P' : 'B');
>      int poc = slice->m_poc;
>      if (!IS_REFERENCED(curFrame))
> diff -r d56b2466c044 -r 42d5e1b252fc source/encoder/encoder.h
> --- a/source/encoder/encoder.h  Wed Aug 12 18:12:20 2015 +0530
> +++ b/source/encoder/encoder.h  Mon Aug 17 11:32:52 2015 +0530
> @@ -47,6 +47,8 @@
>      double        m_totalQp;
>      uint64_t      m_accBits;
>      uint32_t      m_numPics;
> +    uint16_t      m_maxCLL;
> +    double        m_maxFALL;
>
>      EncStats()
>      {
> @@ -54,6 +56,8 @@
>          m_accBits = 0;
>          m_numPics = 0;
>          m_totalQp = 0;
> +        m_maxCLL = 0;
> +        m_maxFALL = 0;
>      }
>
>      void addQP(double aveQp);
> diff -r d56b2466c044 -r 42d5e1b252fc source/x265-extras.cpp
> --- a/source/x265-extras.cpp    Wed Aug 12 18:12:20 2015 +0530
> +++ b/source/x265-extras.cpp    Mon Aug 17 11:32:52 2015 +0530
> @@ -36,7 +36,7 @@
>      "I count, I ave-QP, I kbps, I-PSNR Y, I-PSNR U, I-PSNR V, I-SSIM
> (dB), "
>      "P count, P ave-QP, P kbps, P-PSNR Y, P-PSNR U, P-PSNR V, P-SSIM
> (dB), "
>      "B count, B ave-QP, B kbps, B-PSNR Y, B-PSNR U, B-PSNR V, B-SSIM
> (dB), "
> -    "Version\n";
> +    "MaxCLL, MaxFALL, Version\n";
>
>  FILE* x265_csvlog_open(const x265_api& api, const x265_param& param,
> const char* fname, int level)
>  {
> @@ -273,7 +273,7 @@
>      else
>          fprintf(csvfp, " -, -, -, -, -, -, -,");
>
> -    fprintf(csvfp, " %s\n", api.version_str);
> +    fprintf(csvfp, " %-6u, %-6u, %s\n", stats.maxCLL, stats.maxFALL,
> api.version_str);
>  }
>
>  /* The dithering algorithm is based on Sierra-2-4A error diffusion. */
> diff -r d56b2466c044 -r 42d5e1b252fc source/x265.h
> --- a/source/x265.h     Wed Aug 12 18:12:20 2015 +0530
> +++ b/source/x265.h     Mon Aug 17 11:32:52 2015 +0530
> @@ -385,6 +385,8 @@
>      x265_sliceType_stats  statsI;               /* statistics of I slice
> */
>      x265_sliceType_stats  statsP;               /* statistics of P slice
> */
>      x265_sliceType_stats  statsB;               /* statistics of B slice
> */
> +    uint16_t              maxCLL;               /* maximum content light
> level */
> +    uint16_t              maxFALL;              /* maximum frame average
> light level */
>  } x265_stats;
>
>  /* String values accepted by x265_param_parse() (and CLI) for various
> parameters */
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20150817/c66fb6ae/attachment.html>


More information about the x265-devel mailing list