[x265] [PATCH 4 of 4] Statistics maxLumaLevel in Frame Level
Deepthi Nandakumar
deepthi at multicorewareinc.com
Thu Aug 13 12:32:15 CEST 2015
Min, Kavitha's patch moved maxLumaLevel into copyFromPicture, which is the
right place for this, since maxLumaLevel is calculated from input pic.
On Thu, Aug 13, 2015 at 8:52 AM, Min Chen <chenm003 at 163.com> wrote:
> # HG changeset patch
> # User Min Chen <chenm003 at 163.com>
> # Date 1439426801 25200
> # Node ID 128db3baec386bacf0fd102c7e99ecf82c165657
> # Parent caf9562dc947f93e8ee237574575e9b67d494fc8
> Statistics maxLumaLevel in Frame Level
> ---
> source/common/framedata.h | 1 -
> source/encoder/encoder.cpp | 20 +++++++++++++++++++-
> source/encoder/frameencoder.cpp | 8 --------
> 3 files changed, 19 insertions(+), 10 deletions(-)
>
> diff -r caf9562dc947 -r 128db3baec38 source/common/framedata.h
> --- a/source/common/framedata.h Wed Aug 12 17:15:13 2015 -0700
> +++ b/source/common/framedata.h Wed Aug 12 17:46:41 2015 -0700
> @@ -75,7 +75,6 @@
> uint64_t cntIntra[NUM_CU_DEPTH];
> uint64_t cuInterDistribution[NUM_CU_DEPTH][INTER_MODES];
> uint64_t cuIntraDistribution[NUM_CU_DEPTH][INTRA_MODES];
> - uint16_t maxLumaLevel;
>
> FrameStats()
> {
> diff -r caf9562dc947 -r 128db3baec38 source/encoder/encoder.cpp
> --- a/source/encoder/encoder.cpp Wed Aug 12 17:15:13 2015 -0700
> +++ b/source/encoder/encoder.cpp Wed Aug 12 17:46:41 2015 -0700
> @@ -1164,7 +1164,25 @@
> frameStats->avgLumaDistortion =
> curFrame->m_encData->m_frameStats.avgLumaDistortion;
> frameStats->avgPsyEnergy =
> curFrame->m_encData->m_frameStats.avgPsyEnergy;
> frameStats->avgLumaLevel =
> curFrame->m_encData->m_frameStats.avgLumaLevel;
> - frameStats->maxLumaLevel =
> curFrame->m_encData->m_frameStats.maxLumaLevel;
> +
> + // Statistics Maximum LumaLevel for (csvlog_level >= 2)
> + {
> + const pixel *pix = curFrame->m_fencPic->m_picOrg[0];
> + const intptr_t stride = curFrame->m_fencPic->m_stride;
> +
> + pixel maxLumaLevel = 0;
> + for(uint32_t y = 0; y < curFrame->m_fencPic->m_picHeight; y++)
> + {
> + for(uint32_t x = 0; x < curFrame->m_fencPic->m_picWidth;
> x++)
> + {
> + if (pix[x] > maxLumaLevel)
> + maxLumaLevel = pix[x];
> + }
> + pix += stride;
> + }
> + frameStats->maxLumaLevel = maxLumaLevel;
> + }
> +
> for (uint32_t depth = 0; depth <= g_maxCUDepth; depth++)
> {
> frameStats->cuStats.percentSkipCu[depth] =
> curFrame->m_encData->m_frameStats.percentSkipCu[depth];
> diff -r caf9562dc947 -r 128db3baec38 source/encoder/frameencoder.cpp
> --- a/source/encoder/frameencoder.cpp Wed Aug 12 17:15:13 2015 -0700
> +++ b/source/encoder/frameencoder.cpp Wed Aug 12 17:46:41 2015 -0700
> @@ -594,8 +594,6 @@
> m_frame->m_encData->m_frameStats.psyEnergy +=
> m_rows[i].rowStats.psyEnergy;
> m_frame->m_encData->m_frameStats.lumaLevel +=
> m_rows[i].rowStats.lumaLevel;
>
> - if (m_rows[i].rowStats.maxLumaLevel >
> m_frame->m_encData->m_frameStats.maxLumaLevel)
> - m_frame->m_encData->m_frameStats.maxLumaLevel =
> m_rows[i].rowStats.maxLumaLevel;
> for (uint32_t depth = 0; depth <= g_maxCUDepth; depth++)
> {
> m_frame->m_encData->m_frameStats.cntSkipCu[depth] +=
> m_rows[i].rowStats.cntSkipCu[depth];
> @@ -995,12 +993,6 @@
> static const pixel dummy_zero[MAX_CU_SIZE] = {0};
> uint32_t ctuLumaLevel =
> primitives.pu[best.fencYuv->m_part].sad(best.fencYuv->m_buf[0],
> best.fencYuv->m_size, dummy_zero, 0);
> uint32_t ctuNoOfPixels = best.fencYuv->m_size *
> best.fencYuv->m_size;
> - for (uint32_t i = 0; i < ctuNoOfPixels; i++)
> - {
> - pixel p = best.fencYuv->m_buf[0][i];
> - if (p > curRow.rowStats.maxLumaLevel)
> - curRow.rowStats.maxLumaLevel = p;
> - }
> curRow.rowStats.lumaLevel += (double)(ctuLumaLevel) /
> ctuNoOfPixels;
>
> curEncData.m_cuStat[cuAddr].totalBits = best.totalBits;
>
> _______________________________________________
> 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/20150813/f5d24bd5/attachment.html>
More information about the x265-devel
mailing list