<div dir="ltr">In order to do significant optimisations, following approach is proposed.<div><br></div><div>1. Perform C level simulation with frame buffer data</div><div>    rearranged at the initialise stage itself in picking 16x16 blocks in raster</div><div>    scan order within CTU size 64x64 along entire CTU sized slices.</div><div>2. The savings are immense in terms of cached access to memory lines</div><div>    in ME module, filter modules, MC reconstruction module, and other low</div><div>    level modules (transforms, quant, etc.)</div><div>3. The overhead is code readability and logic to read a block of data.</div><div>4. The existing numbers on instructions to compute a module isn't affected</div><div>    much, but cycles to compute is reduced significantly.</div><div>5. We need to percolate the changes affected to assembly modules (load and</div><div>    and maybe store instructions only)</div><div><br></div><div>-Vijay<br></div><div><br></div><div><div><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Nov 25, 2016 at 4:30 PM,  <span dir="ltr"><<a href="mailto:x265-devel-request@videolan.org" target="_blank">x265-devel-request@videolan.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Send x265-devel mailing list submissions to<br>
        <a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="https://mailman.videolan.org/listinfo/x265-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/<wbr>listinfo/x265-devel</a><br>
or, via email, send a message with subject or body 'help' to<br>
        <a href="mailto:x265-devel-request@videolan.org">x265-devel-request@videolan.<wbr>org</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:x265-devel-owner@videolan.org">x265-devel-owner@videolan.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than "Re: Contents of x265-devel digest..."<br>
<br>
<br>
Today's Topics:<br>
<br>
   1. Re: deblock.cpp, ipfilter.cpp review comments<br>
      (Pradeep Ramachandran)<br>
   2. [PATCH] doc: Improve rst doc and help doc about param<br>
      multi-pass-opt-rps (<a href="mailto:ayacc564@163.com">ayacc564@163.com</a>)<br>
   3. [PATCH] Fix source width and height in info (Divya Manivannan)<br>
<br>
<br>
------------------------------<wbr>------------------------------<wbr>----------<br>
<br>
Message: 1<br>
Date: Fri, 25 Nov 2016 09:13:57 +0530<br>
From: Pradeep Ramachandran <<a href="mailto:pradeep@multicorewareinc.com">pradeep@multicorewareinc.com</a>><br>
To: Development for x265 <<a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a>><br>
Subject: Re: [x265] deblock.cpp, ipfilter.cpp review comments<br>
Message-ID:<br>
        <<a href="mailto:CAKpaXXeaLsoeHwBbt9zheLS4ScxQu4dCOmpZnQY4xUgYF5_6og@mail.gmail.com">CAKpaXXeaLsoeHwBbt9zheLS4ScxQ<wbr>u4dCOmpZnQY4xUgYF5_6og@mail.<wbr>gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
It might be more prudent to start from a profile showing the top functions<br>
that are limiting performance instead of a blind list of functions to<br>
optimize. You can use gprof (on linux), or vtune to extract this profile.<br>
Just make sure to compile with RelWithDebInfo to get debug symbols for the<br>
profiler to use. If you are using vtune, you can enable ENABLE_VTUNE in<br>
cmake.<br>
<br>
Pradeep.<br>
<br>
On Tue, Aug 23, 2016 at 11:22 AM, N Vijay Anand <<br>
<a href="mailto:nvijay.anand@trispacetech.com">nvijay.anand@trispacetech.com</a>> wrote:<br>
<br>
> I was under impression typecasting does sign extension<br>
> irrespective of unsigned/signed type of data.<br>
><br>
> BTW, I was trying to vectorise deblock filter.<br>
> Seems not much gain in this function. It would be useful<br>
> to have a list of function yet to be vector optimised.<br>
><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>
><br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="http://mailman.videolan.org/pipermail/x265-devel/attachments/20161125/37e8f6a8/attachment-0001.html" rel="noreferrer" target="_blank">http://mailman.videolan.org/<wbr>pipermail/x265-devel/<wbr>attachments/20161125/37e8f6a8/<wbr>attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Fri, 25 Nov 2016 15:15:31 +0800<br>
From: <a href="mailto:ayacc564@163.com">ayacc564@163.com</a><br>
To: <a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
Subject: [x265] [PATCH] doc: Improve rst doc and help doc about param<br>
        multi-pass-opt-rps<br>
