-
-
Save rcombs/d5bfe7c8d7afcb7d3756 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/tests/checkasm/vp9dsp.c b/tests/checkasm/vp9dsp.c | |
index 146a71f..968eae5 100644 | |
--- a/tests/checkasm/vp9dsp.c | |
+++ b/tests/checkasm/vp9dsp.c | |
@@ -104,58 +104,63 @@ static void check_ipred(void) | |
} while (0) | |
#define setdx(a,b,c,d) setpx(a,b,(c)-(d)+(rnd()%((d)*2+1))) | |
#define setsx(a,b,c,d) setdx(a,b,c,(d) << (bit_depth - 8)) | |
+static inline void randomize_buffers_int(int bidx, int lineoff, int str, | |
+ int bit_depth, int dir, | |
+ int* E, int* F, int* H, int* I, | |
+ uint8_t *buf0, uint8_t *buf1) | |
+{ | |
+ uint32_t mask = (1 << bit_depth) - 1; | |
+ int off = dir ? lineoff : lineoff * 16; | |
+ int istride = dir ? 1 : 16; | |
+ int jstride = dir ? str : 1; | |
+ int i, j; | |
+ for (i = 0; i < 2; i++) /* flat16 */ { | |
+ int idx = off + i * istride, p0, q0; | |
+ setpx(idx, 0, q0 = rnd() & mask); | |
+ setsx(idx, -1, p0 = q0, E[bidx] >> 2); | |
+ for (j = 1; j < 8; j++) { | |
+ setsx(idx, -1 - j, p0, F[bidx]); | |
+ setsx(idx, j, q0, F[bidx]); | |
+ } | |
+ } | |
+ for (i = 2; i < 4; i++) /* flat8 */ { | |
+ int idx = off + i * istride, p0, q0; | |
+ setpx(idx, 0, q0 = rnd() & mask); | |
+ setsx(idx, -1, p0 = q0, E[bidx] >> 2); | |
+ for (j = 1; j < 4; j++) { | |
+ setsx(idx, -1 - j, p0, F[bidx]); | |
+ setsx(idx, j, q0, F[bidx]); | |
+ } | |
+ for (j = 4; j < 8; j++) { | |
+ setpx(idx, -1 - j, rnd() & mask); | |
+ setpx(idx, j, rnd() & mask); | |
+ } | |
+ } | |
+ for (i = 4; i < 6; i++) /* regular */ { | |
+ int idx = off + i * istride, p2, p1, p0, q0, q1, q2; | |
+ setpx(idx, 0, q0 = rnd() & mask); | |
+ setsx(idx, 1, q1 = q0, I[bidx]); | |
+ setsx(idx, 2, q2 = q1, I[bidx]); | |
+ setsx(idx, 3, q2, I[bidx]); | |
+ setsx(idx, -1, p0 = q0, E[bidx] >> 2); | |
+ setsx(idx, -2, p1 = p0, I[bidx]); | |
+ setsx(idx, -3, p2 = p1, I[bidx]); | |
+ setsx(idx, -4, p2, I[bidx]); | |
+ for (j = 4; j < 8; j++) { | |
+ setpx(idx, -1 - j, rnd() & mask); | |
+ setpx(idx, j, rnd() & mask); | |
+ } | |
+ } | |
+ for (i = 6; i < 8; i++) /* off */ { | |
+ int idx = off + i * istride; | |
+ for (j = 0; j < 8; j++) { | |
+ setpx(idx, -1 - j, rnd() & mask); | |
+ setpx(idx, j, rnd() & mask); | |
+ } | |
+ } | |
+} | |
#define randomize_buffers(bidx, lineoff, str) \ | |
- do { \ | |
- uint32_t mask = (1 << bit_depth) - 1; \ | |
- int off = dir ? lineoff : lineoff * 16; \ | |
- int istride = dir ? 1 : 16; \ | |
- int jstride = dir ? str : 1; \ | |
- int i, j; \ | |
- for (i = 0; i < 2; i++) /* flat16 */ { \ | |
- int idx = off + i * istride, p0, q0; \ | |
- setpx(idx, 0, q0 = rnd() & mask); \ | |
- setsx(idx, -1, p0 = q0, E[bidx] >> 2); \ | |
- for (j = 1; j < 8; j++) { \ | |
- setsx(idx, -1 - j, p0, F[bidx]); \ | |
- setsx(idx, j, q0, F[bidx]); \ | |
- } \ | |
- } \ | |
- for (i = 2; i < 4; i++) /* flat8 */ { \ | |
- int idx = off + i * istride, p0, q0; \ | |
- setpx(idx, 0, q0 = rnd() & mask); \ | |
- setsx(idx, -1, p0 = q0, E[bidx] >> 2); \ | |
- for (j = 1; j < 4; j++) { \ | |
- setsx(idx, -1 - j, p0, F[bidx]); \ | |
- setsx(idx, j, q0, F[bidx]); \ | |
- } \ | |
- for (j = 4; j < 8; j++) { \ | |
- setpx(idx, -1 - j, rnd() & mask); \ | |
- setpx(idx, j, rnd() & mask); \ | |
- } \ | |
- } \ | |
- for (i = 4; i < 6; i++) /* regular */ { \ | |
- int idx = off + i * istride, p2, p1, p0, q0, q1, q2; \ | |
- setpx(idx, 0, q0 = rnd() & mask); \ | |
- setsx(idx, 1, q1 = q0, I[bidx]); \ | |
- setsx(idx, 2, q2 = q1, I[bidx]); \ | |
- setsx(idx, 3, q2, I[bidx]); \ | |
- setsx(idx, -1, p0 = q0, E[bidx] >> 2); \ | |
- setsx(idx, -2, p1 = p0, I[bidx]); \ | |
- setsx(idx, -3, p2 = p1, I[bidx]); \ | |
- setsx(idx, -4, p2, I[bidx]); \ | |
- for (j = 4; j < 8; j++) { \ | |
- setpx(idx, -1 - j, rnd() & mask); \ | |
- setpx(idx, j, rnd() & mask); \ | |
- } \ | |
- } \ | |
- for (i = 6; i < 8; i++) /* off */ { \ | |
- int idx = off + i * istride; \ | |
- for (j = 0; j < 8; j++) { \ | |
- setpx(idx, -1 - j, rnd() & mask); \ | |
- setpx(idx, j, rnd() & mask); \ | |
- } \ | |
- } \ | |
- } while (0) | |
+ randomize_buffers_int(bidx, lineoff, str, bit_depth, dir, E, F, H, I, buf0, buf1) | |
static void check_loopfilter() | |
{ | |
@@ -197,6 +202,9 @@ static void check_loopfilter() | |
midoff = (dir ? 16 * 8 : 8) * SIZEOF_PIXEL; | |
midoff_aligned = (dir ? 16 * 8 : 16) * SIZEOF_PIXEL; | |
+ buf0 = base0 + midoff_aligned; | |
+ buf1 = base1 + midoff_aligned; | |
+ | |
// 16wd_16px loopfilter | |
if (check_func(dsp.loop_filter_16[dir], | |
"vp9_loop_filter_%s_16_16_%dbpp", |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment