[x265] [PATCH] analysis-mode: force recursion when checkMerge does not return bestMode
kavitha at multicorewareinc.com
kavitha at multicorewareinc.com
Tue Jun 14 13:57:58 CEST 2016
# HG changeset patch
# User Kavitha Sampath <kavitha at multicorewareinc.com>
# Date 1465899492 -19800
# Tue Jun 14 15:48:12 2016 +0530
# Node ID a79d371b849d8ce2e045da4a5c9bd5a684b06e8f
# Parent 106a5a7dc4b337121c11484bc3bc4900b8a0d9a4
analysis-mode: force recursion when checkMerge does not return bestMode
diff -r 106a5a7dc4b3 -r a79d371b849d source/encoder/analysis.cpp
--- a/source/encoder/analysis.cpp Thu Jun 09 13:34:55 2016 -0500
+++ b/source/encoder/analysis.cpp Tue Jun 14 15:48:12 2016 +0530
@@ -915,7 +915,7 @@
md.pred[PRED_SKIP].cu.initSubCU(parentCTU, cuGeom, qp);
checkMerge2Nx2N_rd0_4(md.pred[PRED_SKIP], md.pred[PRED_MERGE], cuGeom);
- skipRecursion = !!m_param->bEnableRecursionSkip;
+ skipRecursion = !!m_param->bEnableRecursionSkip && md.bestMode;
if (m_param->rdLevel)
skipModes = m_param->bEnableEarlySkip && md.bestMode;
}
@@ -931,7 +931,7 @@
}
/* Step 1. Evaluate Merge/Skip candidates for likely early-outs, if skip mode was not set above */
- if (mightNotSplit && depth >= minDepth && !skipRecursion) /* TODO: Re-evaluate if analysis load/save still works */
+ if (mightNotSplit && depth >= minDepth && !md.bestMode) /* TODO: Re-evaluate if analysis load/save still works */
{
/* Compute Merge Cost */
md.pred[PRED_MERGE].cu.initSubCU(parentCTU, cuGeom, qp);
@@ -1426,8 +1426,8 @@
md.pred[PRED_MERGE].cu.initSubCU(parentCTU, cuGeom, qp);
checkMerge2Nx2N_rd5_6(md.pred[PRED_SKIP], md.pred[PRED_MERGE], cuGeom);
- skipRecursion = !!m_param->bEnableRecursionSkip;
- skipModes = !!m_param->bEnableEarlySkip;
+ skipRecursion = !!m_param->bEnableRecursionSkip && md.bestMode;
+ skipModes = !!m_param->bEnableEarlySkip && md.bestMode;
}
if (m_reusePartSize[cuGeom.absPartIdx] == SIZE_2Nx2N)
skipRectAmp = true && !!md.bestMode;
@@ -1441,7 +1441,7 @@
splitData[3].initSplitCUData();
/* Step 1. Evaluate Merge/Skip candidates for likely early-outs */
- if (mightNotSplit && !skipRecursion)
+ if (mightNotSplit && !md.bestMode)
{
md.pred[PRED_SKIP].cu.initSubCU(parentCTU, cuGeom, qp);
md.pred[PRED_MERGE].cu.initSubCU(parentCTU, cuGeom, qp);
More information about the x265-devel
mailing list