<div dir="ltr">Some more points.<div><br></div><div>1. Is there anything to prevent limit-tu 1 and 2 being used together, say as limit-tu 3? </div><div>2. It's recommended that limit-tu is conservative when performing early skip for TU recursion. There have been suspicions that large TUs are responsible for smoothening artifacts, and if limit-tu is too aggressive, it could definitely worsen this. </div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 10, 2016 at 11:46 AM, Deepthi Nandakumar <span dir="ltr"><<a href="mailto:deepthipnandakumar@gmail.com" target="_blank">deepthipnandakumar@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Is this condition ever satisfied? Minimum value of a coeff, to be counted in numSig is 1 (since it's uint16).</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Oct 8, 2016 at 5:07 PM, Bhavna Hariharan <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"><div dir="ltr"><div class="gmail_extra"><div><div><div dir="ltr"><div><div>Hi Deepthi,</div></div></div></div></div>
<br><div class="gmail_quote"><div><div class="m_943530746410276078h5">On Fri, Oct 7, 2016 at 1:17 PM, Deepthi Nandakumar <span dir="ltr"><<a href="mailto:deepthipnandakumar@gmail.com" target="_blank">deepthipnandakumar@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Kavitha/Bhavana, excellent job! The test metrics look pretty good. <div><br></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>On Tue, Oct 4, 2016 at 2:50 PM,  <span dir="ltr"><<a href="mailto:kavitha@multicorewareinc.com" target="_blank">kavitha@multicorewareinc.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"># HG changeset patch<br>
# User Bhavna Hariharan <<a href="mailto:bhavna@multicorewareinc.com" target="_blank">bhavna@multicorewareinc.com</a>><br>
# Date 1474620761 -19800<br>
#      Fri Sep 23 14:22:41 2016 +0530<br>
# Node ID c018bc0ffc156902b1a9a13ecd6996<wbr>d30d7403df<br>
# Parent  c10ef341f4e65883243f78040f52ed<wbr>06ace99535<br>
limit TU : use cbf and quantization coefficients to limit recursion<br>
<br>
diff -r c10ef341f4e6 -r c018bc0ffc15 source/encoder/search.cpp<br>
--- a/source/encoder/search.cpp Tue Oct 04 13:27:48 2016 +0530<br>
+++ b/source/encoder/search.cpp Fri Sep 23 14:22:41 2016 +0530<br>
@@ -3194,6 +3194,8 @@<br>
                 singlePsyEnergy[TEXT_LUMA][0] = nonZeroPsyEnergyY;<br>
                 cbfFlag[TEXT_LUMA][0] = !!numSigTSkipY;<br>
                 bestTransformMode[TEXT_LUMA][<wbr>0] = 1;<br>
+                if (m_param->limitTU)<br>
+                    numSig[TEXT_LUMA][0] = numSigTSkipY;<br>
                 uint32_t numCoeffY = 1 << (log2TrSize << 1);<br>
                 memcpy(coeffCurY, m_tsCoeff, sizeof(coeff_t) * numCoeffY);<br>
                 <a href="http://primitives.cu" rel="noreferrer" target="_blank">primitives.cu</a>[partSize].copy_<wbr>ss(curResiY, strideResiY, m_tsResidual, trSize);<br>
@@ -3331,6 +3333,21 @@<br>
             fullCost.rdcost = m_rdCost.calcPsyRdCost(fullCos<wbr>t.distortion, fullCost.bits, fullCost.energy);<br>
         else<br>
             fullCost.rdcost = m_rdCost.calcRdCost(fullCost.d<wbr>istortion, fullCost.bits);<br>
+<br>
+        if (m_param->limitTU && bCheckSplit)<br>
+        {<br>
+            // Stop recursion if the TU's energy level is minimal<br>
+            if (cbfFlag[TEXT_LUMA][0] == 0)<br>
+                bCheckSplit = false;<br></blockquote><div><br></div></div></div><div>Agreed. </div><span><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
+            else if (numSig[TEXT_LUMA][0] < (cuGeom.numPartitions / 16))<br>
+            {<br>
+                uint32_t energy = 0;<br>
+                for (uint32_t i = 0; i < cuGeom.numPartitions; i++)<br>
+                    energy += abs(coeffCurY[i]);<br>
+                if (energy < numSig[TEXT_LUMA][0])<br></blockquote><div><br></div></span><div>One question, why are we comparing actual coefficient values to number of significant coefficients? </div></div></div></div></blockquote><div><br></div></div></div><div>We want to stop recursion when the energy of TU is low. If the value of each of the coefficients is minimal (close to 1), the energy will be less than the number of coefficients. </div><span><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
+                    bCheckSplit = false;<br>
+            }<br>
+        }<br>
     }<br>
<br>
     // code sub-blocks<br>
______________________________<wbr>_________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org" target="_blank">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/l<wbr>istinfo/x265-devel</a><br>
</blockquote></span></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div>Deepthi</div>
</font></span></div></div>
<br>______________________________<wbr>_________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org" target="_blank">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/l<wbr>istinfo/x265-devel</a></blockquote><div><br></div><br></span>Regards,<br><br><div>Bhavna Hariharan </div></div><br></div></div>
<br>______________________________<wbr>_________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org" target="_blank">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/l<wbr>istinfo/x265-devel</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_943530746410276078gmail_signature" data-smartmail="gmail_signature">Deepthi</div>
</div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Deepthi</div>
</div>