[x265] [PATCH] analysis: compute Inter2Nx2N after merge in analysis mode=load if reuse mode chosen is skip
santhoshini at multicorewareinc.com
santhoshini at multicorewareinc.com
Mon Jul 4 10:10:50 CEST 2016
# HG changeset patch
# User Santhoshini Sekar<santhoshini at multicorewareinc.com>
# Date 1467619611 -19800
# Mon Jul 04 13:36:51 2016 +0530
# Node ID 0c4c66ce33abba9d3f224af2bac79b243c426c28
# Parent 836a870ba76b46d4c0078289e320db1371fc3403
analysis: compute Inter2Nx2N after merge in analysis mode=load if reuse mode chosen is skip
diff -r 836a870ba76b -r 0c4c66ce33ab source/encoder/analysis.cpp
--- a/source/encoder/analysis.cpp Fri Jul 01 11:49:57 2016 +0530
+++ b/source/encoder/analysis.cpp Mon Jul 04 13:36:51 2016 +0530
@@ -1424,6 +1424,13 @@
md.pred[PRED_2Nx2N].rdCost = 0;
}
+ SplitData splitData[4];
+ splitData[0].initSplitCUData();
+ splitData[1].initSplitCUData();
+ splitData[2].initSplitCUData();
+ splitData[3].initSplitCUData();
+ uint32_t allSplitRefs = splitData[0].splitRefs | splitData[1].splitRefs | splitData[2].splitRefs | splitData[3].splitRefs;
+ uint32_t refMasks[2];
if (m_param->analysisMode == X265_ANALYSIS_LOAD)
{
if (mightNotSplit && depth == m_reuseDepth[cuGeom.absPartIdx])
@@ -1433,23 +1440,20 @@
md.pred[PRED_SKIP].cu.initSubCU(parentCTU, cuGeom, qp);
md.pred[PRED_MERGE].cu.initSubCU(parentCTU, cuGeom, qp);
checkMerge2Nx2N_rd5_6(md.pred[PRED_SKIP], md.pred[PRED_MERGE], cuGeom);
+ skipModes = !!m_param->bEnableEarlySkip && md.bestMode;
+ refMasks[0] = allSplitRefs;
+ md.pred[PRED_2Nx2N].cu.initSubCU(parentCTU, cuGeom, qp);
+ checkInter_rd5_6(md.pred[PRED_2Nx2N], cuGeom, SIZE_2Nx2N, refMasks);
+ checkBestMode(md.pred[PRED_2Nx2N], cuGeom.depth);
- skipRecursion = !!m_param->bEnableRecursionSkip && md.bestMode;
- skipModes = !!m_param->bEnableEarlySkip && md.bestMode;
+ if (m_param->bEnableRecursionSkip && depth && m_modeDepth[depth - 1].bestMode)
+ skipRecursion = md.bestMode && !md.bestMode->cu.getQtRootCbf(0);
}
if (m_reusePartSize[cuGeom.absPartIdx] == SIZE_2Nx2N)
skipRectAmp = true && !!md.bestMode;
}
}
- SplitData splitData[4];
- splitData[0].initSplitCUData();
- splitData[1].initSplitCUData();
- splitData[2].initSplitCUData();
- splitData[3].initSplitCUData();
-
- uint32_t allSplitRefs = splitData[0].splitRefs | splitData[1].splitRefs | splitData[2].splitRefs | splitData[3].splitRefs;
- uint32_t refMasks[2];
/* Step 1. Evaluate Merge/Skip candidates for likely early-outs */
if (mightNotSplit && !md.bestMode)
{
More information about the x265-devel
mailing list