<div dir="ltr">Ignore this patch. Need modifications.<div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Feb 3, 2014 at 5:59 PM,  <span dir="ltr"><<a href="mailto:murugan@multicorewareinc.com" target="_blank">murugan@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 Murugan Vairavel <<a href="mailto:murugan@multicorewareinc.com">murugan@multicorewareinc.com</a>><br>
# Date 1391430556 -19800<br>
#      Mon Feb 03 17:59:16 2014 +0530<br>
# Node ID f8884c624aef2d904b91605e95912eb5b52caf79<br>
# Parent  aab88ed133647b779b0a1ca33a1e20584103ef7d<br>
testbench: stress test support for all pixelharness functions<br>
<br>
diff -r aab88ed13364 -r f8884c624aef source/test/pixelharness.cpp<br>
--- a/source/test/pixelharness.cpp      Sun Feb 02 13:09:26 2014 -0600<br>
+++ b/source/test/pixelharness.cpp      Mon Feb 03 17:59:16 2014 +0530<br>
@@ -33,12 +33,31 @@<br>
 #define INCR   32<br>
 #define STRIDE 64<br>
 #define ITERS  100<br>
+#define MAX_HEIGHT 64<br>
+#define PAD_ROWS   64<br>
+#define BUFFSIZE STRIDE * (MAX_HEIGHT + PAD_ROWS) + INCR * ITERS<br>
+#define TEST_CASES 3<br>
+#define SMAX (1 << 12)<br>
+#define SMIN (-1 << 12)<br>
<br>
 PixelHarness::PixelHarness()<br>
 {<br>
-    int maxheight = 64;<br>
-    int padrows = 64;<br>
-    int bufsize = STRIDE * (maxheight + padrows) + INCR * ITERS;<br>
+    int bufsize = STRIDE * (MAX_HEIGHT + PAD_ROWS) + INCR * ITERS;<br>
+<br>
+    /* Array for test case selection */<br>
+    test_case_selection = (int*)X265_MALLOC(int, TEST_CASES * TEST_CASES * 2);<br>
+    int k=0, j=0;<br>
+    for(int i = 0; i<TEST_CASES*TEST_CASES*2; i+=2)<br>
+    {<br>
+        test_case_selection[i] = k;<br>
+        test_case_selection[i + 1] = j;<br>
+        j++;<br>
+        if(j == TEST_CASES)<br>
+        {<br>
+            k++;<br>
+            j=0;<br>
+        }<br>
+    }<br>
<br>
     /* 64 pixels wide, 2k deep */<br>
     pbuf1 = (pixel*)X265_MALLOC(pixel, bufsize);<br>
@@ -52,20 +71,64 @@<br>
     sbuf2 = (int16_t*)X265_MALLOC(int16_t, bufsize);<br>
     sbuf3 = (int16_t*)X265_MALLOC(int16_t, bufsize);<br>
<br>
-    if (!pbuf1 || !pbuf2 || !pbuf3 || !pbuf4 || !sbuf1 || !sbuf2 || !sbuf3 || !ibuf1)<br>
+    /*Test Case buffer array */<br>
+    pixel_test_buff = (pixel**)X265_MALLOC(pixel*, TEST_CASES);<br>
+    short_test_buff = (int16_t**)X265_MALLOC(int16_t*, TEST_CASES);<br>
+    short_test_buff1 = (int16_t**)X265_MALLOC(int16_t*, TEST_CASES);<br>
+    int_test_buff = (int**)X265_MALLOC(int*, TEST_CASES);<br>
+<br>
+    if (!pbuf1 || !pbuf2 || !pbuf3 || !pbuf4 || !sbuf1 || !sbuf2 || !sbuf3 || !ibuf1 ||<br>
+        !pixel_test_buff || !short_test_buff || !int_test_buff || !short_test_buff1)<br>
     {<br>
         fprintf(stderr, "malloc failed, unable to initiate tests!\n");<br>
         exit(1);<br>
     }<br>
<br>
+    for (int i = 0; i < TEST_CASES; i++)<br>
+    {<br>
+        pixel_test_buff[i] = (pixel*)X265_MALLOC(pixel, BUFFSIZE);<br>
+        short_test_buff[i] = (int16_t*)X265_MALLOC(int16_t, BUFFSIZE);<br>
+        short_test_buff1[i] = (int16_t*)X265_MALLOC(int16_t, BUFFSIZE);<br>
+        int_test_buff[i] = (int*)X265_MALLOC(int, BUFFSIZE);<br>
+        if (!pixel_test_buff[i] || !short_test_buff[i] || !int_test_buff[i] || !short_test_buff1[i])<br>
+        {<br>
+            fprintf(stderr, "Init_Test_Case_buffers: malloc failed, unable to initiate tests!\n");<br>
+            exit(-1);<br>
+        }<br>
+    }<br>
+<br>
+    /*[0] --- Random values  */<br>
+    for (int i = 0; i < BUFFSIZE; i++)<br>
+    {<br>
+        pixel_test_buff[0][i] = rand() & PIXEL_MAX;<br>
+        short_test_buff[0][i] = (rand() % (2 * SMAX + 1)) - SMAX - 1; //max(SHORT_MIN, min(rand(), SMAX));<br>
+        short_test_buff1[0][i] = rand() & PIXEL_MAX;                  //For block copy only<br>
+        int_test_buff[0][i] = rand() % INT32_MAX;<br>
+    }<br>
+<br>
+    /*[1] --- Minimum       */<br>
+    memset(pixel_test_buff[1], PIXEL_MIN, sizeof(pixel) * BUFFSIZE);<br>
+    memset(short_test_buff1[1], PIXEL_MIN, sizeof(int16_t) * BUFFSIZE);<br>
+    short_test_buff[1][0] = SMIN;<br>
+    memcpy(&short_test_buff[1][1], &short_test_buff[1][0], sizeof(int16_t) * BUFFSIZE - 2);<br>
+    int_test_buff[1][0] = SHORT_MIN;<br>
+    memcpy(&int_test_buff[1][1], &int_test_buff[1][0], sizeof(int) * BUFFSIZE - 2);<br>
+<br>
+    /*[2] --- Maximum       */<br>
+    memset(pixel_test_buff[2], PIXEL_MAX, sizeof(pixel) * BUFFSIZE);<br>
+    short_test_buff[2][0] = SMAX;<br>
+    memcpy(&short_test_buff[2][1], &short_test_buff[2][0], sizeof(int16_t) * BUFFSIZE - 2);<br>
+    short_test_buff1[2][0] = PIXEL_MAX;<br>
+    memcpy(&short_test_buff1[2][1], &short_test_buff1[2][0], sizeof(int16_t) * BUFFSIZE - 2);<br>
+    int_test_buff[2][0] = SHORT_MAX;<br>
+    memcpy(&int_test_buff[2][1], &int_test_buff[2][0], sizeof(int) * BUFFSIZE - 2);<br>
+<br>
     for (int i = 0; i < bufsize; i++)<br>
     {<br>
         pbuf1[i] = rand() & PIXEL_MAX;<br>
         pbuf2[i] = rand() & PIXEL_MAX;<br>
         pbuf3[i] = rand() & PIXEL_MAX;<br>
         pbuf4[i] = rand() & PIXEL_MAX;<br>
-<br>
-#define SMAX (1 << 12)<br>
         sbuf1[i] = (rand() % (2 * SMAX + 1)) - SMAX - 1; //max(SHORT_MIN, min(rand(), SMAX));<br>
         sbuf2[i] = (rand() % (2 * SMAX + 1)) - SMAX - 1; //max(SHORT_MIN, min(rand(), SMAX));<br>
         ibuf1[i] = (rand() % (2 * SMAX + 1)) - SMAX - 1;<br>
@@ -83,6 +146,17 @@<br>
     X265_FREE(sbuf1);<br>
     X265_FREE(sbuf2);<br>
     X265_FREE(sbuf3);<br>
+    for (int i = 0; i < TEST_CASES; i++)<br>
+    {<br>
+        X265_FREE(pixel_test_buff[i]);<br>
+        X265_FREE(short_test_buff[i]);<br>
+        X265_FREE(short_test_buff1[i]);<br>
+        X265_FREE(int_test_buff[i]);<br>
+    }<br>
+    X265_FREE(pixel_test_buff);<br>
+    X265_FREE(short_test_buff);<br>
+    X265_FREE(short_test_buff1);<br>
+    X265_FREE(int_test_buff);<br>
 }<br>
<br>
 bool PixelHarness::check_pixelcmp(pixelcmp_t ref, pixelcmp_t opt)<br>
@@ -91,8 +165,11 @@<br>
<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        int vres = opt(pbuf1, STRIDE, pbuf2 + j, STRIDE);<br>
-        int cres = ref(pbuf1, STRIDE, pbuf2 + j, STRIDE);<br>
+        int index = i % (TEST_CASES * TEST_CASES);<br>
+        int vres = opt(pixel_test_buff[test_case_selection[2*index]],STRIDE,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j, STRIDE);<br>
+        int cres = ref(pixel_test_buff[test_case_selection[2*index]], STRIDE,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j, STRIDE);<br>
         if (vres != cres)<br>
             return false;<br>
<br>
@@ -108,8 +185,11 @@<br>
<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        int vres = opt(sbuf1, STRIDE, pbuf2 + j, STRIDE);<br>
-        int cres = ref(sbuf1, STRIDE, pbuf2 + j, STRIDE);<br>
+        int index = i % (TEST_CASES * TEST_CASES);<br>
+        int vres = opt(short_test_buff[test_case_selection[2*index]], STRIDE,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j, STRIDE);<br>
+        int cres = ref(short_test_buff[test_case_selection[2*index]], STRIDE,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j, STRIDE);<br>
         if (vres != cres)<br>
             return false;<br>
<br>
@@ -125,8 +205,11 @@<br>
<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        int vres = opt(sbuf1, STRIDE, sbuf2 + j, STRIDE);<br>
-        int cres = ref(sbuf1, STRIDE, sbuf2 + j, STRIDE);<br>
+        int index = i % (TEST_CASES * TEST_CASES);<br>
+        int vres = opt(short_test_buff[test_case_selection[2*index]], STRIDE,<br>
+            short_test_buff[test_case_selection[2*index + 1]] + j, STRIDE);<br>
+        int cres = ref(short_test_buff[test_case_selection[2*index]], STRIDE,<br>
+            short_test_buff[test_case_selection[2*index + 1]] + j, STRIDE);<br>
         if (vres != cres)<br>
             return false;<br>
<br>
@@ -143,9 +226,15 @@<br>
     int j = 0;<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        opt(pbuf1, pbuf2 + j, pbuf2 + j + 1, pbuf2 + j + 2, FENC_STRIDE - 5, &vres[0]);<br>
-        ref(pbuf1, pbuf2 + j, pbuf2 + j + 1, pbuf2 + j + 2, FENC_STRIDE - 5, &cres[0]);<br>
-<br>
+        int index = i % (TEST_CASES * TEST_CASES);<br>
+        opt(pixel_test_buff[test_case_selection[2*index]],<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j + 1,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j + 2, FENC_STRIDE - 5, &vres[0]);<br>
+        ref(pixel_test_buff[test_case_selection[2*index]],<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j + 1,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j + 2, FENC_STRIDE - 5, &cres[0]);<br>
         if ((vres[0] != cres[0]) || ((vres[1] != cres[1])) || ((vres[2] != cres[2])))<br>
             return false;<br>
<br>
@@ -162,8 +251,17 @@<br>
     int j = 0;<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        opt(pbuf1, pbuf2 + j, pbuf2 + j + 1, pbuf2 + j + 2, pbuf2 + j + 3, FENC_STRIDE - 5, &vres[0]);<br>
-        ref(pbuf1, pbuf2 + j, pbuf2 + j + 1, pbuf2 + j + 2, pbuf2 + j + 3, FENC_STRIDE - 5, &cres[0]);<br>
+        int index = i % (TEST_CASES * TEST_CASES);<br>
+        opt(pixel_test_buff[test_case_selection[2*index]],<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j + 1,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j + 2,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j + 3, FENC_STRIDE - 5, &vres[0]);<br>
+        ref(pixel_test_buff[test_case_selection[2*index]],<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j + 1,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j + 2,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j + 3, FENC_STRIDE - 5, &cres[0]);<br>
<br>
         if ((vres[0] != cres[0]) || ((vres[1] != cres[1])) || ((vres[2] != cres[2])) || ((vres[3] != cres[3])))<br>
             return false;<br>
@@ -183,8 +281,9 @@<br>
     int j = 0;<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        opt(bx, by, opt_dest, 64, pbuf2 + j, 128);<br>
-        ref(bx, by, ref_dest, 64, pbuf2 + j, 128);<br>
+        int index = i % TEST_CASES;<br>
+        opt(bx, by, opt_dest, 64, pixel_test_buff[index] + j, 128);<br>
+        ref(bx, by, ref_dest, 64, pixel_test_buff[index] + j, 128);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(pixel)))<br>
             return false;<br>
