[x265] [PATCH] analysis: fix output mismatch and crash for rd level 5 and 6 in ANALYSIS_SAVE/LOAD

sagar at multicorewareinc.com sagar at multicorewareinc.com
Tue Dec 15 13:14:52 CET 2015


# HG changeset patch
# User Sagar Kotecha<sagar at multicorewareinc.com>
# Date 1450181661 -19800
#      Tue Dec 15 17:44:21 2015 +0530
# Node ID b8954d4b24a6b35901fe05bb6a2b39997f06486a
# Parent  e951ab673b1c3d41ef86bc623f20ecc768d3f5c5
analysis: fix output mismatch and crash for rd level 5 and 6 in ANALYSIS_SAVE/LOAD

diff -r e951ab673b1c -r b8954d4b24a6 source/encoder/analysis.cpp
--- a/source/encoder/analysis.cpp	Fri Dec 11 07:33:41 2015 +0530
+++ b/source/encoder/analysis.cpp	Tue Dec 15 17:44:21 2015 +0530
@@ -1296,6 +1296,8 @@
 
     bool mightSplit = !(cuGeom.flags & CUGeom::LEAF);
     bool mightNotSplit = !(cuGeom.flags & CUGeom::SPLIT_MANDATORY);
+    bool foundSkip = false;
+    bool splitIntra = true;
 
     if (m_param->analysisMode == X265_ANALYSIS_LOAD)
     {
@@ -1316,13 +1318,9 @@
             // increment zOrder offset to point to next best depth in sharedDepth buffer
             zOrder += g_depthInc[g_maxCUDepth - 1][reuseDepth[zOrder]];
 
-            mightSplit = false;
-            mightNotSplit = false;
+            foundSkip = true;
         }
-    }
-
-    bool foundSkip = false;
-    bool splitIntra = true;
+    }  
 
     SplitData splitData[4];
     splitData[0].initSplitCUData();
@@ -1796,16 +1794,6 @@
     {
         first = *m_reuseBestMergeCand;
         last = first + 1;
-        int numPred = m_slice->isInterB() + 1;
-        /* skip refs and mvs used for 2Nx2N, Nx2N, 2NxN inter predictions if best mode is SKIP */
-        m_reuseRef += numPred;
-        m_reuseMv += numPred;
-        if (m_param->bEnableRectInter)
-        {
-           int inc = numPred * 2 * 2;
-            m_reuseRef += inc;
-            m_reuseMv += inc;
-        }
     }
     int safeX, maxSafeMv;
     if (m_param->bIntraRefresh && m_slice->m_sliceType == P_SLICE)


More information about the x265-devel mailing list