[x265] [PATCH] stats: average psyEnergy per frame

Steve Borho steve at borho.org
Wed Jul 22 18:27:10 CEST 2015


On 07/22, Divya Manivannan wrote:
> # HG changeset patch
> # User Divya Manivannan <divya at multicorewareinc.com>
> # Date 1437540850 -19800
> #      Wed Jul 22 10:24:10 2015 +0530
> # Node ID 5e33d0f04082ae890189ef14ed6681a629a24bd4
> # Parent  46152345eb6ff261fd90272f7a0712300d6324c0
> stats: average psyEnergy per frame

LGTM

> diff -r 46152345eb6f -r 5e33d0f04082 source/CMakeLists.txt
> --- a/source/CMakeLists.txt	Mon Jul 20 17:18:54 2015 -0700
> +++ b/source/CMakeLists.txt	Wed Jul 22 10:24:10 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 65)
> +set(X265_BUILD 66)
>  configure_file("${PROJECT_SOURCE_DIR}/x265.def.in"
>                 "${PROJECT_BINARY_DIR}/x265.def")
>  configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in"
> diff -r 46152345eb6f -r 5e33d0f04082 source/common/framedata.h
> --- a/source/common/framedata.h	Mon Jul 20 17:18:54 2015 -0700
> +++ b/source/common/framedata.h	Wed Jul 22 10:24:10 2015 +0530
> @@ -54,6 +54,7 @@
>      double      percent8x8Skip;
>      double      avgLumaDistortion;
>      double      avgChromaDistortion;
> +    double      avgPsyEnergy;
>      double      percentIntraNxN;
>      double      percentSkipCu[NUM_CU_DEPTH];
>      double      percentMergeCu[NUM_CU_DEPTH];
> @@ -65,6 +66,7 @@
>      uint64_t    totalCtu;
>      uint64_t    lumaDistortion;
>      uint64_t    chromaDistortion;
> +    uint64_t    psyEnergy;
>      uint64_t    cntSkipCu[NUM_CU_DEPTH];
>      uint64_t    cntMergeCu[NUM_CU_DEPTH];
>      uint64_t    cntInter[NUM_CU_DEPTH];
> diff -r 46152345eb6f -r 5e33d0f04082 source/encoder/encoder.cpp
> --- a/source/encoder/encoder.cpp	Mon Jul 20 17:18:54 2015 -0700
> +++ b/source/encoder/encoder.cpp	Wed Jul 22 10:24:10 2015 +0530
> @@ -1167,6 +1167,7 @@
>          frameStats->cuStats.percentIntraNxN = curFrame->m_encData->m_frameStats.percentIntraNxN;
>          frameStats->avgChromaDistortion     = curFrame->m_encData->m_frameStats.avgChromaDistortion;
>          frameStats->avgLumaDistortion       = curFrame->m_encData->m_frameStats.avgLumaDistortion;
> +        frameStats->avgPsyEnergy            = curFrame->m_encData->m_frameStats.avgPsyEnergy;
>          for (uint32_t depth = 0; depth <= g_maxCUDepth; depth++)
>          {
>              frameStats->cuStats.percentSkipCu[depth]  = curFrame->m_encData->m_frameStats.percentSkipCu[depth];
> diff -r 46152345eb6f -r 5e33d0f04082 source/encoder/frameencoder.cpp
> --- a/source/encoder/frameencoder.cpp	Mon Jul 20 17:18:54 2015 -0700
> +++ b/source/encoder/frameencoder.cpp	Wed Jul 22 10:24:10 2015 +0530
> @@ -590,6 +590,7 @@
>          m_frame->m_encData->m_frameStats.totalCtu         += m_rows[i].rowStats.totalCtu;
>          m_frame->m_encData->m_frameStats.lumaDistortion   += m_rows[i].rowStats.lumaDistortion;
>          m_frame->m_encData->m_frameStats.chromaDistortion += m_rows[i].rowStats.chromaDistortion;
> +        m_frame->m_encData->m_frameStats.psyEnergy        += m_rows[i].rowStats.psyEnergy;
>          for (uint32_t depth = 0; depth <= g_maxCUDepth; depth++)
>          {
>              m_frame->m_encData->m_frameStats.cntSkipCu[depth] += m_rows[i].rowStats.cntSkipCu[depth];
> @@ -602,6 +603,7 @@
>      }
>      m_frame->m_encData->m_frameStats.avgLumaDistortion   = (double)(m_frame->m_encData->m_frameStats.lumaDistortion / m_frame->m_encData->m_frameStats.totalCtu);
>      m_frame->m_encData->m_frameStats.avgChromaDistortion = (double)(m_frame->m_encData->m_frameStats.chromaDistortion / m_frame->m_encData->m_frameStats.totalCtu);
> +    m_frame->m_encData->m_frameStats.avgPsyEnergy        = (double)(m_frame->m_encData->m_frameStats.psyEnergy / m_frame->m_encData->m_frameStats.totalCtu);
>      m_frame->m_encData->m_frameStats.percentIntraNxN     = (double)(m_frame->m_encData->m_frameStats.cntIntraNxN * 100) / m_frame->m_encData->m_frameStats.totalCu;
>      for (uint32_t depth = 0; depth <= g_maxCUDepth; depth++)
>      {
> @@ -969,6 +971,7 @@
>          curRow.rowStats.totalCtu++;
>          curRow.rowStats.lumaDistortion   += best.lumaDistortion;
>          curRow.rowStats.chromaDistortion += best.chromaDistortion;
> +        curRow.rowStats.psyEnergy        += best.psyEnergy;
>          curRow.rowStats.cntIntraNxN      += frameLog.cntIntraNxN;
>          curRow.rowStats.totalCu          += frameLog.totalCu;
>          for (uint32_t depth = 0; depth <= g_maxCUDepth; depth++)
> diff -r 46152345eb6f -r 5e33d0f04082 source/x265-extras.cpp
> --- a/source/x265-extras.cpp	Mon Jul 20 17:18:54 2015 -0700
> +++ b/source/x265-extras.cpp	Wed Jul 22 10:24:10 2015 +0530
> @@ -107,7 +107,7 @@
>                          fprintf(csvfp, ", Merge %dx%d", size, size);
>                          size /= 2;
>                      }
> -                    fprintf(csvfp, ", Avg Luma Distortion, Avg Chroma Distortion");
> +                    fprintf(csvfp, ", Avg Luma Distortion, Avg Chroma Distortion, Avg psyEnergy");
>                  }
>                  fprintf(csvfp, "\n");
>              }
> @@ -179,7 +179,7 @@
>              fprintf(csvfp, ", %5.2lf%%", frameStats->cuStats.percentSkipCu[depth]);
>          for (uint32_t depth = 0; depth <= g_maxCUDepth; depth++)
>              fprintf(csvfp, ", %5.2lf%%", frameStats->cuStats.percentMergeCu[depth]);
> -        fprintf(csvfp, ", %.2lf, %.2lf", frameStats->avgLumaDistortion, frameStats->avgChromaDistortion);
> +        fprintf(csvfp, ", %.2lf, %.2lf, %.2lf", frameStats->avgLumaDistortion, frameStats->avgChromaDistortion, frameStats->avgPsyEnergy);
>      }
>      fprintf(csvfp, "\n");
>      fflush(stderr);
> diff -r 46152345eb6f -r 5e33d0f04082 source/x265.h
> --- a/source/x265.h	Mon Jul 20 17:18:54 2015 -0700
> +++ b/source/x265.h	Wed Jul 22 10:24:10 2015 +0530
> @@ -131,6 +131,7 @@
>      double           avgWPP;
>      double           avgLumaDistortion;
>      double           avgChromaDistortion;
> +    double           avgPsyEnergy;
>      uint64_t         bits;
>      int              encoderOrder;
>      int              poc;
> _______________________________________________
> 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