@@ -206,8 +305,9 @@<br>
     int j = 0;<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        opt(bx, by, opt_dest, 64, (int16_t*)sbuf3 + j, STRIDE);<br>
-        ref(bx, by, ref_dest, 64, (int16_t*)sbuf3 + j, STRIDE);<br>
+        int index = i % TEST_CASES;<br>
+        opt(bx, by, opt_dest, 64, short_test_buff1[index] + j, STRIDE);<br>
+        ref(bx, by, ref_dest, 64, short_test_buff1[index] + j, STRIDE);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(pixel)))<br>
             return false;<br>
@@ -230,8 +330,9 @@<br>
     int j = 0;<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        opt(pbuf1 + j, pbuf2 + j, opt_dest, STRIDE);<br>
-        ref(pbuf1 + j, pbuf2 + j, ref_dest, STRIDE);<br>
+        int index = i % TEST_CASES;<br>
+        opt(pbuf1 + j, pixel_test_buff[index] + j, opt_dest, STRIDE);<br>
+        ref(pbuf1 + j, pixel_test_buff[index] + j, ref_dest, STRIDE);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(int16_t)))<br>
             return false;<br>
@@ -268,8 +369,13 @@<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
         int stride = STRIDE;<br>
-        ref(pbuf1 + j, sbuf1 + j, ref_reco, ref_recq, ref_pred, stride, stride, stride);<br>
-        opt(pbuf1 + j, sbuf1 + j, opt_reco, opt_recq, opt_pred, stride, stride, stride);<br>
+        int index = i % (TEST_CASES * TEST_CASES);<br>
+        ref(pixel_test_buff[test_case_selection[2*index]] + j,<br>
+            short_test_buff[test_case_selection[2*index + 1]] + j,<br>
+            ref_reco, ref_recq, ref_pred, stride, stride, stride);<br>
+        opt(pixel_test_buff[test_case_selection[2*index]] + j,<br>
+            short_test_buff[test_case_selection[2*index + 1]] + j,<br>
+            opt_reco, opt_recq, opt_pred, stride, stride, stride);<br>
<br>
         if (memcmp(ref_recq, opt_recq, 64 * 64 * sizeof(int16_t)))<br>
         {<br>
@@ -295,7 +401,6 @@<br>
<br>
         j += INCR;<br>
     }<br>
