<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 29, 2018 at 7:23 PM,  <span dir="ltr"><<a href="mailto:bhavna@multicorewareinc.com" target="_blank">bhavna@multicorewareinc.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"># HG changeset patch<br>
# User Bhavna Hariharan <<a href="mailto:bhavna@multicorewareinc.com">bhavna@multicorewareinc.com</a>><br>
# Date 1527578404 -19800<br>
#      Tue May 29 12:50:04 2018 +0530<br>
# Node ID 9db5be89d74cc55cd6aff30c2a5761<wbr>19ca09d8a1<br>
# Parent  9389296cd844bf14850b98ee181772<wbr>be94d209b9<br>
bug fix: allow split in frame boundary for scaled encodes.<br>
<br>
For cases where the entire CTU is not within the frame boundary, the CU must be<br>
allowed to split when the depth from the save encode is not applicable.<br>
<br>
diff -r 9389296cd844 -r 9db5be89d74c source/encoder/analysis.cpp<br>
--- a/source/encoder/analysis.cpp       Mon May 28 14:55:57 2018 +0530<br>
+++ b/source/encoder/analysis.cpp       Tue May 29 12:50:04 2018 +0530<br>
@@ -523,14 +523,15 @@<br>
     int split = 0;<br>
     if (m_param->intraRefine && m_param->intraRefine != 4)<br>
     {<br>
-        split = m_param->scaleFactor && ((cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param-<wbr>>minCUSize] + 1)) && bDecidedDepth);<br>
+        split = m_param->scaleFactor && bDecidedDepth && (!mightNotSplit || <br>
+            ((cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param-<wbr>>minCUSize] + 1))));<br>
         if (cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param-<wbr>>minCUSize]) && !bDecidedDepth)<br>
             bAlreadyDecided = false;<br>
     }<br>
<br>
     if (bAlreadyDecided)<br>
     {<br>
-        if (bDecidedDepth)<br>
+        if (bDecidedDepth && mightNotSplit)<br>
         {<br>
             Mode& mode = md.pred[0];<br>
             md.bestMode = &mode;<br>
@@ -2420,10 +2421,11 @@<br>
         m_refineLevel = m_param->interRefine;<br>
     else<br>
         m_refineLevel = m_frame->m_classifyFrame ? 1 : 3;<br>
-    int split = (m_param->scaleFactor && m_refineLevel && cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param-<wbr>>minCUSize] + 1) && bDecidedDepth);<br>
+    int split = (m_param->scaleFactor && bDecidedDepth && (!mightNotSplit || <br>
+        (m_refineLevel && cuGeom.log2CUSize == (uint32_t)(g_log2Size[m_param-<wbr>>minCUSize] + 1))));<br>
     td.split = split;<br>
<br>
-    if (bDecidedDepth)<br>
+    if (bDecidedDepth && mightNotSplit)<br>
     {<br>
         setLambdaFromQP(parentCTU, qp, lqp);<br>
<br>
<br>______________________________<wbr>_________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/<wbr>listinfo/x265-devel</a><br>
<br></blockquote></div><br></div><div class="gmail_extra">Pushed.</div></div>