[x265] [PATCH 2 of 3] intra refinement: Evaluates all intra modes for smallest cu size in load run

bhavna at multicorewareinc.com bhavna at multicorewareinc.com
Fri Jun 2 20:04:00 CEST 2017


# HG changeset patch
# User Bhavna Hariharan <bhavna at multicorewareinc.com>
# Date 1495535309 -19800
#      Tue May 23 15:58:29 2017 +0530
# Node ID 4d90dbc63f7e6fa389dda62430e2dfd3d02e4c84
# Parent  d103464b81751a917ec20a02c412f92d0846692a
intra refinement: Evaluates all intra modes for smallest cu size in load run

diff -r d103464b8175 -r 4d90dbc63f7e source/encoder/analysis.cpp
--- a/source/encoder/analysis.cpp	Wed May 31 18:52:23 2017 +0530
+++ b/source/encoder/analysis.cpp	Tue May 23 15:58:29 2017 +0530
@@ -495,6 +495,13 @@
 
     bool bAlreadyDecided = parentCTU.m_lumaIntraDir[cuGeom.absPartIdx] != (uint8_t)ALL_IDX;
     bool bDecidedDepth = parentCTU.m_cuDepth[cuGeom.absPartIdx] == depth;
+    int split = 0;
+    if (m_param->intraRefine)
+    {
+        split = ((cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize] + 1)) && bDecidedDepth);
+        if (cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param->minCUSize]) && !bDecidedDepth)
+            bAlreadyDecided = false;
+    }
 
     if (bAlreadyDecided)
     {
@@ -535,7 +542,7 @@
     }
 
     // stop recursion if we reach the depth of previous analysis decision
-    mightSplit &= !(bAlreadyDecided && bDecidedDepth);
+    mightSplit &= !(bAlreadyDecided && bDecidedDepth) || split;
 
     if (mightSplit)
     {


More information about the x265-devel mailing list