-<br>
 #if HIGH_BIT_DEPTH<br>
     X265_DEPTH = old_depth;<br>
 #endif<br>
@@ -318,8 +423,9 @@<br>
     int offset = (rand() % 256) - 128;<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        opt((int16_t*)sbuf1 + j, opt_dest, 64, 64, width, height, w0, round, shift, offset);<br>
-        ref((int16_t*)sbuf1 + j, ref_dest, 64, 64, width, height, w0, round, shift, offset);<br>
+        int index = i % TEST_CASES;<br>
+        opt(short_test_buff[index] + j, opt_dest, 64, 64, width, height, w0, round, shift, offset);<br>
+        ref(short_test_buff[index] + j, ref_dest, 64, 64, width, height, w0, round, shift, offset);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(pixel)))<br>
             return false;<br>
@@ -346,8 +452,9 @@<br>
     int offset = (rand() % 256) - 128;<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        opt(pbuf1 + j, opt_dest, 64, 64, width, height, w0, round, shift, offset);<br>
-        ref(pbuf1 + j, ref_dest, 64, 64, width, height, w0, round, shift, offset);<br>
+        int index = i % TEST_CASES;<br>
+        opt(pixel_test_buff[index] + j, opt_dest, 64, 64, width, height, w0, round, shift, offset);<br>
+        ref(pixel_test_buff[index] + j, ref_dest, 64, 64, width, height, w0, round, shift, offset);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(pixel)))<br>
             return false;<br>
