Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(78)

Side by Side Diff: unit_test/planar_test.cc

Issue 1361813002: replace random with fastrand (Closed) Base URL: https://chromium.googlesource.com/libyuv/libyuv@master
Patch Set: remove win32 version of random Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « unit_test/math_test.cc ('k') | unit_test/rotate_argb_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 The LibYuv Project Authors. All rights reserved. 2 * Copyright 2011 The LibYuv Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 static int TestAttenuateI(int width, int height, int benchmark_iterations, 107 static int TestAttenuateI(int width, int height, int benchmark_iterations,
108 int disable_cpu_flags, int invert, int off) { 108 int disable_cpu_flags, int invert, int off) {
109 if (width < 1) { 109 if (width < 1) {
110 width = 1; 110 width = 1;
111 } 111 }
112 const int kBpp = 4; 112 const int kBpp = 4;
113 const int kStride = width * kBpp; 113 const int kStride = width * kBpp;
114 align_buffer_64(src_argb, kStride * height + off); 114 align_buffer_64(src_argb, kStride * height + off);
115 align_buffer_64(dst_argb_c, kStride * height); 115 align_buffer_64(dst_argb_c, kStride * height);
116 align_buffer_64(dst_argb_opt, kStride * height); 116 align_buffer_64(dst_argb_opt, kStride * height);
117 srandom(time(NULL));
118 for (int i = 0; i < kStride * height; ++i) { 117 for (int i = 0; i < kStride * height; ++i) {
119 src_argb[i + off] = (random() & 0xff); 118 src_argb[i + off] = (fastrand() & 0xff);
120 } 119 }
121 memset(dst_argb_c, 0, kStride * height); 120 memset(dst_argb_c, 0, kStride * height);
122 memset(dst_argb_opt, 0, kStride * height); 121 memset(dst_argb_opt, 0, kStride * height);
123 122
124 MaskCpuFlags(disable_cpu_flags); 123 MaskCpuFlags(disable_cpu_flags);
125 ARGBAttenuate(src_argb + off, kStride, 124 ARGBAttenuate(src_argb + off, kStride,
126 dst_argb_c, kStride, 125 dst_argb_c, kStride,
127 width, invert * height); 126 width, invert * height);
128 MaskCpuFlags(-1); 127 MaskCpuFlags(-1);
129 for (int i = 0; i < benchmark_iterations; ++i) { 128 for (int i = 0; i < benchmark_iterations; ++i) {
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 static int TestUnattenuateI(int width, int height, int benchmark_iterations, 172 static int TestUnattenuateI(int width, int height, int benchmark_iterations,
174 int disable_cpu_flags, int invert, int off) { 173 int disable_cpu_flags, int invert, int off) {
175 if (width < 1) { 174 if (width < 1) {
176 width = 1; 175 width = 1;
177 } 176 }
178 const int kBpp = 4; 177 const int kBpp = 4;
179 const int kStride = width * kBpp; 178 const int kStride = width * kBpp;
180 align_buffer_64(src_argb, kStride * height + off); 179 align_buffer_64(src_argb, kStride * height + off);
181 align_buffer_64(dst_argb_c, kStride * height); 180 align_buffer_64(dst_argb_c, kStride * height);
182 align_buffer_64(dst_argb_opt, kStride * height); 181 align_buffer_64(dst_argb_opt, kStride * height);
183 srandom(time(NULL));
184 for (int i = 0; i < kStride * height; ++i) { 182 for (int i = 0; i < kStride * height; ++i) {
185 src_argb[i + off] = (random() & 0xff); 183 src_argb[i + off] = (fastrand() & 0xff);
186 } 184 }
187 ARGBAttenuate(src_argb + off, kStride, 185 ARGBAttenuate(src_argb + off, kStride,
188 src_argb + off, kStride, 186 src_argb + off, kStride,
189 width, height); 187 width, height);
190 memset(dst_argb_c, 0, kStride * height); 188 memset(dst_argb_c, 0, kStride * height);
191 memset(dst_argb_opt, 0, kStride * height); 189 memset(dst_argb_opt, 0, kStride * height);
192 190
193 MaskCpuFlags(disable_cpu_flags); 191 MaskCpuFlags(disable_cpu_flags);
194 ARGBUnattenuate(src_argb + off, kStride, 192 ARGBUnattenuate(src_argb + off, kStride,
195 dst_argb_c, kStride, 193 dst_argb_c, kStride,
(...skipping 733 matching lines...) Expand 10 before | Expand all | Expand 10 after
929 W1280, TERP, DIFF, N, NEG, OFF) \ 927 W1280, TERP, DIFF, N, NEG, OFF) \
930 TEST_F(libyuvTest, ARGBInterpolate##TERP##N) { \ 928 TEST_F(libyuvTest, ARGBInterpolate##TERP##N) { \
931 const int kWidth = ((W1280) > 0) ? (W1280) : 1; \ 929 const int kWidth = ((W1280) > 0) ? (W1280) : 1; \
932 const int kHeight = benchmark_height_; \ 930 const int kHeight = benchmark_height_; \
933 const int kStrideA = (kWidth * BPP_A + STRIDE_A - 1) / STRIDE_A * STRIDE_A; \ 931 const int kStrideA = (kWidth * BPP_A + STRIDE_A - 1) / STRIDE_A * STRIDE_A; \
934 const int kStrideB = (kWidth * BPP_B + STRIDE_B - 1) / STRIDE_B * STRIDE_B; \ 932 const int kStrideB = (kWidth * BPP_B + STRIDE_B - 1) / STRIDE_B * STRIDE_B; \
935 align_buffer_64(src_argb_a, kStrideA * kHeight + OFF); \ 933 align_buffer_64(src_argb_a, kStrideA * kHeight + OFF); \
936 align_buffer_64(src_argb_b, kStrideA * kHeight + OFF); \ 934 align_buffer_64(src_argb_b, kStrideA * kHeight + OFF); \
937 align_buffer_64(dst_argb_c, kStrideB * kHeight); \ 935 align_buffer_64(dst_argb_c, kStrideB * kHeight); \
938 align_buffer_64(dst_argb_opt, kStrideB * kHeight); \ 936 align_buffer_64(dst_argb_opt, kStrideB * kHeight); \
939 srandom(time(NULL)); \
940 for (int i = 0; i < kStrideA * kHeight; ++i) { \ 937 for (int i = 0; i < kStrideA * kHeight; ++i) { \
941 src_argb_a[i + OFF] = (random() & 0xff); \ 938 src_argb_a[i + OFF] = (fastrand() & 0xff); \
942 src_argb_b[i + OFF] = (random() & 0xff); \ 939 src_argb_b[i + OFF] = (fastrand() & 0xff); \
943 } \ 940 } \
944 MaskCpuFlags(disable_cpu_flags_); \ 941 MaskCpuFlags(disable_cpu_flags_); \
945 ARGBInterpolate(src_argb_a + OFF, kStrideA, \ 942 ARGBInterpolate(src_argb_a + OFF, kStrideA, \
946 src_argb_b + OFF, kStrideA, \ 943 src_argb_b + OFF, kStrideA, \
947 dst_argb_c, kStrideB, \ 944 dst_argb_c, kStrideB, \
948 kWidth, NEG kHeight, TERP); \ 945 kWidth, NEG kHeight, TERP); \
949 MaskCpuFlags(-1); \ 946 MaskCpuFlags(-1); \
950 for (int i = 0; i < benchmark_iterations_; ++i) { \ 947 for (int i = 0; i < benchmark_iterations_; ++i) { \
951 ARGBInterpolate(src_argb_a + OFF, kStrideA, \ 948 ARGBInterpolate(src_argb_a + OFF, kStrideA, \
952 src_argb_b + OFF, kStrideA, \ 949 src_argb_b + OFF, kStrideA, \
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
991 int disable_cpu_flags, int invert, int off) { 988 int disable_cpu_flags, int invert, int off) {
992 if (width < 1) { 989 if (width < 1) {
993 width = 1; 990 width = 1;
994 } 991 }
995 const int kBpp = 4; 992 const int kBpp = 4;
996 const int kStride = width * kBpp; 993 const int kStride = width * kBpp;
997 align_buffer_64(src_argb_a, kStride * height + off); 994 align_buffer_64(src_argb_a, kStride * height + off);
998 align_buffer_64(src_argb_b, kStride * height + off); 995 align_buffer_64(src_argb_b, kStride * height + off);
999 align_buffer_64(dst_argb_c, kStride * height); 996 align_buffer_64(dst_argb_c, kStride * height);
1000 align_buffer_64(dst_argb_opt, kStride * height); 997 align_buffer_64(dst_argb_opt, kStride * height);
1001 srandom(time(NULL));
1002 for (int i = 0; i < kStride * height; ++i) { 998 for (int i = 0; i < kStride * height; ++i) {
1003 src_argb_a[i + off] = (random() & 0xff); 999 src_argb_a[i + off] = (fastrand() & 0xff);
1004 src_argb_b[i + off] = (random() & 0xff); 1000 src_argb_b[i + off] = (fastrand() & 0xff);
1005 } 1001 }
1006 ARGBAttenuate(src_argb_a + off, kStride, src_argb_a + off, kStride, width, 1002 ARGBAttenuate(src_argb_a + off, kStride, src_argb_a + off, kStride, width,
1007 height); 1003 height);
1008 ARGBAttenuate(src_argb_b + off, kStride, src_argb_b + off, kStride, width, 1004 ARGBAttenuate(src_argb_b + off, kStride, src_argb_b + off, kStride, width,
1009 height); 1005 height);
1010 memset(dst_argb_c, 255, kStride * height); 1006 memset(dst_argb_c, 255, kStride * height);
1011 memset(dst_argb_opt, 255, kStride * height); 1007 memset(dst_argb_opt, 255, kStride * height);
1012 1008
1013 MaskCpuFlags(disable_cpu_flags); 1009 MaskCpuFlags(disable_cpu_flags);
1014 ARGBBlend(src_argb_a + off, kStride, 1010 ARGBBlend(src_argb_a + off, kStride,
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
1297 } 1293 }
1298 1294
1299 TEST_F(libyuvTest, TestCopyPlane) { 1295 TEST_F(libyuvTest, TestCopyPlane) {
1300 int err = 0; 1296 int err = 0;
1301 int yw = benchmark_width_; 1297 int yw = benchmark_width_;
1302 int yh = benchmark_height_; 1298 int yh = benchmark_height_;
1303 int b = 12; 1299 int b = 12;
1304 int i, j; 1300 int i, j;
1305 1301
1306 int y_plane_size = (yw + b * 2) * (yh + b * 2); 1302 int y_plane_size = (yw + b * 2) * (yh + b * 2);
1307 srandom(time(NULL));
1308 align_buffer_64(orig_y, y_plane_size); 1303 align_buffer_64(orig_y, y_plane_size);
1309 align_buffer_64(dst_c, y_plane_size); 1304 align_buffer_64(dst_c, y_plane_size);
1310 align_buffer_64(dst_opt, y_plane_size); 1305 align_buffer_64(dst_opt, y_plane_size);
1311 1306
1312 memset(orig_y, 0, y_plane_size); 1307 memset(orig_y, 0, y_plane_size);
1313 memset(dst_c, 0, y_plane_size); 1308 memset(dst_c, 0, y_plane_size);
1314 memset(dst_opt, 0, y_plane_size); 1309 memset(dst_opt, 0, y_plane_size);
1315 1310
1316 // Fill image buffers with random data. 1311 // Fill image buffers with random data.
1317 for (i = b; i < (yh + b); ++i) { 1312 for (i = b; i < (yh + b); ++i) {
1318 for (j = b; j < (yw + b); ++j) { 1313 for (j = b; j < (yw + b); ++j) {
1319 orig_y[i * (yw + b * 2) + j] = random() & 0xff; 1314 orig_y[i * (yw + b * 2) + j] = fastrand() & 0xff;
1320 } 1315 }
1321 } 1316 }
1322 1317
1323 // Fill destination buffers with random data. 1318 // Fill destination buffers with random data.
1324 for (i = 0; i < y_plane_size; ++i) { 1319 for (i = 0; i < y_plane_size; ++i) {
1325 uint8 random_number = random() & 0x7f; 1320 uint8 random_number = fastrand() & 0x7f;
1326 dst_c[i] = random_number; 1321 dst_c[i] = random_number;
1327 dst_opt[i] = dst_c[i]; 1322 dst_opt[i] = dst_c[i];
1328 } 1323 }
1329 1324
1330 int y_off = b * (yw + b * 2) + b; 1325 int y_off = b * (yw + b * 2) + b;
1331 1326
1332 int y_st = yw + b * 2; 1327 int y_st = yw + b * 2;
1333 int stride = 8; 1328 int stride = 8;
1334 1329
1335 // Disable all optimizations. 1330 // Disable all optimizations.
(...skipping 28 matching lines...) Expand all
1364 int disable_cpu_flags, int invert, int off) { 1359 int disable_cpu_flags, int invert, int off) {
1365 if (width < 1) { 1360 if (width < 1) {
1366 width = 1; 1361 width = 1;
1367 } 1362 }
1368 const int kBpp = 4; 1363 const int kBpp = 4;
1369 const int kStride = width * kBpp; 1364 const int kStride = width * kBpp;
1370 align_buffer_64(src_argb_a, kStride * height + off); 1365 align_buffer_64(src_argb_a, kStride * height + off);
1371 align_buffer_64(src_argb_b, kStride * height + off); 1366 align_buffer_64(src_argb_b, kStride * height + off);
1372 align_buffer_64(dst_argb_c, kStride * height); 1367 align_buffer_64(dst_argb_c, kStride * height);
1373 align_buffer_64(dst_argb_opt, kStride * height); 1368 align_buffer_64(dst_argb_opt, kStride * height);
1374 srandom(time(NULL));
1375 for (int i = 0; i < kStride * height; ++i) { 1369 for (int i = 0; i < kStride * height; ++i) {
1376 src_argb_a[i + off] = (random() & 0xff); 1370 src_argb_a[i + off] = (fastrand() & 0xff);
1377 src_argb_b[i + off] = (random() & 0xff); 1371 src_argb_b[i + off] = (fastrand() & 0xff);
1378 } 1372 }
1379 memset(dst_argb_c, 0, kStride * height); 1373 memset(dst_argb_c, 0, kStride * height);
1380 memset(dst_argb_opt, 0, kStride * height); 1374 memset(dst_argb_opt, 0, kStride * height);
1381 1375
1382 MaskCpuFlags(disable_cpu_flags); 1376 MaskCpuFlags(disable_cpu_flags);
1383 ARGBMultiply(src_argb_a + off, kStride, 1377 ARGBMultiply(src_argb_a + off, kStride,
1384 src_argb_b + off, kStride, 1378 src_argb_b + off, kStride,
1385 dst_argb_c, kStride, 1379 dst_argb_c, kStride,
1386 width, invert * height); 1380 width, invert * height);
1387 MaskCpuFlags(-1); 1381 MaskCpuFlags(-1);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1435 int disable_cpu_flags, int invert, int off) { 1429 int disable_cpu_flags, int invert, int off) {
1436 if (width < 1) { 1430 if (width < 1) {
1437 width = 1; 1431 width = 1;
1438 } 1432 }
1439 const int kBpp = 4; 1433 const int kBpp = 4;
1440 const int kStride = width * kBpp; 1434 const int kStride = width * kBpp;
1441 align_buffer_64(src_argb_a, kStride * height + off); 1435 align_buffer_64(src_argb_a, kStride * height + off);
1442 align_buffer_64(src_argb_b, kStride * height + off); 1436 align_buffer_64(src_argb_b, kStride * height + off);
1443 align_buffer_64(dst_argb_c, kStride * height); 1437 align_buffer_64(dst_argb_c, kStride * height);
1444 align_buffer_64(dst_argb_opt, kStride * height); 1438 align_buffer_64(dst_argb_opt, kStride * height);
1445 srandom(time(NULL));
1446 for (int i = 0; i < kStride * height; ++i) { 1439 for (int i = 0; i < kStride * height; ++i) {
1447 src_argb_a[i + off] = (random() & 0xff); 1440 src_argb_a[i + off] = (fastrand() & 0xff);
1448 src_argb_b[i + off] = (random() & 0xff); 1441 src_argb_b[i + off] = (fastrand() & 0xff);
1449 } 1442 }
1450 memset(dst_argb_c, 0, kStride * height); 1443 memset(dst_argb_c, 0, kStride * height);
1451 memset(dst_argb_opt, 0, kStride * height); 1444 memset(dst_argb_opt, 0, kStride * height);
1452 1445
1453 MaskCpuFlags(disable_cpu_flags); 1446 MaskCpuFlags(disable_cpu_flags);
1454 ARGBAdd(src_argb_a + off, kStride, 1447 ARGBAdd(src_argb_a + off, kStride,
1455 src_argb_b + off, kStride, 1448 src_argb_b + off, kStride,
1456 dst_argb_c, kStride, 1449 dst_argb_c, kStride,
1457 width, invert * height); 1450 width, invert * height);
1458 MaskCpuFlags(-1); 1451 MaskCpuFlags(-1);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1506 int disable_cpu_flags, int invert, int off) { 1499 int disable_cpu_flags, int invert, int off) {
1507 if (width < 1) { 1500 if (width < 1) {
1508 width = 1; 1501 width = 1;
1509 } 1502 }
1510 const int kBpp = 4; 1503 const int kBpp = 4;
1511 const int kStride = width * kBpp; 1504 const int kStride = width * kBpp;
1512 align_buffer_64(src_argb_a, kStride * height + off); 1505 align_buffer_64(src_argb_a, kStride * height + off);
1513 align_buffer_64(src_argb_b, kStride * height + off); 1506 align_buffer_64(src_argb_b, kStride * height + off);
1514 align_buffer_64(dst_argb_c, kStride * height); 1507 align_buffer_64(dst_argb_c, kStride * height);
1515 align_buffer_64(dst_argb_opt, kStride * height); 1508 align_buffer_64(dst_argb_opt, kStride * height);
1516 srandom(time(NULL));
1517 for (int i = 0; i < kStride * height; ++i) { 1509 for (int i = 0; i < kStride * height; ++i) {
1518 src_argb_a[i + off] = (random() & 0xff); 1510 src_argb_a[i + off] = (fastrand() & 0xff);
1519 src_argb_b[i + off] = (random() & 0xff); 1511 src_argb_b[i + off] = (fastrand() & 0xff);
1520 } 1512 }
1521 memset(dst_argb_c, 0, kStride * height); 1513 memset(dst_argb_c, 0, kStride * height);
1522 memset(dst_argb_opt, 0, kStride * height); 1514 memset(dst_argb_opt, 0, kStride * height);
1523 1515
1524 MaskCpuFlags(disable_cpu_flags); 1516 MaskCpuFlags(disable_cpu_flags);
1525 ARGBSubtract(src_argb_a + off, kStride, 1517 ARGBSubtract(src_argb_a + off, kStride,
1526 src_argb_b + off, kStride, 1518 src_argb_b + off, kStride,
1527 dst_argb_c, kStride, 1519 dst_argb_c, kStride,
1528 width, invert * height); 1520 width, invert * height);
1529 MaskCpuFlags(-1); 1521 MaskCpuFlags(-1);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1577 int disable_cpu_flags, int invert, int off) { 1569 int disable_cpu_flags, int invert, int off) {
1578 if (width < 1) { 1570 if (width < 1) {
1579 width = 1; 1571 width = 1;
1580 } 1572 }
1581 const int kBpp = 4; 1573 const int kBpp = 4;
1582 const int kStride = width * kBpp; 1574 const int kStride = width * kBpp;
1583 align_buffer_64(src_argb_a, kStride * height + off); 1575 align_buffer_64(src_argb_a, kStride * height + off);
1584 align_buffer_64(dst_argb_c, kStride * height); 1576 align_buffer_64(dst_argb_c, kStride * height);
1585 align_buffer_64(dst_argb_opt, kStride * height); 1577 align_buffer_64(dst_argb_opt, kStride * height);
1586 memset(src_argb_a, 0, kStride * height + off); 1578 memset(src_argb_a, 0, kStride * height + off);
1587 srandom(time(NULL));
1588 for (int i = 0; i < kStride * height; ++i) { 1579 for (int i = 0; i < kStride * height; ++i) {
1589 src_argb_a[i + off] = (random() & 0xff); 1580 src_argb_a[i + off] = (fastrand() & 0xff);
1590 } 1581 }
1591 memset(dst_argb_c, 0, kStride * height); 1582 memset(dst_argb_c, 0, kStride * height);
1592 memset(dst_argb_opt, 0, kStride * height); 1583 memset(dst_argb_opt, 0, kStride * height);
1593 1584
1594 MaskCpuFlags(disable_cpu_flags); 1585 MaskCpuFlags(disable_cpu_flags);
1595 ARGBSobel(src_argb_a + off, kStride, 1586 ARGBSobel(src_argb_a + off, kStride,
1596 dst_argb_c, kStride, 1587 dst_argb_c, kStride,
1597 width, invert * height); 1588 width, invert * height);
1598 MaskCpuFlags(-1); 1589 MaskCpuFlags(-1);
1599 for (int i = 0; i < benchmark_iterations; ++i) { 1590 for (int i = 0; i < benchmark_iterations; ++i) {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1646 width = 1; 1637 width = 1;
1647 } 1638 }
1648 const int kSrcBpp = 4; 1639 const int kSrcBpp = 4;
1649 const int kDstBpp = 1; 1640 const int kDstBpp = 1;
1650 const int kSrcStride = (width * kSrcBpp + 15) & ~15; 1641 const int kSrcStride = (width * kSrcBpp + 15) & ~15;
1651 const int kDstStride = (width * kDstBpp + 15) & ~15; 1642 const int kDstStride = (width * kDstBpp + 15) & ~15;
1652 align_buffer_64(src_argb_a, kSrcStride * height + off); 1643 align_buffer_64(src_argb_a, kSrcStride * height + off);
1653 align_buffer_64(dst_argb_c, kDstStride * height); 1644 align_buffer_64(dst_argb_c, kDstStride * height);
1654 align_buffer_64(dst_argb_opt, kDstStride * height); 1645 align_buffer_64(dst_argb_opt, kDstStride * height);
1655 memset(src_argb_a, 0, kSrcStride * height + off); 1646 memset(src_argb_a, 0, kSrcStride * height + off);
1656 srandom(time(NULL));
1657 for (int i = 0; i < kSrcStride * height; ++i) { 1647 for (int i = 0; i < kSrcStride * height; ++i) {
1658 src_argb_a[i + off] = (random() & 0xff); 1648 src_argb_a[i + off] = (fastrand() & 0xff);
1659 } 1649 }
1660 memset(dst_argb_c, 0, kDstStride * height); 1650 memset(dst_argb_c, 0, kDstStride * height);
1661 memset(dst_argb_opt, 0, kDstStride * height); 1651 memset(dst_argb_opt, 0, kDstStride * height);
1662 1652
1663 MaskCpuFlags(disable_cpu_flags); 1653 MaskCpuFlags(disable_cpu_flags);
1664 ARGBSobelToPlane(src_argb_a + off, kSrcStride, 1654 ARGBSobelToPlane(src_argb_a + off, kSrcStride,
1665 dst_argb_c, kDstStride, 1655 dst_argb_c, kDstStride,
1666 width, invert * height); 1656 width, invert * height);
1667 MaskCpuFlags(-1); 1657 MaskCpuFlags(-1);
1668 for (int i = 0; i < benchmark_iterations; ++i) { 1658 for (int i = 0; i < benchmark_iterations; ++i) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1713 int disable_cpu_flags, int invert, int off) { 1703 int disable_cpu_flags, int invert, int off) {
1714 if (width < 1) { 1704 if (width < 1) {
1715 width = 1; 1705 width = 1;
1716 } 1706 }
1717 const int kBpp = 4; 1707 const int kBpp = 4;
1718 const int kStride = width * kBpp; 1708 const int kStride = width * kBpp;
1719 align_buffer_64(src_argb_a, kStride * height + off); 1709 align_buffer_64(src_argb_a, kStride * height + off);
1720 align_buffer_64(dst_argb_c, kStride * height); 1710 align_buffer_64(dst_argb_c, kStride * height);
1721 align_buffer_64(dst_argb_opt, kStride * height); 1711 align_buffer_64(dst_argb_opt, kStride * height);
1722 memset(src_argb_a, 0, kStride * height + off); 1712 memset(src_argb_a, 0, kStride * height + off);
1723 srandom(time(NULL));
1724 for (int i = 0; i < kStride * height; ++i) { 1713 for (int i = 0; i < kStride * height; ++i) {
1725 src_argb_a[i + off] = (random() & 0xff); 1714 src_argb_a[i + off] = (fastrand() & 0xff);
1726 } 1715 }
1727 memset(dst_argb_c, 0, kStride * height); 1716 memset(dst_argb_c, 0, kStride * height);
1728 memset(dst_argb_opt, 0, kStride * height); 1717 memset(dst_argb_opt, 0, kStride * height);
1729 1718
1730 MaskCpuFlags(disable_cpu_flags); 1719 MaskCpuFlags(disable_cpu_flags);
1731 ARGBSobelXY(src_argb_a + off, kStride, 1720 ARGBSobelXY(src_argb_a + off, kStride,
1732 dst_argb_c, kStride, 1721 dst_argb_c, kStride,
1733 width, invert * height); 1722 width, invert * height);
1734 MaskCpuFlags(-1); 1723 MaskCpuFlags(-1);
1735 for (int i = 0; i < benchmark_iterations; ++i) { 1724 for (int i = 0; i < benchmark_iterations; ++i) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1780 int disable_cpu_flags, int invert, int off, int radius) { 1769 int disable_cpu_flags, int invert, int off, int radius) {
1781 if (width < 1) { 1770 if (width < 1) {
1782 width = 1; 1771 width = 1;
1783 } 1772 }
1784 const int kBpp = 4; 1773 const int kBpp = 4;
1785 const int kStride = width * kBpp; 1774 const int kStride = width * kBpp;
1786 align_buffer_64(src_argb_a, kStride * height + off); 1775 align_buffer_64(src_argb_a, kStride * height + off);
1787 align_buffer_64(dst_cumsum, width * height * 16); 1776 align_buffer_64(dst_cumsum, width * height * 16);
1788 align_buffer_64(dst_argb_c, kStride * height); 1777 align_buffer_64(dst_argb_c, kStride * height);
1789 align_buffer_64(dst_argb_opt, kStride * height); 1778 align_buffer_64(dst_argb_opt, kStride * height);
1790 srandom(time(NULL));
1791 for (int i = 0; i < kStride * height; ++i) { 1779 for (int i = 0; i < kStride * height; ++i) {
1792 src_argb_a[i + off] = (random() & 0xff); 1780 src_argb_a[i + off] = (fastrand() & 0xff);
1793 } 1781 }
1794 memset(dst_cumsum, 0, width * height * 16); 1782 memset(dst_cumsum, 0, width * height * 16);
1795 memset(dst_argb_c, 0, kStride * height); 1783 memset(dst_argb_c, 0, kStride * height);
1796 memset(dst_argb_opt, 0, kStride * height); 1784 memset(dst_argb_opt, 0, kStride * height);
1797 1785
1798 MaskCpuFlags(disable_cpu_flags); 1786 MaskCpuFlags(disable_cpu_flags);
1799 ARGBBlur(src_argb_a + off, kStride, 1787 ARGBBlur(src_argb_a + off, kStride,
1800 dst_argb_c, kStride, 1788 dst_argb_c, kStride,
1801 reinterpret_cast<int32*>(dst_cumsum), width * 4, 1789 reinterpret_cast<int32*>(dst_cumsum), width * 4,
1802 width, invert * height, radius); 1790 width, invert * height, radius);
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
2098 free_aligned_buffer_64(orig_pixels); 2086 free_aligned_buffer_64(orig_pixels);
2099 } 2087 }
2100 2088
2101 static int TestARGBRect(int width, int height, int benchmark_iterations, 2089 static int TestARGBRect(int width, int height, int benchmark_iterations,
2102 int disable_cpu_flags, int invert, int off, int bpp) { 2090 int disable_cpu_flags, int invert, int off, int bpp) {
2103 if (width < 1) { 2091 if (width < 1) {
2104 width = 1; 2092 width = 1;
2105 } 2093 }
2106 const int kStride = width * bpp; 2094 const int kStride = width * bpp;
2107 const int kSize = kStride * height; 2095 const int kSize = kStride * height;
2108 const uint32 v32 = random() & (bpp == 4 ? 0xffffffff : 0xff); 2096 const uint32 v32 = fastrand() & (bpp == 4 ? 0xffffffff : 0xff);
2109 2097
2110 align_buffer_64(dst_argb_c, kSize + off); 2098 align_buffer_64(dst_argb_c, kSize + off);
2111 align_buffer_64(dst_argb_opt, kSize + off); 2099 align_buffer_64(dst_argb_opt, kSize + off);
2112 2100
2113 MemRandomize(dst_argb_c + off, kSize); 2101 MemRandomize(dst_argb_c + off, kSize);
2114 memcpy(dst_argb_opt + off, dst_argb_c + off, kSize); 2102 memcpy(dst_argb_opt + off, dst_argb_c + off, kSize);
2115 2103
2116 MaskCpuFlags(disable_cpu_flags); 2104 MaskCpuFlags(disable_cpu_flags);
2117 if (bpp == 4) { 2105 if (bpp == 4) {
2118 ARGBRect(dst_argb_c + off, kStride, 0, 0, width, invert * height, v32); 2106 ARGBRect(dst_argb_c + off, kStride, 0, 0, width, invert * height, v32);
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
2192 } 2180 }
2193 2181
2194 TEST_F(libyuvTest, SetPlane_Opt) { 2182 TEST_F(libyuvTest, SetPlane_Opt) {
2195 int max_diff = TestARGBRect(benchmark_width_, benchmark_height_, 2183 int max_diff = TestARGBRect(benchmark_width_, benchmark_height_,
2196 benchmark_iterations_, disable_cpu_flags_, 2184 benchmark_iterations_, disable_cpu_flags_,
2197 +1, 0, 1); 2185 +1, 0, 1);
2198 EXPECT_EQ(0, max_diff); 2186 EXPECT_EQ(0, max_diff);
2199 } 2187 }
2200 2188
2201 } // namespace libyuv 2189 } // namespace libyuv
OLDNEW
« no previous file with comments | « unit_test/math_test.cc ('k') | unit_test/rotate_argb_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698