[x265] [PATCH] Stress test case for luma_pp
chen
chenm003 at 163.com
Mon Jan 27 14:17:28 CET 2014
I suggest use a array to replace pixel_buff_min and pixel_buff_max, so we can wasy to increment more test case in future
At 2014-01-27 20:07:19,nabajit at multicorewareinc.com wrote:
># HG changeset patch
># User Nabajit Deka
># Date 1390824412 -19800
># Mon Jan 27 17:36:52 2014 +0530
># Node ID 00c0d3e09e3e2180df8675f0a715b2bb2830b7ef
># Parent b59b1e579f78b4c29c0c1491e6198a63ba1d597f
>Stress test case for luma_pp.
>
>diff -r b59b1e579f78 -r 00c0d3e09e3e source/test/ipfilterharness.cpp
>--- a/source/test/ipfilterharness.cpp Mon Jan 27 00:10:56 2014 -0600
>+++ b/source/test/ipfilterharness.cpp Mon Jan 27 17:36:52 2014 +0530
>@@ -36,14 +36,17 @@
> 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_min = (pixel*)malloc(ipf_t_size * sizeof(pixel));
>+ pixel_buff_max = (pixel*)malloc(ipf_t_size * sizeof(pixel));
> short_buff = (int16_t*)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
>
>- if (!pixel_buff || !short_buff || !IPF_vec_output_s || !IPF_vec_output_p || !IPF_C_output_s || !IPF_C_output_p)
>+ if (!pixel_buff || !pixel_buff_min || !pixel_buff_max || !short_buff || !IPF_vec_output_s || !IPF_vec_output_p || !IPF_C_output_s || !IPF_C_output_p)
> {
> fprintf(stderr, "init_IPFilter_buffers: malloc failed, unable to initiate tests!\n");
> exit(-1);
>@@ -62,6 +65,9 @@
> pixel_buff[i] = (pixel)(rand() & ((1 << 8) - 1));
> short_buff[i] = (int16_t)(isPositive) * (rand() & SHRT_MAX);
> }
>+
>+ memset(pixel_buff_min, PIXEL_MIN, ipf_t_size);
>+ memset(pixel_buff_max, PIXEL_MAX, ipf_t_size);
> }
>
> IPFilterHarness::~IPFilterHarness()
>@@ -276,7 +282,6 @@
> for (int i = 0; i <= 100; i++)
> {
> rand_coeffIdx = rand() % 3; // Random coeffIdex in the filter
>-
> rand_srcStride = rand() % 100; // Randomly generated srcStride
> rand_dstStride = rand() % 100 + 64; // Randomly generated dstStride
>
>@@ -295,6 +300,49 @@
> return false;
> }
>
>+ //Stress test for min input
>+ for (int i = 0; i < 3; i++)
>+ {
>+ rand_coeffIdx = i;
>+ rand_srcStride = rand() % 100; // Randomly generated srcStride
>+ rand_dstStride = rand() % 100 + 64; // Randomly generated dstStride
>+
>+ opt(pixel_buff_min,
>+ rand_srcStride,
>+ IPF_vec_output_p,
>+ rand_dstStride,
>+ rand_coeffIdx);
>+ ref(pixel_buff_min,
>+ rand_srcStride,
>+ IPF_C_output_p,
>+ rand_dstStride,
>+ rand_coeffIdx);
>+
>+ if (memcmp(IPF_vec_output_p, IPF_C_output_p, ipf_t_size))
>+ {
>+ printf("luma_pp stress test(min) failed\n");
>+ return false;
>+ }
>+
>+ //Stress test for max input
>+ opt(pixel_buff_max,
>+ rand_srcStride,
>+ IPF_vec_output_p,
>+ rand_dstStride,
>+ rand_coeffIdx);
>+ ref(pixel_buff_max,
>+ rand_srcStride,
>+ IPF_C_output_p,
>+ rand_dstStride,
>+ rand_coeffIdx);
>+
>+ if (memcmp(IPF_vec_output_p, IPF_C_output_p, ipf_t_size))
>+ {
>+ printf("luma_pp stress test(max) failed\n");
>+ return false;
>+ }
>+ }
>+
> return true;
> }
>
>diff -r b59b1e579f78 -r 00c0d3e09e3e source/test/ipfilterharness.h
>--- a/source/test/ipfilterharness.h Mon Jan 27 00:10:56 2014 -0600
>+++ b/source/test/ipfilterharness.h Mon Jan 27 17:36:52 2014 +0530
>@@ -33,7 +33,7 @@
> {
> protected:
>
>- pixel *pixel_buff;
>+ pixel *pixel_buff, *pixel_buff_min, *pixel_buff_max;
> int16_t *short_buff;
>
> pixel *IPF_vec_output_p, *IPF_C_output_p;
>diff -r b59b1e579f78 -r 00c0d3e09e3e source/test/testharness.h
>--- a/source/test/testharness.h Mon Jan 27 00:10:56 2014 -0600
>+++ b/source/test/testharness.h Mon Jan 27 17:36:52 2014 +0530
>@@ -36,6 +36,7 @@
> #define BIT_DEPTH 8
> #endif
> #define PIXEL_MAX ((1 << BIT_DEPTH) - 1)
>+#define PIXEL_MIN 0
> #define SHORT_MAX 32767
> #define SHORT_MIN -32767
>
>_______________________________________________
>x265-devel mailing list
>x265-devel at videolan.org
>https://mailman.videolan.org/listinfo/x265-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20140127/40c04e04/attachment.html>
More information about the x265-devel
mailing list