@@ -367,8 +474,11 @@<br>
     int j = 0;<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        opt(bx, by, opt_dest, STRIDE, sbuf2 + j, sbuf1 + j, STRIDE, STRIDE);<br>
-        ref(bx, by, ref_dest, STRIDE, sbuf2 + j, sbuf1 + j, STRIDE, STRIDE);<br>
+        int index = i % (TEST_CASES * TEST_CASES);<br>
+        opt(bx, by, opt_dest, STRIDE, short_test_buff[test_case_selection[2*index]] + j,<br>
+            short_test_buff[test_case_selection[2*index + 1]] + j, STRIDE, STRIDE);<br>
+        ref(bx, by, ref_dest, STRIDE, short_test_buff[test_case_selection[2*index]] + j,<br>
+            short_test_buff[test_case_selection[2*index + 1]] + j, STRIDE, STRIDE);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(int16_t)))<br>
             return false;<br>
@@ -402,8 +512,11 @@<br>
     int j = 0;<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        ref(pbuf2 + j, ref_destf, ref_desth, ref_destv, ref_destc, src_stride, dst_stride, bx, by);<br>
-        opt(pbuf2 + j, opt_destf, opt_desth, opt_destv, opt_destc, src_stride, dst_stride, bx, by);<br>
+        int index = i % TEST_CASES;<br>
+        ref(pixel_test_buff[index] + j, ref_destf, ref_desth, ref_destv,<br>
+            ref_destc, src_stride, dst_stride, bx, by);<br>
+        opt(pixel_test_buff[index] + j, opt_destf, opt_desth, opt_destv,<br>
+            opt_destc, src_stride, dst_stride, bx, by);<br>
<br>
         if (memcmp(ref_destf, opt_destf, 32 * 32 * sizeof(pixel)))<br>
             return false;<br>
