mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2026-04-30 19:09:18 +08:00
Disable slow and redundant scaling tests
- Filter None and Filter Linear disabled - Filter Box disabled in UV and ARGB scaling - Tests are only disabled if DISABLE_SLOW_TESTS macro is set. Bug: b/197551385 Change-Id: If0a357541412dc762e61c98ef0d80a2c86292177 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3194126 Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
This commit is contained in:
parent
b9bd1b5537
commit
d13d9d5972
@ -1,6 +1,6 @@
|
||||
Name: libyuv
|
||||
URL: http://code.google.com/p/libyuv/
|
||||
Version: 1793
|
||||
Version: 1794
|
||||
License: BSD
|
||||
License File: LICENSE
|
||||
|
||||
|
||||
@ -11,6 +11,6 @@
|
||||
#ifndef INCLUDE_LIBYUV_VERSION_H_
|
||||
#define INCLUDE_LIBYUV_VERSION_H_
|
||||
|
||||
#define LIBYUV_VERSION 1793
|
||||
#define LIBYUV_VERSION 1794
|
||||
|
||||
#endif // INCLUDE_LIBYUV_VERSION_H_
|
||||
@ -22,6 +22,12 @@ namespace libyuv {
|
||||
#define STRINGIZE(line) #line
|
||||
#define FILELINESTR(file, line) file ":" STRINGIZE(line)
|
||||
|
||||
#if !defined(DISABLE_SLOW_TESTS) || defined(__x86_64__) || defined(__i386__)
|
||||
// SLOW TESTS are those that are unoptimized C code.
|
||||
// FULL TESTS are optimized but test many variations of the same code.
|
||||
#define ENABLE_FULL_TESTS
|
||||
#endif
|
||||
|
||||
// Test scaling with C vs Opt and return maximum pixel difference. 0 = exact.
|
||||
static int ARGBTestFilter(int src_width,
|
||||
int src_height,
|
||||
@ -252,22 +258,29 @@ static int ARGBClipTestFilter(int src_width,
|
||||
// Test a scale factor with all 4 filters. Expect unfiltered to be exact, but
|
||||
// filtering is different fixed point implementations for SSSE3, Neon and C.
|
||||
#ifndef DISABLE_SLOW_TESTS
|
||||
#define TEST_FACTOR(name, nom, denom) \
|
||||
#define TEST_FACTOR(name, nom, denom) \
|
||||
TEST_FACTOR1(, name, None, nom, denom, 0) \
|
||||
TEST_FACTOR1(, name, Linear, nom, denom, 3) \
|
||||
TEST_FACTOR1(, name, Bilinear, nom, denom, 3) \
|
||||
TEST_FACTOR1(, name, Box, nom, denom, 3)
|
||||
#else
|
||||
#define TEST_FACTOR(name, nom, denom) \
|
||||
#if defined(ENABLE_FULL_TESTS)
|
||||
#define TEST_FACTOR(name, nom, denom) \
|
||||
TEST_FACTOR1(DISABLED_, name, None, nom, denom, 0) \
|
||||
TEST_FACTOR1(DISABLED_, name, Linear, nom, denom, 3) \
|
||||
TEST_FACTOR1(DISABLED_, name, Bilinear, nom, denom, 3) \
|
||||
TEST_FACTOR1(DISABLED_, name, Box, nom, denom, 3)
|
||||
#else
|
||||
#define TEST_FACTOR(name, nom, denom) \
|
||||
TEST_FACTOR1(DISABLED_, name, Bilinear, nom, denom, 3)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
TEST_FACTOR(2, 1, 2)
|
||||
TEST_FACTOR(4, 1, 4)
|
||||
// TEST_FACTOR(8, 1, 8) Disable for benchmark performance.
|
||||
#ifndef DISABLE_SLOW_TESTS
|
||||
TEST_FACTOR(8, 1, 8)
|
||||
#endif
|
||||
TEST_FACTOR(3by4, 3, 4)
|
||||
TEST_FACTOR(3by8, 3, 8)
|
||||
TEST_FACTOR(3, 1, 3)
|
||||
@ -305,22 +318,26 @@ TEST_FACTOR(3, 1, 3)
|
||||
EXPECT_LE(diff, max_diff); \
|
||||
}
|
||||
|
||||
/// Test scale to a specified size with all 4 filters.
|
||||
#ifndef DISABLE_SLOW_TESTS
|
||||
#define TEST_SCALETO(name, width, height) \
|
||||
TEST_SCALETO1(, name, width, height, None, 0) \
|
||||
TEST_SCALETO1(, name, width, height, Linear, 3) \
|
||||
// Test scale to a specified size with all 4 filters.
|
||||
#define TEST_SCALETO(name, width, height) \
|
||||
TEST_SCALETO1(, name, width, height, None, 0) \
|
||||
TEST_SCALETO1(, name, width, height, Linear, 3) \
|
||||
TEST_SCALETO1(, name, width, height, Bilinear, 3)
|
||||
#else
|
||||
#define TEST_SCALETO(name, width, height) \
|
||||
TEST_SCALETO1(DISABLED_, name, width, height, None, 0) \
|
||||
TEST_SCALETO1(DISABLED_, name, width, height, Linear, 3) \
|
||||
#if defined(ENABLE_FULL_TESTS)
|
||||
#define TEST_SCALETO(name, width, height) \
|
||||
TEST_SCALETO1(DISABLED_, name, width, height, None, 0) \
|
||||
TEST_SCALETO1(DISABLED_, name, width, height, Linear, 3) \
|
||||
TEST_SCALETO1(DISABLED_, name, width, height, Bilinear, 3)
|
||||
#else
|
||||
#define TEST_SCALETO(name, width, height) \
|
||||
TEST_SCALETO1(DISABLED_, name, width, height, Bilinear, 3)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
TEST_SCALETO(ARGBScale, 1, 1)
|
||||
// TODO(https://bugs.chromium.org/p/libyuv/issues/detail?id=905): Investigate.
|
||||
// TEST_SCALETO(ARGBScale, 256, 144) /* 128x72 * 2 */
|
||||
//TEST_SCALETO(ARGBScale, 256, 144) /* 128x72 * 2 */
|
||||
TEST_SCALETO(ARGBScale, 320, 240)
|
||||
TEST_SCALETO(ARGBScale, 569, 480)
|
||||
TEST_SCALETO(ARGBScale, 640, 360)
|
||||
@ -328,7 +345,6 @@ TEST_SCALETO(ARGBScale, 640, 360)
|
||||
TEST_SCALETO(ARGBScale, 1280, 720)
|
||||
TEST_SCALETO(ARGBScale, 1920, 1080)
|
||||
#endif // DISABLE_SLOW_TESTS
|
||||
|
||||
#undef TEST_SCALETO1
|
||||
#undef TEST_SCALETO
|
||||
|
||||
@ -341,10 +357,14 @@ TEST_SCALETO(ARGBScale, 1920, 1080)
|
||||
EXPECT_LE(diff, max_diff); \
|
||||
}
|
||||
|
||||
#if defined(ENABLE_FULL_TESTS)
|
||||
// Test scale with swapped width and height with all 3 filters.
|
||||
TEST_SCALESWAPXY1(ARGBScale, None, 0)
|
||||
TEST_SCALESWAPXY1(ARGBScale, Linear, 0)
|
||||
TEST_SCALESWAPXY1(ARGBScale, Bilinear, 0)
|
||||
#else
|
||||
TEST_SCALESWAPXY1(ARGBScale, Bilinear, 0)
|
||||
#endif
|
||||
#undef TEST_SCALESWAPXY1
|
||||
|
||||
// Scale with YUV conversion to ARGB and clipping.
|
||||
|
||||
@ -22,6 +22,12 @@
|
||||
#define STRINGIZE(line) #line
|
||||
#define FILELINESTR(file, line) file ":" STRINGIZE(line)
|
||||
|
||||
#if !defined(DISABLE_SLOW_TESTS) || defined(__x86_64__) || defined(__i386__)
|
||||
// SLOW TESTS are those that are unoptimized C code.
|
||||
// FULL TESTS are optimized but test many variations of the same code.
|
||||
#define ENABLE_FULL_TESTS
|
||||
#endif
|
||||
|
||||
namespace libyuv {
|
||||
|
||||
// Test scaling with C vs Opt and return maximum pixel difference. 0 = exact.
|
||||
@ -889,16 +895,24 @@ static int NV12TestFilter(int src_width,
|
||||
TEST_FACTOR1(, name, Bilinear, nom, denom, 3) \
|
||||
TEST_FACTOR1(, name, Box, nom, denom, boxdiff)
|
||||
#else
|
||||
#if defined(ENABLE_FULL_TESTS)
|
||||
#define TEST_FACTOR(name, nom, denom, boxdiff) \
|
||||
TEST_FACTOR1(DISABLED_, name, None, nom, denom, 0) \
|
||||
TEST_FACTOR1(DISABLED_, name, Linear, nom, denom, 3) \
|
||||
TEST_FACTOR1(DISABLED_, name, Bilinear, nom, denom, 3) \
|
||||
TEST_FACTOR1(DISABLED_, name, Box, nom, denom, boxdiff)
|
||||
#else
|
||||
#define TEST_FACTOR(name, nom, denom, boxdiff) \
|
||||
TEST_FACTOR1(DISABLED_, name, Bilinear, nom, denom, 3) \
|
||||
TEST_FACTOR1(DISABLED_, name, Box, nom, denom, boxdiff)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
TEST_FACTOR(2, 1, 2, 0)
|
||||
TEST_FACTOR(4, 1, 4, 0)
|
||||
// TEST_FACTOR(8, 1, 8, 0) Disable for benchmark performance. Takes 90 seconds.
|
||||
#ifndef DISABLE_SLOW_TESTS
|
||||
TEST_FACTOR(8, 1, 8, 0)
|
||||
#endif
|
||||
TEST_FACTOR(3by4, 3, 4, 1)
|
||||
TEST_FACTOR(3by8, 3, 8, 1)
|
||||
TEST_FACTOR(3, 1, 3, 0)
|
||||
@ -1016,17 +1030,21 @@ TEST_FACTOR(3, 1, 3, 0)
|
||||
TEST_SCALETO1(, name, width, height, Bilinear, 3) \
|
||||
TEST_SCALETO1(, name, width, height, Box, 3)
|
||||
#else
|
||||
// Test scale to a specified size with all 4 filters.
|
||||
#if defined(ENABLE_FULL_TESTS)
|
||||
#define TEST_SCALETO(name, width, height) \
|
||||
TEST_SCALETO1(DISABLED_, name, width, height, None, 0) \
|
||||
TEST_SCALETO1(DISABLED_, name, width, height, Linear, 3) \
|
||||
TEST_SCALETO1(DISABLED_, name, width, height, Bilinear, 3) \
|
||||
TEST_SCALETO1(DISABLED_, name, width, height, Box, 3)
|
||||
#else
|
||||
#define TEST_SCALETO(name, width, height) \
|
||||
TEST_SCALETO1(DISABLED_, name, width, height, Bilinear, 3) \
|
||||
TEST_SCALETO1(DISABLED_, name, width, height, Box, 3)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
TEST_SCALETO(Scale, 1, 1)
|
||||
// TODO(https://bugs.chromium.org/p/libyuv/issues/detail?id=905): Investigate.
|
||||
// TEST_SCALETO(Scale, 256, 144) /* 128x72 * 2 */
|
||||
//TEST_SCALETO(Scale, 256, 144) /* 128x72 * 2 */
|
||||
TEST_SCALETO(Scale, 320, 240)
|
||||
TEST_SCALETO(Scale, 569, 480)
|
||||
TEST_SCALETO(Scale, 640, 360)
|
||||
@ -1034,7 +1052,6 @@ TEST_SCALETO(Scale, 640, 360)
|
||||
TEST_SCALETO(Scale, 1280, 720)
|
||||
TEST_SCALETO(Scale, 1920, 1080)
|
||||
#endif // DISABLE_SLOW_TESTS
|
||||
|
||||
#undef TEST_SCALETO1
|
||||
#undef TEST_SCALETO
|
||||
|
||||
@ -1096,10 +1113,15 @@ TEST_SCALESWAPXY1(, Scale, Linear, 3)
|
||||
TEST_SCALESWAPXY1(, Scale, Bilinear, 3)
|
||||
TEST_SCALESWAPXY1(, Scale, Box, 3)
|
||||
#else
|
||||
#if defined(ENABLE_FULL_TESTS)
|
||||
TEST_SCALESWAPXY1(DISABLED_, Scale, None, 0)
|
||||
TEST_SCALESWAPXY1(DISABLED_, Scale, Linear, 3)
|
||||
TEST_SCALESWAPXY1(DISABLED_, Scale, Bilinear, 3)
|
||||
TEST_SCALESWAPXY1(DISABLED_, Scale, Box, 3)
|
||||
#else
|
||||
TEST_SCALESWAPXY1(DISABLED_, Scale, Bilinear, 3)
|
||||
TEST_SCALESWAPXY1(DISABLED_, Scale, Box, 3)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#undef TEST_SCALESWAPXY1
|
||||
|
||||
@ -20,6 +20,12 @@ namespace libyuv {
|
||||
#define STRINGIZE(line) #line
|
||||
#define FILELINESTR(file, line) file ":" STRINGIZE(line)
|
||||
|
||||
#if !defined(DISABLE_SLOW_TESTS) || defined(__x86_64__) || defined(__i386__)
|
||||
// SLOW TESTS are those that are unoptimized C code.
|
||||
// FULL TESTS are optimized but test many variations of the same code.
|
||||
#define ENABLE_FULL_TESTS
|
||||
#endif
|
||||
|
||||
// Test scaling with C vs Opt and return maximum pixel difference. 0 = exact.
|
||||
static int UVTestFilter(int src_width,
|
||||
int src_height,
|
||||
@ -125,6 +131,7 @@ static int UVTestFilter(int src_width,
|
||||
EXPECT_LE(diff, max_diff); \
|
||||
}
|
||||
|
||||
#if defined(ENABLE_FULL_TESTS)
|
||||
// Test a scale factor with all 4 filters. Expect unfiltered to be exact, but
|
||||
// filtering is different fixed point implementations for SSSE3, Neon and C.
|
||||
#define TEST_FACTOR(name, nom, denom) \
|
||||
@ -132,6 +139,11 @@ static int UVTestFilter(int src_width,
|
||||
TEST_FACTOR1(name, Linear, nom, denom, 3) \
|
||||
TEST_FACTOR1(name, Bilinear, nom, denom, 3) \
|
||||
TEST_FACTOR1(name, Box, nom, denom, 3)
|
||||
#else
|
||||
// Test a scale factor with Bilinear.
|
||||
#define TEST_FACTOR(name, nom, denom) \
|
||||
TEST_FACTOR1(name, Bilinear, nom, denom, 3)
|
||||
#endif
|
||||
|
||||
TEST_FACTOR(2, 1, 2)
|
||||
TEST_FACTOR(4, 1, 4)
|
||||
@ -159,15 +171,19 @@ TEST_FACTOR(3, 1, 3)
|
||||
EXPECT_LE(diff, max_diff); \
|
||||
}
|
||||
|
||||
#if defined(ENABLE_FULL_TESTS)
|
||||
/// Test scale to a specified size with all 4 filters.
|
||||
#define TEST_SCALETO(name, width, height) \
|
||||
TEST_SCALETO1(name, width, height, None, 0) \
|
||||
TEST_SCALETO1(name, width, height, Linear, 3) \
|
||||
TEST_SCALETO1(name, width, height, Bilinear, 3)
|
||||
#else
|
||||
#define TEST_SCALETO(name, width, height) \
|
||||
TEST_SCALETO1(name, width, height, Bilinear, 3)
|
||||
#endif
|
||||
|
||||
TEST_SCALETO(UVScale, 1, 1)
|
||||
// TODO(https://bugs.chromium.org/p/libyuv/issues/detail?id=905): Investigate.
|
||||
// TEST_SCALETO(UVScale, 256, 144) /* 128x72 * 2 */
|
||||
//TEST_SCALETO(UVScale, 256, 144) /* 128x72 * 2 */
|
||||
TEST_SCALETO(UVScale, 320, 240)
|
||||
TEST_SCALETO(UVScale, 569, 480)
|
||||
TEST_SCALETO(UVScale, 640, 360)
|
||||
@ -175,7 +191,6 @@ TEST_SCALETO(UVScale, 640, 360)
|
||||
TEST_SCALETO(UVScale, 1280, 720)
|
||||
TEST_SCALETO(UVScale, 1920, 1080)
|
||||
#endif // DISABLE_SLOW_TESTS
|
||||
|
||||
#undef TEST_SCALETO1
|
||||
#undef TEST_SCALETO
|
||||
|
||||
@ -188,10 +203,14 @@ TEST_SCALETO(UVScale, 1920, 1080)
|
||||
EXPECT_LE(diff, max_diff); \
|
||||
}
|
||||
|
||||
#if defined(ENABLE_FULL_TESTS)
|
||||
// Test scale with swapped width and height with all 3 filters.
|
||||
TEST_SCALESWAPXY1(UVScale, None, 0)
|
||||
TEST_SCALESWAPXY1(UVScale, Linear, 0)
|
||||
TEST_SCALESWAPXY1(UVScale, Bilinear, 0)
|
||||
#else
|
||||
TEST_SCALESWAPXY1(UVScale, Bilinear, 0)
|
||||
#endif
|
||||
#undef TEST_SCALESWAPXY1
|
||||
|
||||
TEST_F(LibYUVScaleTest, UVTest3x) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user