<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><DIV>Seems Nabajit style, I don't like this style, I want to use a array or call test set style, it let us verify more case<BR></DIV>At 2014-01-28 18:03:03,"Murugan Vairavel" <murugan@multicorewareinc.com> wrote:<BR>
<BLOCKQUOTE id="isReplyContent" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<DIV dir="ltr">
<DIV>
<DIV># HG changeset patch</DIV>
<DIV># User Murugan Vairavel <<A href="mailto:murugan@multicorewareinc.com">murugan@multicorewareinc.com</A>></DIV>
<DIV># Date 1390903129 -19800</DIV>
<DIV>#      Tue Jan 28 15:28:49 2014 +0530</DIV>
<DIV># Node ID ad69e508afdd44244a1289cd2d785a7fe0946144</DIV>
<DIV># Parent  3568c1b19947f8641504c69bca6ab859ed11825e</DIV>
<DIV>Stress test case for pixel_add_ps and pixel_sub_ps</DIV>
<DIV><BR></DIV>
<DIV>diff -r 3568c1b19947 -r ad69e508afdd source/test/pixelharness.cpp</DIV>
<DIV>--- a/source/test/pixelharness.cpp<SPAN class="" style="WHITE-SPACE: pre"> </SPAN>Tue Jan 28 01:49:03 2014 -0600</DIV>
<DIV>+++ b/source/test/pixelharness.cpp<SPAN class="" style="WHITE-SPACE: pre"> </SPAN>Tue Jan 28 15:28:49 2014 +0530</DIV>
<DIV>@@ -45,12 +45,17 @@</DIV>
<DIV>     pbuf2 = (pixel*)X265_MALLOC(pixel, bufsize);</DIV>
<DIV>     pbuf3 = (pixel*)X265_MALLOC(pixel, bufsize);</DIV>
<DIV>     pbuf4 = (pixel*)X265_MALLOC(pixel, bufsize);</DIV>
<DIV>+    pixel_buff_min = (pixel*)X265_MALLOC(pixel, bufsize);</DIV>
<DIV>+    pixel_buff_max = (pixel*)X265_MALLOC(pixel, bufsize);</DIV>
<DIV>+</DIV>
<DIV> </DIV>
<DIV>     ibuf1 = (int*)X265_MALLOC(int, bufsize);</DIV>
<DIV> </DIV>
<DIV>     sbuf1 = (int16_t*)X265_MALLOC(int16_t, bufsize);</DIV>
<DIV>     sbuf2 = (int16_t*)X265_MALLOC(int16_t, bufsize);</DIV>
<DIV>     sbuf3 = (int16_t*)X265_MALLOC(int16_t, bufsize);</DIV>
<DIV>+    sbuff_min = (int16_t*)X265_MALLOC(int16_t, bufsize);</DIV>
<DIV>+    sbuff_max = (int16_t*)X265_MALLOC(int16_t, bufsize);</DIV>
<DIV> </DIV>
<DIV>     if (!pbuf1 || !pbuf2 || !pbuf3 || !pbuf4 || !sbuf1 || !sbuf2 || !sbuf3 || !ibuf1)</DIV>
<DIV>     {</DIV>
<DIV>@@ -58,6 +63,7 @@</DIV>
<DIV>         exit(1);</DIV>
<DIV>     }</DIV>
<DIV> </DIV>
<DIV>+#define SMAX (1 << 12)</DIV>
<DIV>     for (int i = 0; i < bufsize; i++)</DIV>
<DIV>     {</DIV>
<DIV>         pbuf1[i] = rand() & PIXEL_MAX;</DIV>
<DIV>@@ -65,13 +71,17 @@</DIV>
<DIV>         pbuf3[i] = rand() & PIXEL_MAX;</DIV>
<DIV>         pbuf4[i] = rand() & PIXEL_MAX;</DIV>
<DIV> </DIV>
<DIV>-#define SMAX (1 << 12)</DIV>
<DIV>         sbuf1[i] = (rand() % (2 * SMAX + 1)) - SMAX - 1; //max(SHORT_MIN, min(rand(), SMAX));</DIV>
<DIV>         sbuf2[i] = (rand() % (2 * SMAX + 1)) - SMAX - 1; //max(SHORT_MIN, min(rand(), SMAX));</DIV>
<DIV>         ibuf1[i] = (rand() % (2 * SMAX + 1)) - SMAX - 1;</DIV>
<DIV> </DIV>
<DIV>         sbuf3[i] = rand() % PIXEL_MAX; // for blockcopy only</DIV>
<DIV>     }</DIV>
<DIV>+</DIV>
<DIV>+    memset(pixel_buff_min, PIXEL_MIN, bufsize);</DIV>
<DIV>+    memset(pixel_buff_max, PIXEL_MAX, bufsize);</DIV>
<DIV>+    memset(sbuff_min, SHORT_MIN, bufsize);</DIV>
<DIV>+    memset(sbuff_max, SMAX - 1, bufsize);</DIV>
<DIV> }</DIV>
<DIV> </DIV>
<DIV> PixelHarness::~PixelHarness()</DIV>
<DIV>@@ -83,6 +93,10 @@</DIV>
<DIV>     X265_FREE(sbuf1);</DIV>
<DIV>     X265_FREE(sbuf2);</DIV>
<DIV>     X265_FREE(sbuf3);</DIV>
<DIV>+    X265_FREE(sbuff_min);</DIV>
<DIV>+    X265_FREE(sbuff_max);</DIV>
<DIV>+    X265_FREE(pixel_buff_min);</DIV>
<DIV>+    X265_FREE(pixel_buff_max);</DIV>
<DIV> }</DIV>
<DIV> </DIV>
<DIV> bool PixelHarness::check_pixelcmp(pixelcmp_t ref, pixelcmp_t opt)</DIV>
<DIV>@@ -604,6 +618,46 @@</DIV>
<DIV>         j += INCR;</DIV>
<DIV>     }</DIV>
<DIV> </DIV>
<DIV>+//Stress Test for (Minimum, Maximum)</DIV>
<DIV>+        opt(opt_dest, 64, pixel_buff_min, pixel_buff_max, STRIDE, STRIDE);</DIV>
<DIV>+        ref(ref_dest, 64, pixel_buff_min,pixel_buff_max, STRIDE, STRIDE);</DIV>
<DIV>+</DIV>
<DIV>+        if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(int16_t)))</DIV>
<DIV>+        {</DIV>
<DIV>+            printf("pixel_sub_ps stress test(Minimum, Maximum) failed\n");</DIV>
<DIV>+            return false;</DIV>
<DIV>+        }</DIV>
<DIV>+</DIV>
<DIV>+//Stress Test for (Maximum, Minimum)</DIV>
<DIV>+        opt(opt_dest, 64, pixel_buff_max, pixel_buff_min, STRIDE, STRIDE);</DIV>
<DIV>+        ref(ref_dest, 64, pixel_buff_max, pixel_buff_min, STRIDE, STRIDE);</DIV>
<DIV>+</DIV>
<DIV>+        if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(int16_t)))</DIV>
<DIV>+        {</DIV>
<DIV>+            printf("pixel_sub_ps stress test(Maximum, Minimum) failed\n");</DIV>
<DIV>+            return false;</DIV>
<DIV>+        }</DIV>
<DIV>+</DIV>
<DIV>+//Stress Test for (Maximum, Maximum)</DIV>
<DIV>+        opt(opt_dest, 64, pixel_buff_max, pixel_buff_max, STRIDE, STRIDE);</DIV>
<DIV>+        ref(ref_dest, 64, pixel_buff_max, pixel_buff_max, STRIDE, STRIDE);</DIV>
<DIV>+</DIV>
<DIV>+        if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(int16_t)))</DIV>
<DIV>+        {</DIV>
<DIV>+            printf("pixel_sub_ps stress test(Maximum, Maximum) failed\n");</DIV>
<DIV>+            return false;</DIV>
<DIV>+        }</DIV>
<DIV>+</DIV>
<DIV>+//Stress Test for (Minimum, Minimum)</DIV>
<DIV>+        opt(opt_dest, 64, pixel_buff_min, pixel_buff_min, STRIDE, STRIDE);</DIV>
<DIV>+        ref(ref_dest, 64, pixel_buff_min, pixel_buff_min, STRIDE, STRIDE);</DIV>
<DIV>+</DIV>
<DIV>+        if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(int16_t)))</DIV>
<DIV>+        {</DIV>
<DIV>+            printf("pixel_sub_ps stress test(Minimum, Minimum) failed\n");</DIV>
<DIV>+            return false;</DIV>
<DIV>+        }</DIV>
<DIV>+</DIV>
<DIV>     return true;</DIV>
<DIV> }</DIV>
<DIV> </DIV>
<DIV>@@ -682,6 +736,62 @@</DIV>
<DIV>         j += INCR;</DIV>
<DIV>     }</DIV>
<DIV> </DIV>
<DIV>+//Stress Test for (Minimum, Maximum)</DIV>
<DIV>+#if HIGH_BIT_DEPTH</DIV>
<DIV>+    int old_depth = X265_DEPTH;</DIV>
<DIV>+    X265_DEPTH = 10;</DIV>
<DIV>+#endif</DIV>
<DIV>+        opt(opt_dest, 64, pixel_buff_min, sbuff_max, STRIDE, STRIDE);</DIV>
<DIV>+        ref(ref_dest, 64, pixel_buff_min, sbuff_max, STRIDE, STRIDE);</DIV>
<DIV>+</DIV>
<DIV>+        if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(pixel)))</DIV>
<DIV>+        {</DIV>
<DIV>+            printf("pixel_add_ps stress test(Minimum, Maximum) failed\n");</DIV>
<DIV>+#if HIGH_BIT_DEPTH</DIV>
<DIV>+            X265_DEPTH = old_depth;</DIV>
<DIV>+#endif</DIV>
<DIV>+            return false;</DIV>
<DIV>+        }</DIV>
<DIV>+</DIV>
<DIV>+//Stress Test for (Maximum, Minimum)</DIV>
<DIV>+        opt(opt_dest, 64, pixel_buff_max, sbuff_min, STRIDE, STRIDE);</DIV>
<DIV>+        ref(ref_dest, 64, pixel_buff_max, sbuff_min, STRIDE, STRIDE);</DIV>
<DIV>+</DIV>
<DIV>+        if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(pixel)))</DIV>
<DIV>+        {</DIV>
<DIV>+            printf("pixel_add_ps stress test(Maximum, Minimum) failed\n");</DIV>
<DIV>+#if HIGH_BIT_DEPTH</DIV>
<DIV>+            X265_DEPTH = old_depth;</DIV>
<DIV>+#endif</DIV>
<DIV>+            return false;</DIV>
<DIV>+        }</DIV>
<DIV>+</DIV>
<DIV>+//Stress Test for (Maximum, Maximum)</DIV>
<DIV>+        opt(opt_dest, 64, pixel_buff_max, sbuff_max, STRIDE, STRIDE);</DIV>
<DIV>+        ref(ref_dest, 64, pixel_buff_max, sbuff_max, STRIDE, STRIDE);</DIV>
<DIV>+</DIV>
<DIV>+        if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(pixel)))</DIV>
<DIV>+        {</DIV>
<DIV>+            printf("pixel_add_ps stress test(Maximum, Maximum) failed\n");</DIV>
<DIV>+#if HIGH_BIT_DEPTH</DIV>
<DIV>+            X265_DEPTH = old_depth;</DIV>
<DIV>+#endif</DIV>
<DIV>+            return false;</DIV>
<DIV>+        }</DIV>
<DIV>+</DIV>
<DIV>+//Stress Test for (Minimum, Minimum)</DIV>
<DIV>+        opt(opt_dest, 64, pixel_buff_min, sbuff_min, STRIDE, STRIDE);</DIV>
<DIV>+        ref(ref_dest, 64, pixel_buff_min, sbuff_min, STRIDE, STRIDE);</DIV>
<DIV>+</DIV>
<DIV>+        if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(pixel)))</DIV>
<DIV>+        {</DIV>
<DIV>+            printf("pixel_add_ps stress test(Minimum, Minimum) failed\n");</DIV>
<DIV>+#if HIGH_BIT_DEPTH</DIV>
<DIV>+            X265_DEPTH = old_depth;</DIV>
<DIV>+#endif</DIV>
<DIV>+            return false;</DIV>
<DIV>+        }</DIV>
<DIV>+</DIV>
<DIV> #if HIGH_BIT_DEPTH</DIV>
<DIV>     X265_DEPTH = old_depth;</DIV>
<DIV> #endif</DIV>
<DIV>@@ -1297,17 +1407,6 @@</DIV>
<DIV>             HEADER("[%s]  add_ps[%s]", x265_source_csp_names[i], chromaPartStr[part]);</DIV>
<DIV>             REPORT_SPEEDUP(opt.chroma[i].add_ps[part], ref.chroma[i].add_ps[part], pbuf1, FENC_STRIDE, pbuf2, sbuf1, STRIDE, STRIDE);</DIV>
<DIV>         }</DIV>
<DIV>-        if (opt.chroma[i].addAvg[part])</DIV>
<DIV>-        {</DIV>
<DIV>-            HEADER("[%s]  add_ps[%s]", x265_source_csp_names[i], chromaPartStr[part]);</DIV>
<DIV>-            REPORT_SPEEDUP(opt.chroma[i].addAvg[part], ref.chroma[i].addAvg[part], pbuf1, STRIDE, sbuf1, STRIDE, sbuf2, STRIDE);</DIV>
<DIV>-        }</DIV>
<DIV>-    }</DIV>
<DIV>-</DIV>
<DIV>-    if (opt.luma_addAvg[part])</DIV>
<DIV>-    {</DIV>
<DIV>-        printf("luma_addAvg[%s]", lumaPartStr[part]);</DIV>
<DIV>-        REPORT_SPEEDUP(opt.luma_addAvg[part], ref.luma_addAvg[part], pbuf1, STRIDE, sbuf1, STRIDE, sbuf2, STRIDE);</DIV>
<DIV>     }</DIV>
<DIV> </DIV>
<DIV> #undef HEADER</DIV>
<DIV>diff -r 3568c1b19947 -r ad69e508afdd source/test/pixelharness.h</DIV>
<DIV>--- a/source/test/pixelharness.h<SPAN class="" style="WHITE-SPACE: pre"> </SPAN>Tue Jan 28 01:49:03 2014 -0600</DIV>
<DIV>+++ b/source/test/pixelharness.h<SPAN class="" style="WHITE-SPACE: pre"> </SPAN>Tue Jan 28 15:28:49 2014 +0530</DIV>
<DIV>@@ -31,11 +31,12 @@</DIV>
<DIV> {</DIV>
<DIV> protected:</DIV>
<DIV> </DIV>
<DIV>-    pixel *pbuf1, *pbuf2, *pbuf3, *pbuf4;</DIV>
<DIV>+    pixel *pbuf1, *pbuf2, *pbuf3, *pbuf4, *pixel_buff_min, *pixel_buff_max;</DIV>
<DIV> </DIV>
<DIV>     int *ibuf1;</DIV>
<DIV> </DIV>
<DIV>-    int16_t *sbuf1, *sbuf2, *sbuf3;</DIV>
<DIV>+    int16_t *sbuf1, *sbuf2, *sbuf3,*sbuff_min, *sbuff_max;</DIV>
<DIV>+</DIV>
<DIV> </DIV>
<DIV>     bool check_pixelcmp(pixelcmp_t ref, pixelcmp_t opt);</DIV>
<DIV>     bool check_pixelcmp_sp(pixelcmp_sp_t ref, pixelcmp_sp_t opt);</DIV>
<DIV>diff -r 3568c1b19947 -r ad69e508afdd source/test/testharness.h</DIV>
<DIV>--- a/source/test/testharness.h<SPAN class="" style="WHITE-SPACE: pre"> </SPAN>Tue Jan 28 01:49:03 2014 -0600</DIV>
<DIV>+++ b/source/test/testharness.h<SPAN class="" style="WHITE-SPACE: pre"> </SPAN>Tue Jan 28 15:28:49 2014 +0530</DIV>
<DIV>@@ -36,6 +36,7 @@</DIV>
<DIV> #define BIT_DEPTH 8</DIV>
<DIV> #endif</DIV>
<DIV> #define PIXEL_MAX ((1 << BIT_DEPTH) - 1)</DIV>
<DIV>+#define PIXEL_MIN 0</DIV>
<DIV> #define SHORT_MAX  32767</DIV>
<DIV> #define SHORT_MIN -32767</DIV></DIV><BR></DIV></BLOCKQUOTE></div>