<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Oct 17, 2013 at 10:33 AM,  <span dir="ltr"><<a href="mailto:praveen@multicorewareinc.com" target="_blank">praveen@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 Praveen Tiwari<br>
# Date 1382024008 -19800<br>
# Node ID 93bef87604902f0ba3b07faf836fdd74d4e847c6<br>
# Parent  1481908edb21eea0225eb03de0b852921d4c209f<br>
ipfilter.cpp, setup luma function pointers<br>
<br>
diff -r 1481908edb21 -r 93bef8760490 source/common/ipfilter.cpp<br>
--- a/source/common/ipfilter.cpp        Thu Oct 17 21:00:27 2013 +0530<br>
+++ b/source/common/ipfilter.cpp        Thu Oct 17 21:03:28 2013 +0530<br>
@@ -3,6 +3,7 @@<br>
  *<br>
  * Authors: Deepthi Devaki <<a href="mailto:deepthidevaki@multicorewareinc.com">deepthidevaki@multicorewareinc.com</a>>,<br>
  *          Rajesh Paulraj <<a href="mailto:rajesh@multicorewareinc.com">rajesh@multicorewareinc.com</a>><br>
+ *          Praveen Kumar Tiwari <<a href="mailto:praveen@multicorewareinc.com">praveen@multicorewareinc.com</a>><br>
  *<br>
  * This program is free software; you can redistribute it and/or modify<br>
  * it under the terms of the GNU General Public License as published by<br>
@@ -498,6 +499,39 @@<br>
 #define SETUP_PARTITION(W, H) \<br>
     p.chroma_hpp[CHROMA_PARTITION_ ## W ## x ## H] = interp_horiz_pp_c<4, W, H>;<br>
<br>
+#define SET_LUMA_PRIMITIVE_TABLE_F3(W, H) \<br>
+    p.luma_hpp[LUMA_PARTITION_ ## W ## x ## H] = interp_horiz_pp_c<8, W, H>; \<br>
+    p.luma_hpp[(LUMA_PARTITION_ ## W ## x ## H) + 1] = interp_horiz_pp_c<8, W, (H + 1)>; \<br>
+    p.luma_hpp[(LUMA_PARTITION_ ## W ## x ## H) + 2] = interp_horiz_pp_c<8, (W + 1), H>; \<br></blockquote><div><br></div><div>I don't know how many more ways I can say this:  I don't want to see block primitives that aren't real HEVC block sizes.</div>
<div><br></div><div>DO NOT ADD the +1 primitives.  Stop trying to optimize for that one use case. STOP.</div><div><br></div><div>I've had to rewrite most of these commits anyway because I have completely refactored the luma and chroma partition enums; but I seriously do not want to see odd block size primitives  This is the worst kind of premature optimization because there are so many real primitives that need to be written before even thinking about those sorts of use cases.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+<br>
+#define SET_LUMA_PRIMITIVE_TABLE_F1(W, H) \<br>
+    p.luma_hpp[LUMA_PARTITION_ ## W ## x ## H] = interp_horiz_pp_c<8, W, H>; \<br>
+#define SET_LUMA_PRIMITIVE_TABLE \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(4,   8); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(4,  16); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(8,   4); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(8,   8); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(8,  16); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(8,  32); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(12, 16); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(16,  4); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(16,  8); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(16, 12); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(16, 16); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(16, 32); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F1(16, 64); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(32,  8); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(32, 16); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(32, 24); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(32, 32); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(32, 64); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F1(48, 64); \<br></blockquote><div><br></div><div>BTW: the chroma primitive for this size (24x32) is unimplemented.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

+    SET_LUMA_PRIMITIVE_TABLE_F1(64, 16); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(64, 32); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F1(64, 48); \<br>
+    SET_LUMA_PRIMITIVE_TABLE_F3(64, 64); \<br>
+<br>
 void Setup_C_IPFilterPrimitives(EncoderPrimitives& p)<br>
 {<br>
     SETUP_PARTITION(2, 4);<br>
_______________________________________________<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" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Steve Borho
</div></div>