@@ -430,8 +543,9 @@<br>
     {<br>
         int shift = (rand() % 7 + 1);<br>
<br>
-        opt(opt_dest, ibuf1 + j, STRIDE, shift, STRIDE);<br>
-        ref(ref_dest, ibuf1 + j, STRIDE, shift, STRIDE);<br>
+        int index = i % TEST_CASES;<br>
+        opt(opt_dest, int_test_buff[index] + j, STRIDE, shift, STRIDE);<br>
+        ref(ref_dest, int_test_buff[index] + j, STRIDE, shift, STRIDE);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(int16_t)))<br>
             return false;<br>
@@ -452,8 +566,9 @@<br>
     {<br>
         int shift = (rand() % 7 + 1);<br>
<br>
-        opt(opt_dest, sbuf1 + j, STRIDE, shift, STRIDE);<br>
-        ref(ref_dest, sbuf1 + j, STRIDE, shift, STRIDE);<br>
+        int index = i % TEST_CASES;<br>
+        opt(opt_dest, short_test_buff[index] + j, STRIDE, shift, STRIDE);<br>
+        ref(ref_dest, short_test_buff[index] + j, STRIDE, shift, STRIDE);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(int32_t)))<br>
             return false;<br>
@@ -476,8 +591,11 @@<br>
<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        ref(ref_dest, STRIDE, pbuf1 + j, STRIDE, pbuf2 + j, STRIDE, 32);<br>
-        opt(opt_dest, STRIDE, pbuf1 + j, STRIDE, pbuf2 + j, STRIDE, 32);<br>
+        int index = i % (TEST_CASES * TEST_CASES);<br>
+        ref(ref_dest, STRIDE, pixel_test_buff[test_case_selection[2*index]] + j,<br>
+            STRIDE, pixel_test_buff[test_case_selection[2*index + 1]] + j, STRIDE, 32);<br>
+        opt(opt_dest, STRIDE, pixel_test_buff[test_case_selection[2*index]] + j,<br>
+            STRIDE, pixel_test_buff[test_case_selection[2*index + 1]] + j, STRIDE, 32);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(pixel)))<br>
             return false;<br>
