[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