[x265] [PATCH] testbench: added stress test cases for all functions in mbdstharness.cpp

Murugan Vairavel murugan at multicorewareinc.com
Thu Feb 13 14:54:45 CET 2014


Ignore this patch. I will send a new one.



On Thu, Feb 13, 2014 at 5:34 PM, <murugan at multicorewareinc.com> wrote:

> # HG changeset patch
> # User Murugan Vairavel <murugan at multicorewareinc.com>
> # Date 1392291603 -19800
> #      Thu Feb 13 17:10:03 2014 +0530
> # Node ID 549d67465fbf19e2a062e4530851146d6b693949
> # Parent  df4531a24c4db893b5197180466922bccc4b2c54
> testbench: added stress test cases for all functions in mbdstharness.cpp
>
> diff -r df4531a24c4d -r 549d67465fbf source/test/ipfilterharness.cpp
> --- a/source/test/ipfilterharness.cpp   Thu Feb 13 02:48:38 2014 -0600
> +++ b/source/test/ipfilterharness.cpp   Thu Feb 13 17:10:03 2014 +0530
> @@ -41,12 +41,12 @@
>  IPFilterHarness::IPFilterHarness()
>  {
>      ipf_t_size = 200 * 200;
> -    pixel_buff = (pixel*)malloc(ipf_t_size * sizeof(pixel));     //
> Assuming max_height = max_width = max_srcStride = max_dstStride = 100
> +    pixel_buff = X265_MALLOC(pixel, ipf_t_size);           // Assuming
> max_height = max_width = max_srcStride = max_dstStride = 100
>      short_buff = X265_MALLOC(int16_t, ipf_t_size);
> -    IPF_vec_output_s = (int16_t*)malloc(ipf_t_size * sizeof(int16_t)); //
> Output Buffer1
> -    IPF_C_output_s = (int16_t*)malloc(ipf_t_size * sizeof(int16_t));   //
> Output Buffer2
> -    IPF_vec_output_p = (pixel*)malloc(ipf_t_size * sizeof(pixel)); //
> Output Buffer1
> -    IPF_C_output_p = (pixel*)malloc(ipf_t_size * sizeof(pixel));   //
> Output Buffer2
> +    IPF_vec_output_s = X265_MALLOC(int16_t, ipf_t_size);   // Output
> Buffer1
> +    IPF_C_output_s   = X265_MALLOC(int16_t, ipf_t_size);   // Output
> Buffer2
> +    IPF_vec_output_p = X265_MALLOC(pixel, ipf_t_size);     // Output
> Buffer1
> +    IPF_C_output_p   = X265_MALLOC(pixel, ipf_t_size);     // Output
> Buffer2
>
>      /* Array of pixel buffers */
>      pixel_test_buff = X265_MALLOC(pixel*, TEST_CASES);
> @@ -102,12 +102,12 @@
>
>  IPFilterHarness::~IPFilterHarness()
>  {
> -    free(IPF_vec_output_s);
> -    free(IPF_C_output_s);
> -    free(IPF_vec_output_p);
> -    free(IPF_C_output_p);
> +    X265_FREE(IPF_vec_output_s);
> +    X265_FREE(IPF_C_output_s);
> +    X265_FREE(IPF_vec_output_p);
> +    X265_FREE(IPF_C_output_p);
>      X265_FREE(short_buff);
> -    free(pixel_buff);
> +    X265_FREE(pixel_buff);
>      for (int i = 0; i < TEST_CASES; i++)
>      {
>          X265_FREE(pixel_test_buff[i]);
> @@ -738,7 +738,7 @@
>          {
>              printf("luma_hv [%s]\t", lumaPartStr[value]);
>              REPORT_SPEEDUP(opt.luma_hvpp[value], ref.luma_hvpp[value],
> -                           pixel_buff + srcStride, srcStride,
> IPF_vec_output_p, dstStride, 1, 3);
> +                           pixel_buff + 3 * srcStride, srcStride,
> IPF_vec_output_p, srcStride, 1, 3);
>          }
>      }
>
> diff -r df4531a24c4d -r 549d67465fbf source/test/mbdstharness.cpp
> --- a/source/test/mbdstharness.cpp      Thu Feb 13 02:48:38 2014 -0600
> +++ b/source/test/mbdstharness.cpp      Thu Feb 13 17:10:03 2014 +0530
> @@ -30,8 +30,12 @@
>  #include <string.h>
>  #include <stdio.h>
>
> +#define ITERS  100
> +#define TEST_CASES 3
> +#define SMAX (1 << 12)
> +#define SMIN (-1 << 12)
> +
>  using namespace x265;
> -#define ITERS  100
>
>  struct DctConf_t
>  {
> @@ -76,16 +80,40 @@
>      mintbuf7 = X265_MALLOC(int, mem_cmp_size);
>      mintbuf8 = X265_MALLOC(int, mem_cmp_size);
>
> -    if (!mbuf1 || !mbuf2 || !mbuf3 || !mbuf4 || !mbufdct)
> +    short_test_buff  = (int16_t**)X265_MALLOC(int16_t*, TEST_CASES);
> +    int_test_buff    = (int**)X265_MALLOC(int*, TEST_CASES);
> +
> +    if (!mbuf1 || !mbuf2 || !mbuf3 || !mbuf4 || !mbufdct || !mintbuf1 ||
> !mintbuf2 || !mintbuf3 || !mintbuf4 || !mintbuf5 || !mintbuf6 || !mintbuf7
> || !mintbuf8 || !short_test_buff || !int_test_buff)
>      {
>          fprintf(stderr, "malloc failed, unable to initiate tests!\n");
>          exit(1);
>      }
>
> -    if (!mintbuf1 || !mintbuf2 || !mintbuf3 || !mintbuf4 || !mintbuf5 ||
> !mintbuf6 || !mintbuf7 || !mintbuf8)
> +    for (int i = 0; i < TEST_CASES; i++)
>      {
> -        fprintf(stderr, "malloc failed, unable to initiate tests!\n");
> -        exit(1);
> +        short_test_buff[i]  = (int16_t*)X265_MALLOC(int16_t, mb_t_size);
> +        int_test_buff[i]  = (int*)X265_MALLOC(int, mb_t_size);
> +        if (!short_test_buff[i] || !int_test_buff[i])
> +        {
> +            fprintf(stderr, "Init_Test_Case_buffers: malloc failed,
> unable to initiate tests!\n");
> +            exit(-1);
> +        }
> +    }
> +
> +    /*[0] --- Random values  */
> +    /*[1] --- Minimum        */
> +    /*[2] --- Maximum        */
> +
> +    for (int i = 0; i < mb_t_size; i++)
> +    {
> +        short_test_buff[0][i]   = (rand() & PIXEL_MAX) - (rand() &
> PIXEL_MAX);
> +        int_test_buff[0][i]     = rand() % SMAX;
> +
> +        short_test_buff[1][i]   = -PIXEL_MAX;
> +        int_test_buff[1][i]     = 0;
> +
> +        short_test_buff[2][i]   = PIXEL_MAX;
> +        int_test_buff[2][i]     = SMAX - 1;
>      }
>
>      const int idct_max = (1 << (BIT_DEPTH + 4)) - 1;
> @@ -134,6 +162,13 @@
>      X265_FREE(mintbuf6);
>      X265_FREE(mintbuf7);
>      X265_FREE(mintbuf8);
> +    for (int i = 0; i < TEST_CASES; i++)
> +    {
> +        X265_FREE(short_test_buff[i]);
> +        X265_FREE(int_test_buff[i]);
> +    }
> +    X265_FREE(short_test_buff);
> +    X265_FREE(int_test_buff);
>  }
>
>  bool MBDstHarness::check_dct_primitive(dct_t ref, dct_t opt, int width)
> @@ -143,15 +178,16 @@
>
>      for (int i = 0; i <= 100; i++)
>      {
> -        ref(mbufdct + j, mintbuf1, width);
> -        opt(mbufdct + j, mintbuf2, width);
> +        int index = rand() % TEST_CASES;
> +        ref(short_test_buff[index] + j, mintbuf3, width);
> +        opt(short_test_buff[index] + j, mintbuf4, width);
>
> -        if (memcmp(mintbuf1, mintbuf2, cmp_size))
> +        if (memcmp(mintbuf3, mintbuf4, cmp_size))
>          {
>  #if _DEBUG
>              // redo for debug
> -            ref(mbufdct + j, mintbuf1, width);
> -            opt(mbufdct + j, mintbuf2, width);
> +            ref(short_test_buff[index] + j, mintbuf3, width);
> +            opt(short_test_buff[index] + j, mintbuf4, width);
>  #endif
>              return false;
>          }
> @@ -173,15 +209,16 @@
>
>      for (int i = 0; i <= 100; i++)
>      {
> -        ref(mbufidct + j, mbuf2, width);
> -        opt(mbufidct + j, mbuf3, width);
> +        int index = rand() % TEST_CASES;
> +        ref(int_test_buff[index] + j, mbuf2, width);
> +        opt(int_test_buff[index] + j, mbuf3, width);
>
>          if (memcmp(mbuf2, mbuf3, cmp_size))
>          {
>  #if _DEBUG
>              // redo for debug
> -            ref(mbufidct + j, mbuf2, width);
> -            opt(mbufidct + j, mbuf3, width);
> +            ref(int_test_buff[index] + j, mbuf2, width);
> +            opt(int_test_buff[index] + j, mbuf3, width);
>  #endif
>              return false;
>          }
> @@ -216,9 +253,10 @@
>          int shift = QUANT_IQUANT_SHIFT - QUANT_SHIFT - transformShift;
>
>          int cmp_size = sizeof(int) * height * width;
> +        int index = rand() % TEST_CASES;
>
> -        ref(mintbuf1 + j, mintbuf3, width * height, scale, shift);
> -        opt(mintbuf1 + j, mintbuf4, width * height, scale, shift);
> +        ref(int_test_buff[index] + j, mintbuf3, width * height, scale,
> shift);
> +        opt(int_test_buff[index] + j, mintbuf4, width * height, scale,
> shift);
>
>          if (memcmp(mintbuf3, mintbuf4, cmp_size))
>              return false;
> @@ -250,9 +288,11 @@
>          int shift = QUANT_IQUANT_SHIFT - QUANT_SHIFT - transformShift;
>
>          int cmp_size = sizeof(int) * height * width;
> +        int index1 = rand() % TEST_CASES;
> +        int index2 = rand() % TEST_CASES;
>
> -        ref(mintbuf1 + j, mintbuf3, mintbuf2 + j, width * height, per,
> shift);
> -        opt(mintbuf1 + j, mintbuf4, mintbuf2 + j, width * height, per,
> shift);
> +        ref(int_test_buff[index1] + j, mintbuf3, int_test_buff[index2] +
> j, width * height, per, shift);
> +        opt(int_test_buff[index1] + j, mintbuf4, int_test_buff[index2] +
> j, width * height, per, shift);
>
>          if (memcmp(mintbuf3, mintbuf4, cmp_size))
>              return false;
> @@ -297,8 +337,11 @@
>          int numCoeff = height * width;
>          int optLastPos = -1, refLastPos = -1;
>
> -        refReturnValue = ref(mintbuf1 + j, mintbuf2 + j, mintbuf5,
> mintbuf6, bits, valueToAdd, numCoeff, &refLastPos);
> -        optReturnValue = opt(mintbuf1 + j, mintbuf2 + j, mintbuf3,
> mintbuf4, bits, valueToAdd, numCoeff, &optLastPos);
> +        int index1 = rand() % TEST_CASES;
> +        int index2 = rand() % TEST_CASES;
> +
> +        refReturnValue = ref(int_test_buff[index1] + j,
> int_test_buff[index2] + j, mintbuf5, mintbuf6, bits, valueToAdd, numCoeff,
> &refLastPos);
> +        optReturnValue = opt(int_test_buff[index1] + j,
> int_test_buff[index2] + j, mintbuf3, mintbuf4, bits, valueToAdd, numCoeff,
> &optLastPos);
>
>          if (memcmp(mintbuf3, mintbuf5, cmp_size))
>              return false;
> @@ -379,7 +422,7 @@
>          if (opt.dct[value])
>          {
>              printf("%s\t", DctConf_infos[value].name);
> -            REPORT_SPEEDUP(opt.dct[value], ref.dct[value], mbuf1,
> mintbuf1, DctConf_infos[value].width);
> +            REPORT_SPEEDUP(opt.dct[value], ref.dct[value], mbuf1,
> mintbuf3, DctConf_infos[value].width);
>          }
>      }
>
> diff -r df4531a24c4d -r 549d67465fbf source/test/mbdstharness.h
> --- a/source/test/mbdstharness.h        Thu Feb 13 02:48:38 2014 -0600
> +++ b/source/test/mbdstharness.h        Thu Feb 13 17:10:03 2014 +0530
> @@ -34,9 +34,8 @@
>  {
>  protected:
>
> -    int16_t *mbuf1, *mbuf2, *mbuf3, *mbuf4, *mbufdct;
> -    int *mbufidct;
> -    int *mintbuf1, *mintbuf2, *mintbuf3, *mintbuf4, *mintbuf5, *mintbuf6,
> *mintbuf7, *mintbuf8;
> +    int16_t *mbuf1, *mbuf2, *mbuf3, *mbuf4, *mbufdct, **short_test_buff;
> +    int *mbufidct, *mintbuf1, *mintbuf2, *mintbuf3, *mintbuf4, *mintbuf5,
> *mintbuf6, *mintbuf7, *mintbuf8, **int_test_buff;
>      static const int mb_t_size = 6400;
>      static const int mem_cmp_size = 32 * 32;
>
>


-- 
With Regards,

Murugan. V
+919659287478
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20140213/b65f2928/attachment-0001.html>


More information about the x265-devel mailing list