@@ -501,8 +619,9 @@<br>
     int j = 0;<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        opt(opt_dest, STRIDE, pbuf2 + j, STRIDE);<br>
-        ref(ref_dest, STRIDE, pbuf2 + j, STRIDE);<br>
+        int index = i % TEST_CASES;<br>
+        opt(opt_dest, STRIDE, pixel_test_buff[index] + j, STRIDE);<br>
+        ref(ref_dest, STRIDE, pixel_test_buff[index] + j, STRIDE);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(pixel)))<br>
             return false;<br>
@@ -526,8 +645,9 @@<br>
     int j = 0;<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        opt(opt_dest, 64, sbuf3 + j, STRIDE);<br>
-        ref(ref_dest, 64, sbuf3 + j, STRIDE);<br>
+        int index = 2;//i % TEST_CASES;<br>
+        opt(opt_dest, 64, short_test_buff1[index] + j, STRIDE);<br>
+        ref(ref_dest, 64, short_test_buff1[index] + j, STRIDE);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(pixel)))<br>
             return false;<br>
@@ -551,8 +671,9 @@<br>
     int j = 0;<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        opt(opt_dest, STRIDE, pbuf2 + j, STRIDE);<br>
-        ref(ref_dest, STRIDE, pbuf2 + j, STRIDE);<br>
+        int index = i % TEST_CASES;<br>
+        opt(opt_dest, STRIDE, pixel_test_buff[index] + j, STRIDE);<br>
+        ref(ref_dest, STRIDE, pixel_test_buff[index] + j, STRIDE);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(int16_t)))<br>
             return false;<br>
@@ -596,8 +717,11 @@<br>
     int j = 0;<br>
     for (int i = 0; i < 1; i++)<br>
     {<br>
-        opt(opt_dest, 64, pbuf2 + j, pbuf1 + j, STRIDE, STRIDE);<br>
-        ref(ref_dest, 64, pbuf2 + j, pbuf1 + j, STRIDE, STRIDE);<br>
+        int index = i % (TEST_CASES * TEST_CASES);<br>
+        opt(opt_dest, 64, pixel_test_buff[test_case_selection[2*index]] + j,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j, STRIDE, STRIDE);<br>
+        ref(ref_dest, 64, pixel_test_buff[test_case_selection[2*index]] + j,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + j, STRIDE, STRIDE);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(int16_t)))<br>
             return false;<br>
@@ -619,8 +743,9 @@<br>
     int j = 0;<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        opt(opt_dest, pbuf1 + j, STRIDE);<br>
-        ref(ref_dest, pbuf1 + j, STRIDE);<br>
+        int index = i % TEST_CASES;<br>
+        opt(opt_dest, pixel_test_buff[index] + j, STRIDE);<br>
+        ref(ref_dest, pixel_test_buff[index] + j, STRIDE);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(pixel)))<br>
             return false;<br>
@@ -642,8 +767,9 @@<br>
     int j = 0;<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        opt(opt_dest, pbuf1 + j, STRIDE);<br>
-        ref(ref_dest, pbuf1 + j, STRIDE);<br>
+        int index = i % TEST_CASES;<br>
+        opt(opt_dest, pixel_test_buff[index] + j, STRIDE);<br>
+        ref(ref_dest, pixel_test_buff[index] + j, STRIDE);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(pixel)))<br>
             return false;<br>
@@ -670,8 +796,11 @@<br>
     int j = 0;<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        opt(opt_dest, 64, pbuf1 + j, sbuf1 + j, STRIDE, STRIDE);<br>
