<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><div><br> </div>ÔÚ 2015-06-18 13:33:11£¬"Deepthi Nandakumar" <deepthi@multicorewareinc.com> Ð´µÀ£º<br> <blockquote id="isReplyContent" style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 17, 2015 at 5:01 AM, Min Chen <span dir="ltr"><<a href="mailto:chenm003@163.com" target="_blank">chenm003@163.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;"># HG changeset patch<br>
# User Min Chen <<a href="mailto:chenm003@163.com" target="_blank">chenm003@163.com</a>><br>
# Date 1434495240 25200<br>
# Node ID 6977137391b30dbc9ed55b7bf3e35dcfb40aef9a<br>
# Parent  f8538b22787c8ab0d1cf65446b7e438cb02d544d<br>
faster algorithm to calculate ctxSet in codeCoeffNxN()<br>
---<br>
 source/encoder/entropy.cpp |    5 ++---<br>
 1 files changed, 2 insertions(+), 3 deletions(-)<br>
<br>
diff -r f8538b22787c -r 6977137391b3 source/encoder/entropy.cpp<br>
--- a/source/encoder/entropy.cpp        Tue Jun 16 09:45:57 2015 -0700<br>
+++ b/source/encoder/entropy.cpp        Tue Jun 16 15:54:00 2015 -0700<br>
@@ -1739,9 +1739,8 @@<br>
             CTZ(firstNZPosInCG, subCoeffFlag);<br>
<br>
             bool signHidden = (lastNZPosInCG - firstNZPosInCG >= SBH_THRESHOLD);<br>
-            uint32_t ctxSet = ((subSet > 0) & bIsLuma) ? 2 : 0;<br>
-<br>
-            ctxSet += !(c1 & 3);<br>
+            const uint8_t ctxSet = (((subSet > 0) + bIsLuma) & 2) | !(c1 & 3);<br>
+            X265_CHECK((((subSet > 0) & bIsLuma) ? 2 : 0) + !(c1 & 3) == ctxSet, "ctxSet check failure\n");<br>
<br></blockquote><div>Min, this really affects readability. Are the savings from removing the conditional operator?<br></div><div>the X265_CHECK show more clean, so I think it is not a problem</div><div>I got ~0.8% improve in total time</div><div> </div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;">
             c1 = 1;<br>
             uint8_t *baseCtxMod = &m_contextState[(bIsLuma ? 0 : NUM_ONE_FLAG_CTX_LUMA) + OFF_ONE_FLAG_CTX + 4 * ctxSet];<br>
<br>
_______________________________________________<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" target="_blank" rel="noreferrer">https://mailman.videolan.org/listinfo/x265-devel</a><br>
</blockquote></div><br></div></div>
</blockquote></div>