[x265-commits] [x265] stats: add more comments

Steve Borho steve at borho.org
Fri Feb 6 19:39:45 CET 2015


details:   http://hg.videolan.org/x265/rev/18eb688027f9
branches:  
changeset: 9322:18eb688027f9
user:      Steve Borho <steve at borho.org>
date:      Fri Feb 06 12:24:20 2015 -0600
description:
stats: add more comments
Subject: [x265] stats: capture recon generation time at RD levels 0 and 1 as "RDO" time

details:   http://hg.videolan.org/x265/rev/12e0b9339d36
branches:  
changeset: 9323:12e0b9339d36
user:      Steve Borho <steve at borho.org>
date:      Fri Feb 06 12:32:17 2015 -0600
description:
stats: capture recon generation time at RD levels 0 and 1 as "RDO" time

This seems less bad than introducing new counters just for RD0/1 recon time

diffstat:

 source/encoder/analysis.cpp |  4 ++++
 source/encoder/encoder.cpp  |  2 ++
 2 files changed, 6 insertions(+), 0 deletions(-)

diffs (40 lines):

diff -r 5389e6d11567 -r 12e0b9339d36 source/encoder/analysis.cpp
--- a/source/encoder/analysis.cpp	Fri Feb 06 11:25:38 2015 -0600
+++ b/source/encoder/analysis.cpp	Fri Feb 06 12:32:17 2015 -0600
@@ -1768,6 +1768,8 @@ void Analysis::encodeResidue(const CUDat
 
     if (cu.isIntra(0))
     {
+        ProfileCUScope(ctu, intraRDOElapsedTime[cuGeom.depth], countIntraRDO[cuGeom.depth]); // not really RDO, but close enough
+        
         uint32_t tuDepthRange[2];
         cu.getIntraTUQtDepthRange(tuDepthRange, 0);
 
@@ -1777,6 +1779,8 @@ void Analysis::encodeResidue(const CUDat
     }
     else // if (cu.isInter(0))
     {
+        ProfileCUScope(ctu, interRDOElapsedTime[cuGeom.depth], countInterRDO[cuGeom.depth]); // not really RDO, but close enough
+
         X265_CHECK(!ctu.isSkipped(absPartIdx), "skip not expected prior to transform\n");
 
         /* Calculate residual for current CU part into depth sized resiYuv */
diff -r 5389e6d11567 -r 12e0b9339d36 source/encoder/encoder.cpp
--- a/source/encoder/encoder.cpp	Fri Feb 06 11:25:38 2015 -0600
+++ b/source/encoder/encoder.cpp	Fri Feb 06 12:32:17 2015 -0600
@@ -824,6 +824,7 @@ void Encoder::printSummary()
 
     int64_t lookaheadWorkerTime = m_lookahead->m_slicetypeDecideElapsedTime;
     if (m_lookahead->usingWorkerThreads())
+        /* if the lookahead is not using worker threads, processRow() time is already included in slicetypeDecide time */
         lookaheadWorkerTime += m_lookahead->m_est.m_processRowElapsedTime;
 
     int64_t totalWorkerTime = cuStats.totalCTUTime + cuStats.loopFilterElapsedTime + cuStats.pmodeTime + cuStats.pmeTime + lookaheadWorkerTime;
@@ -839,6 +840,7 @@ void Encoder::printSummary()
         intraRDOTotalCount += cuStats.countIntraRDO[i];
     }
 
+    /* Time within compressCTU() and pmode tasks not captured by ME, Intra mode selection, or RDO (2Nx2N merge, 2Nx2N bidir, etc) */
     int64_t unaccounted = (cuStats.totalCTUTime + cuStats.pmodeTime) -
                           (cuStats.intraAnalysisElapsedTime + cuStats.motionEstimationElapsedTime + interRDOTotalTime + intraRDOTotalTime);
 


More information about the x265-commits mailing list