Message-ID: <be62355cb7f3b7f78b89.<wbr>1480058131@localhost><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
# HG changeset patch<br>
# User ZhengWang <<a href="mailto:zheng@multicorewareinc.com">zheng@multicorewareinc.com</a>><br>
# Date 1480057905 -28800<br>
#      五 11月 25 15:11:45 2016 +0800<br>
# Node ID be62355cb7f3b7f78b897131f511df<wbr>be4ac8a604<br>
# Parent  df25adaa30f60eaed6e2780b3297f8<wbr>4c423e58df<br>
doc: Improve rst doc and help doc about param multi-pass-opt-rps<br>
<br>
diff -r df25adaa30f6 -r be62355cb7f3 doc/reST/cli.rst<br>
--- a/doc/reST/cli.rst  三 11月 23 12:10:04 2016 -0600<br>
+++ b/doc/reST/cli.rst  五 11月 25 15:11:45 2016 +0800<br>
@@ -1876,7 +1876,7 @@<br>
<br>
 .. option:: --[no-]multi-pass-opt-rps<br>
<br>
-       Enable storing commonly RPS in SPS in multi pass mode. Default disabled.<br>
+       Enable storing commonly used RPS in SPS in multi pass mode. Default disabled.<br>
<br>
<br>
 Debugging options<br>
diff -r df25adaa30f6 -r be62355cb7f3 source/x265cli.h<br>
--- a/source/x265cli.h  三 11月 23 12:10:04 2016 -0600<br>
+++ b/source/x265cli.h  五 11月 25 15:11:45 2016 +0800<br>
@@ -464,7 +464,7 @@<br>
     H0("   --[no-]vui-hrd-info           Emit VUI HRD information in the bistream. Default %s\n", OPT(param->bEmitVUIHRDInfo));<br>
     H0("   --[no-]opt-qp-pps             Dynamically optimize QP in PPS (instead of default 26) based on QPs in previous GOP. Default %s\n", OPT(param->bOptQpPPS));<br>
     H0("   --[no-]opt-ref-list-length-pps  Dynamically set L0 and L1 ref list length in PPS (instead of default 0) based on values in last GOP. Default %s\n", OPT(param-><wbr>bOptRefListLengthPPS));<br>
-    H0("   --[no-]multi-pass-opt-rps     Enable storing commonly RPS in SPS in multi pass mode. Default %s\n", OPT(param->bMultiPassOptRPS));<br>
+    H0("   --[no-]multi-pass-opt-rps     Enable storing commonly used RPS in SPS in multi pass mode. Default %s\n", OPT(param->bMultiPassOptRPS));<br>
     H1("\nReconstructed video options (debugging):\n");<br>
     H1("-r/--recon <filename>            Reconstructed raw image YUV or Y4M output file name\n");<br>
     H1("   --recon-depth <integer>       Bit-depth of reconstructed raw image file. Defaults to input bit depth, or 8 if Y4M\n");<br>
-------------- next part --------------<br>
A non-text attachment was scrubbed...<br>
Name: x265.patch<br>
Type: text/x-patch<br>
Size: 1963 bytes<br>
Desc: not available<br>
URL: <<a href="http://mailman.videolan.org/pipermail/x265-devel/attachments/20161125/41ca3fb8/attachment-0001.bin" rel="noreferrer" target="_blank">http://mailman.videolan.org/<wbr>pipermail/x265-devel/<wbr>attachments/20161125/41ca3fb8/<wbr>attachment-0001.bin</a>><br>
<br>
------------------------------<br>
<br>
Message: 3<br>
Date: Fri, 25 Nov 2016 14:22:20 +0530<br>
From: Divya Manivannan <<a href="mailto:divya@multicorewareinc.com">divya@multicorewareinc.com</a>><br>
To: <a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
Subject: [x265] [PATCH] Fix source width and height in info<br>
Message-ID:<br>
        <<a href="mailto:12f67c53a3f97fcb8cff.1480063940@Nadaswaram.multicorewareinc.com">12f67c53a3f97fcb8cff.<wbr>1480063940@Nadaswaram.<wbr>multicorewareinc.com</a>><br>
