[x265] [PATCH] unit test code for blockcopy_ps_c

Steve Borho steve at borho.org
Mon Nov 4 21:27:02 CET 2013


On Mon, Nov 4, 2013 at 9:02 AM, <praveen at multicorewareinc.com> wrote:

> # HG changeset patch
> # User Praveen Tiwari
> # Date 1383577321 -19800
> # Node ID df03ee5e3e440a4af0429be6404142ecd9a64861
> # Parent  20b712dce6c237f64ea3ca2a06fc4cb9370ad91f
> unit test code for blockcopy_ps_c
>
> diff -r 20b712dce6c2 -r df03ee5e3e44 source/test/pixelharness.cpp
> --- a/source/test/pixelharness.cpp      Mon Nov 04 19:34:23 2013 +0530
> +++ b/source/test/pixelharness.cpp      Mon Nov 04 20:32:01 2013 +0530
> @@ -553,6 +553,31 @@
>      return true;
>  }
>
> +bool PixelHarness::check_block_copy_ps(copy_ps_t ref, copy_ps_t opt)
> +{
> +    ALIGN_VAR_16(pixel, ref_dest[64 * 64]);
> +    ALIGN_VAR_16(pixel, opt_dest[64 * 64]);
>

the naming scheme seems backwards to what we use for other primitives.
 luma_hps takes pixel input and outputs short.  Here, it seems copy_ps
takes short input and outputs pixel?  Let's rename these to be consistent.


> +
> +    // we don't know the partition size so we are checking the entire
> output buffer so
> +    // we must initialize the buffers
> +    memset(ref_dest, 0, sizeof(ref_dest));
> +    memset(opt_dest, 0, sizeof(opt_dest));
> +
> +    int j = 0;
> +    for (int i = 0; i < ITERS; i++)
> +    {
> +        opt(opt_dest, 64, (int16_t*)pbuf2 + j, STRIDE);
> +        ref(ref_dest, 64, (int16_t*)pbuf2 + j, STRIDE);
>

the pixelharness has int16_t input buffers, why not use those?


> +
> +        if (memcmp(ref_dest, opt_dest, 64 * 64 * sizeof(pixel)))
> +            return false;
> +
> +        j += INCR;
> +    }
> +
> +    return true;
> +}
> +
>  bool PixelHarness::testPartition(int part, const EncoderPrimitives& ref,
> const EncoderPrimitives& opt)
>  {
>      if (opt.satd[part])
> @@ -653,6 +678,24 @@
>              return false;
>          }
>      }
> +
> +    if (opt.luma_copy_ps[part])
> +    {
> +        if (!check_block_copy_ps(ref.luma_copy_ps[part],
> opt.luma_copy_ps[part]))
> +        {
> +            printf("luma_copy_ps[%s] failed\n", lumaPartStr[part]);
> +            return false;
> +        }
> +    }
> +
> +    if (opt.chroma_copy_ps[part])
> +    {
> +        if (!check_block_copy_ps(ref.chroma_copy_ps[part],
> opt.chroma_copy_ps[part]))
> +        {
> +            printf("chroma_copy_ps[%s] failed\n", chromaPartStr[part]);
> +            return false;
> +        }
> +    }
>      return true;
>  }
>
> @@ -884,6 +927,18 @@
>          printf("chroma_copy_pp[%s]", chromaPartStr[part]);
>          REPORT_SPEEDUP(opt.chroma_copy_pp[part],
> ref.chroma_copy_pp[part], pbuf1, 64, pbuf2, 128);
>      }
> +
> +    if (opt.luma_copy_ps[part])
> +    {
> +        printf("luma_copy_ps[%s]", lumaPartStr[part]);
> +        REPORT_SPEEDUP(opt.luma_copy_ps[part], ref.luma_copy_ps[part],
> pbuf1, 64, (int16_t*)pbuf2, 128);
> +    }
> +
> +    if (opt.chroma_copy_ps[part])
> +    {
> +        printf("chroma_copy_ps[%s]", chromaPartStr[part]);
> +        REPORT_SPEEDUP(opt.chroma_copy_ps[part],
> ref.chroma_copy_ps[part], pbuf1, 64, (int16_t*)pbuf2, 128);
> +    }
>  }
>
>  void PixelHarness::measureSpeed(const EncoderPrimitives& ref, const
> EncoderPrimitives& opt)
> diff -r 20b712dce6c2 -r df03ee5e3e44 source/test/pixelharness.h
> --- a/source/test/pixelharness.h        Mon Nov 04 19:34:23 2013 +0530
> +++ b/source/test/pixelharness.h        Mon Nov 04 20:32:01 2013 +0530
> @@ -58,6 +58,7 @@
>      bool check_pixelavg_pp(pixelavg_pp_t ref, pixelavg_pp_t opt);
>
>      bool check_block_copy_pp(copy_pp_t ref, copy_pp_t opt);
> +    bool check_block_copy_ps(copy_ps_t ref, copy_ps_t opt);
>  public:
>
>      PixelHarness();
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>



-- 
Steve Borho
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20131104/4c05fb36/attachment-0001.html>


More information about the x265-devel mailing list