-        ref(ref_dest, 64, pbuf1 + j, sbuf1 + j, STRIDE, STRIDE);<br>
+        int index = i % (TEST_CASES * TEST_CASES);<br>
+        opt(opt_dest, 64, pixel_test_buff[test_case_selection[2*index]] + j,<br>
+            short_test_buff[test_case_selection[2*index + 1]] + j, STRIDE, STRIDE);<br>
+        ref(ref_dest, 64, pixel_test_buff[test_case_selection[2*index]] + j,<br>
+            short_test_buff[test_case_selection[2*index + 1]] + j, STRIDE, STRIDE);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(pixel)))<br>
         {<br>
@@ -695,8 +824,9 @@<br>
<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        uint64_t vres = opt(pbuf1, STRIDE);<br>
-        uint64_t cres = ref(pbuf1, STRIDE);<br>
+        int index = i % TEST_CASES;<br>
+        uint64_t vres = opt(pixel_test_buff[index], STRIDE);<br>
+        uint64_t cres = ref(pixel_test_buff[index], STRIDE);<br>
         if (vres != cres)<br>
             return false;<br>
<br>
@@ -714,8 +844,11 @@<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
         int stride = rand() % 64;<br>
-        ref(pbuf1 + i, stride, pbuf2 + i, stride, sum0);<br>
-        opt(pbuf1 + i, stride, pbuf2 + i, stride, sum1);<br>
+        int index = i % (TEST_CASES * TEST_CASES);<br>
+        ref(pixel_test_buff[test_case_selection[2*index]] + i, stride,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + i, stride, sum0);<br>
+        opt(pixel_test_buff[test_case_selection[2*index]] + i, stride,<br>
+            pixel_test_buff[test_case_selection[2*index + 1]] + i, stride, sum1);<br>
<br>
         if (memcmp(sum0, sum1, sizeof(sum0)))<br>
             return false;<br>
@@ -776,8 +909,11 @@<br>
<br>
     for (int i = 0; i < ITERS; i++)<br>
     {<br>
-        ref(ref_dest, STRIDE, sbuf1 + j, STRIDE, sbuf2 + j, STRIDE);<br>
-        opt(opt_dest, STRIDE, sbuf1 + j, STRIDE, sbuf2 + j, STRIDE);<br>
+        int index = i % (TEST_CASES * TEST_CASES);<br>
+        ref(ref_dest, STRIDE, short_test_buff[test_case_selection[2*index]] + j,<br>
+            STRIDE, short_test_buff[test_case_selection[2*index + 1]] + j, STRIDE);<br>
+        opt(opt_dest, STRIDE, short_test_buff[test_case_selection[2*index]] + j,<br>
+            STRIDE, short_test_buff[test_case_selection[2*index + 1]] + j, STRIDE);<br>
<br>
         if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(pixel)))<br>
             return false;<br>
diff -r aab88ed13364 -r f8884c624aef source/test/pixelharness.h<br>
--- a/source/test/pixelharness.h        Sun Feb 02 13:09:26 2014 -0600<br>
+++ b/source/test/pixelharness.h        Mon Feb 03 17:59:16 2014 +0530<br>
@@ -31,11 +31,11 @@<br>
 {<br>
 protected:<br>
<br>
-    pixel *pbuf1, *pbuf2, *pbuf3, *pbuf4;<br>
+    pixel *pbuf1, *pbuf2, *pbuf3, *pbuf4, **pixel_test_buff;<br>
<br>
-    int *ibuf1;<br>
+    int *ibuf1, *test_case_selection, **int_test_buff;<br>
<br>
-    int16_t *sbuf1, *sbuf2, *sbuf3;<br>
+    int16_t *sbuf1, *sbuf2, *sbuf3, **short_test_buff, **short_test_buff1;<br>
<br>
     bool check_pixelcmp(pixelcmp_t ref, pixelcmp_t opt);<br>
     bool check_pixelcmp_sp(pixelcmp_sp_t ref, pixelcmp_sp_t opt);<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">With Regards,<div><br></div><div>Murugan. V</div><div>+919659287478</div></div>
</div>