Content-Type: text/plain; charset="us-ascii"<br>
<br>
# HG changeset patch<br>
# User Divya Manivannan <<a href="mailto:divya@multicorewareinc.com">divya@multicorewareinc.com</a>><br>
# Date 1480058872 -19800<br>
#      Fri Nov 25 12:57:52 2016 +0530<br>
# Node ID 12f67c53a3f97fcb8cff12542d1716<wbr>872d89309e<br>
# Parent  df25adaa30f60eaed6e2780b3297f8<wbr>4c423e58df<br>
Fix source width and height in info<br>
<br>
diff -r df25adaa30f6 -r 12f67c53a3f9 source/common/param.cpp<br>
--- a/source/common/param.cpp   Wed Nov 23 12:10:04 2016 -0600<br>
+++ b/source/common/param.cpp   Fri Nov 25 12:57:52 2016 +0530<br>
@@ -1428,7 +1428,7 @@<br>
     fflush(stderr);<br>
 }<br>
<br>
-char *x265_param2string(x265_param* p)<br>
+char *x265_param2string(x265_param* p, int padx, int pady)<br>
 {<br>
     char *buf, *s;<br>
<br>
@@ -1452,7 +1452,7 @@<br>
     s += sprintf(s, " bitdepth=%d", p->internalBitDepth);<br>
     s += sprintf(s, " input-csp=%d", p->internalCsp);<br>
     s += sprintf(s, " fps=%u/%u", p->fpsNum, p->fpsDenom);<br>
-    s += sprintf(s, " input-res=%dx%d", p->sourceWidth, p->sourceHeight);<br>
+    s += sprintf(s, " input-res=%dx%d", p->sourceWidth - padx, p->sourceHeight - pady);<br>
     s += sprintf(s, " interlace=%d", p->interlaceMode);<br>
     s += sprintf(s, " total-frames=%d", p->totalFrames);<br>
     s += sprintf(s, " level-idc=%d", p->levelIdc);<br>
diff -r df25adaa30f6 -r 12f67c53a3f9 source/common/param.h<br>
--- a/source/common/param.h     Wed Nov 23 12:10:04 2016 -0600<br>
+++ b/source/common/param.h     Fri Nov 25 12:57:52 2016 +0530<br>
@@ -31,7 +31,7 @@<br>
 int   x265_set_globals(x265_param *param);<br>
 void  x265_print_params(x265_param *param);<br>
 void  x265_param_apply_<wbr>fastfirstpass(x265_param *p);<br>
-char* x265_param2string(x265_param *param);<br>
+char* x265_param2string(x265_param *param, int padx, int pady);<br>
 int   x265_atoi(const char *str, bool& bError);<br>
 double x265_atof(const char *str, bool& bError);<br>
 int   parseCpuName(const char *value, bool& bError);<br>
diff -r df25adaa30f6 -r 12f67c53a3f9 source/encoder/encoder.cpp<br>
--- a/source/encoder/encoder.cpp        Wed Nov 23 12:10:04 2016 -0600<br>
+++ b/source/encoder/encoder.cpp        Fri Nov 25 12:57:52 2016 +0530<br>
@@ -1561,7 +1561,7 @@<br>
<br>
     if (m_param->bEmitInfoSEI)<br>
     {<br>
-        char *opts = x265_param2string(m_param);<br>
+        char *opts = x265_param2string(m_param, m_sps.conformanceWindow.<wbr>rightOffset, m_sps.conformanceWindow.<wbr>bottomOffset);<br>
         if (opts)<br>
         {<br>
             char *buffer = X265_MALLOC(char, strlen(opts) + strlen(PFX(version_str)) +<br>
diff -r df25adaa30f6 -r 12f67c53a3f9 source/encoder/ratecontrol.cpp<br>
--- a/source/encoder/ratecontrol.<wbr>cpp    Wed Nov 23 12:10:04 2016 -0600<br>
+++ b/source/encoder/ratecontrol.<wbr>cpp    Fri Nov 25 12:57:52 2016 +0530<br>
@@ -623,7 +623,7 @@<br>
                 x265_log_file(m_param, X265_LOG_ERROR, "can't open stats file %s.temp\n", fileName);<br>
                 return false;<br>
             }<br>
-            p = x265_param2string(m_param);<br>
+            p = x265_param2string(m_param, sps.conformanceWindow.<wbr>rightOffset, sps.conformanceWindow.<wbr>bottomOffset);<br>
             if (p)<br>
                 fprintf(m_statFileOut, "#options: %s\n", p);<br>
             X265_FREE(p);<br>
<br>
<br>
------------------------------<br>
<br>
Subject: Digest Footer<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>
<br>
------------------------------<br>
<br>
End of x265-devel Digest, Vol 42, Issue 19<br>
******************************<wbr>************<br>
</blockquote></div><br><br clear="all"><div><br></div>
</div></div></div></div>