Commit d3728d92 authored by fbarchard@google.com's avatar fbarchard@google.com

unittest simplify loop counter

BUG=none
TEST=planar unittests
Review URL: https://webrtc-codereview.appspot.com/935006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@443 16f28f9a-4ce2-e073-06de-1de4eb20be90
parent bd4fcb98
...@@ -27,7 +27,7 @@ LOCAL_SRC_FILES := \ ...@@ -27,7 +27,7 @@ LOCAL_SRC_FILES := \
source/video_common.cc \ source/video_common.cc \
# TODO(fbarchard): Enable mjpeg encoder. # TODO(fbarchard): Enable mjpeg encoder.
# source/mjpeg_decoder.cc # source/mjpeg_decoder.cc
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
LOCAL_CFLAGS += -DLIBYUV_NEON LOCAL_CFLAGS += -DLIBYUV_NEON
......
Name: libyuv Name: libyuv
URL: http://code.google.com/p/libyuv/ URL: http://code.google.com/p/libyuv/
Version: 442 Version: 443
License: BSD License: BSD
License File: LICENSE License File: LICENSE
......
...@@ -11,6 +11,6 @@ ...@@ -11,6 +11,6 @@
#ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT
#define INCLUDE_LIBYUV_VERSION_H_ #define INCLUDE_LIBYUV_VERSION_H_
#define LIBYUV_VERSION 442 #define LIBYUV_VERSION 443
#endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT
...@@ -756,7 +756,7 @@ TESTATOBRANDOM(ARGB, 4, 4, RGB565, 2, 2, 0) ...@@ -756,7 +756,7 @@ TESTATOBRANDOM(ARGB, 4, 4, RGB565, 2, 2, 0)
TESTATOBRANDOM(ARGB, 4, 4, ARGB1555, 2, 2, 0) TESTATOBRANDOM(ARGB, 4, 4, ARGB1555, 2, 2, 0)
TESTATOBRANDOM(ARGB, 4, 4, ARGB4444, 2, 2, 0) TESTATOBRANDOM(ARGB, 4, 4, ARGB4444, 2, 2, 0)
TESTATOBRANDOM(ARGB, 4, 4, I400, 1, 1, 2) TESTATOBRANDOM(ARGB, 4, 4, I400, 1, 1, 2)
// TODO(fbarchard, 0): Implement YUY2 // TODO(fbarchard): Implement YUY2
// TESTATOBRANDOM(ARGB, 4, 4, YUY2, 4, 2, 0) // TESTATOBRANDOM(ARGB, 4, 4, YUY2, 4, 2, 0)
// TESTATOBRANDOM(ARGB, 4, 4, UYVY, 4, 2, 0) // TESTATOBRANDOM(ARGB, 4, 4, UYVY, 4, 2, 0)
TESTATOBRANDOM(BGRA, 4, 4, ARGB, 4, 4, 0) TESTATOBRANDOM(BGRA, 4, 4, ARGB, 4, 4, 0)
......
...@@ -80,9 +80,7 @@ TEST_F(libyuvTest, TestAttenuate) { ...@@ -80,9 +80,7 @@ TEST_F(libyuvTest, TestAttenuate) {
} }
ARGBAttenuate(&orig_pixels[0][0], 0, &atten_pixels[0][0], 0, 256, 1); ARGBAttenuate(&orig_pixels[0][0], 0, &atten_pixels[0][0], 0, 256, 1);
ARGBUnattenuate(&atten_pixels[0][0], 0, &unatten_pixels[0][0], 0, 256, 1); ARGBUnattenuate(&atten_pixels[0][0], 0, &unatten_pixels[0][0], 0, 256, 1);
const int count = benchmark_iterations_ * for (int i = 0; i < benchmark_pixels_div256_; ++i) {
benchmark_width_ * benchmark_height_ / 256;
for (int i = 0; i < count; ++i) {
ARGBAttenuate(&unatten_pixels[0][0], 0, &atten2_pixels[0][0], 0, 256, 1); ARGBAttenuate(&unatten_pixels[0][0], 0, &atten2_pixels[0][0], 0, 256, 1);
} }
for (int i = 0; i < 256; ++i) { for (int i = 0; i < 256; ++i) {
...@@ -181,9 +179,7 @@ TEST_F(libyuvTest, TestARGBGray) { ...@@ -181,9 +179,7 @@ TEST_F(libyuvTest, TestARGBGray) {
orig_pixels[i][2] = i / 3; orig_pixels[i][2] = i / 3;
orig_pixels[i][3] = i; orig_pixels[i][3] = i;
} }
const int count = benchmark_iterations_ * for (int i = 0; i < benchmark_pixels_div256_; ++i) {
benchmark_width_ * benchmark_height_ / 256;
for (int i = 0; i < count; ++i) {
ARGBGray(&orig_pixels[0][0], 0, 0, 0, 256, 1); ARGBGray(&orig_pixels[0][0], 0, 0, 0, 256, 1);
} }
} }
...@@ -237,10 +233,7 @@ TEST_F(libyuvTest, TestARGBGrayTo) { ...@@ -237,10 +233,7 @@ TEST_F(libyuvTest, TestARGBGrayTo) {
orig_pixels[i][2] = i / 3; orig_pixels[i][2] = i / 3;
orig_pixels[i][3] = i; orig_pixels[i][3] = i;
} }
for (int i = 0; i < benchmark_pixels_div256_; ++i) {
const int count = benchmark_iterations_ *
benchmark_width_ * benchmark_height_ / 256;
for (int i = 0; i < count; ++i) {
ARGBGrayTo(&orig_pixels[0][0], 0, &gray_pixels[0][0], 0, 256, 1); ARGBGrayTo(&orig_pixels[0][0], 0, &gray_pixels[0][0], 0, 256, 1);
} }
} }
...@@ -293,10 +286,7 @@ TEST_F(libyuvTest, TestARGBSepia) { ...@@ -293,10 +286,7 @@ TEST_F(libyuvTest, TestARGBSepia) {
orig_pixels[i][2] = i / 3; orig_pixels[i][2] = i / 3;
orig_pixels[i][3] = i; orig_pixels[i][3] = i;
} }
for (int i = 0; i < benchmark_pixels_div256_; ++i) {
const int count = benchmark_iterations_ *
benchmark_width_ * benchmark_height_ / 256;
for (int i = 0; i < count; ++i) {
ARGBSepia(&orig_pixels[0][0], 0, 0, 0, 256, 1); ARGBSepia(&orig_pixels[0][0], 0, 0, 0, 256, 1);
} }
} }
...@@ -356,10 +346,7 @@ TEST_F(libyuvTest, TestARGBColorMatrix) { ...@@ -356,10 +346,7 @@ TEST_F(libyuvTest, TestARGBColorMatrix) {
orig_pixels[i][2] = i / 3; orig_pixels[i][2] = i / 3;
orig_pixels[i][3] = i; orig_pixels[i][3] = i;
} }
for (int i = 0; i < benchmark_pixels_div256_; ++i) {
const int count = benchmark_iterations_ *
benchmark_width_ * benchmark_height_ / 256;
for (int i = 0; i < count; ++i) {
ARGBColorMatrix(&orig_pixels[0][0], 0, &kARGBToSepia[0], 0, 0, 256, 1); ARGBColorMatrix(&orig_pixels[0][0], 0, &kARGBToSepia[0], 0, 0, 256, 1);
} }
} }
...@@ -417,10 +404,7 @@ TEST_F(libyuvTest, TestARGBColorTable) { ...@@ -417,10 +404,7 @@ TEST_F(libyuvTest, TestARGBColorTable) {
orig_pixels[i][2] = i / 3; orig_pixels[i][2] = i / 3;
orig_pixels[i][3] = i; orig_pixels[i][3] = i;
} }
for (int i = 0; i < benchmark_pixels_div256_; ++i) {
const int count = benchmark_iterations_ *
benchmark_width_ * benchmark_height_ / 256;
for (int i = 0; i < count; ++i) {
ARGBColorTable(&orig_pixels[0][0], 0, &kARGBTable[0], 0, 0, 256, 1); ARGBColorTable(&orig_pixels[0][0], 0, &kARGBTable[0], 0, 0, 256, 1);
} }
} }
...@@ -443,9 +427,7 @@ TEST_F(libyuvTest, TestARGBQuantize) { ...@@ -443,9 +427,7 @@ TEST_F(libyuvTest, TestARGBQuantize) {
EXPECT_EQ(i / 3 / 8 * 8 + 8 / 2, orig_pixels[i][2]); EXPECT_EQ(i / 3 / 8 * 8 + 8 / 2, orig_pixels[i][2]);
EXPECT_EQ(i, orig_pixels[i][3]); EXPECT_EQ(i, orig_pixels[i][3]);
} }
const int count = benchmark_iterations_ * for (int i = 0; i < benchmark_pixels_div256_; ++i) {
benchmark_width_ * benchmark_height_ / 256;
for (int i = 0; i < count; ++i) {
ARGBQuantize(&orig_pixels[0][0], 0, ARGBQuantize(&orig_pixels[0][0], 0,
(65536 + (8 / 2)) / 8, 8, 8 / 2, 0, 0, 256, 1); (65536 + (8 / 2)) / 8, 8, 8 / 2, 0, 0, 256, 1);
} }
...@@ -469,9 +451,7 @@ TEST_F(libyuvTest, TestARGBMirror) { ...@@ -469,9 +451,7 @@ TEST_F(libyuvTest, TestARGBMirror) {
EXPECT_EQ(i / 3, dst_pixels[255 - i][2]); EXPECT_EQ(i / 3, dst_pixels[255 - i][2]);
EXPECT_EQ(i / 4, dst_pixels[255 - i][3]); EXPECT_EQ(i / 4, dst_pixels[255 - i][3]);
} }
const int count = benchmark_iterations_ * for (int i = 0; i < benchmark_pixels_div256_; ++i) {
benchmark_width_ * benchmark_height_ / 256;
for (int i = 0; i < count; ++i) {
ARGBMirror(&orig_pixels[0][0], 0, &dst_pixels[0][0], 0, 256, 1); ARGBMirror(&orig_pixels[0][0], 0, &dst_pixels[0][0], 0, 256, 1);
} }
} }
...@@ -520,9 +500,7 @@ TEST_F(libyuvTest, TestShade) { ...@@ -520,9 +500,7 @@ TEST_F(libyuvTest, TestShade) {
EXPECT_EQ(20u, shade_pixels[0][2]); EXPECT_EQ(20u, shade_pixels[0][2]);
EXPECT_EQ(40u, shade_pixels[0][3]); EXPECT_EQ(40u, shade_pixels[0][3]);
const int count = benchmark_iterations_ * for (int i = 0; i < benchmark_pixels_div256_; ++i) {
benchmark_width_ * benchmark_height_ / 256;
for (int i = 0; i < count; ++i) {
ARGBShade(&orig_pixels[0][0], 0, &shade_pixels[0][0], 0, 256, 1, ARGBShade(&orig_pixels[0][0], 0, &shade_pixels[0][0], 0, 256, 1,
0x80808080); 0x80808080);
} }
...@@ -601,9 +579,7 @@ TEST_F(libyuvTest, TestInterpolate) { ...@@ -601,9 +579,7 @@ TEST_F(libyuvTest, TestInterpolate) {
EXPECT_EQ(16u, interpolate_pixels[0][2]); EXPECT_EQ(16u, interpolate_pixels[0][2]);
EXPECT_EQ(32u, interpolate_pixels[0][3]); EXPECT_EQ(32u, interpolate_pixels[0][3]);
const int count = benchmark_iterations_ * for (int i = 0; i < benchmark_pixels_div256_; ++i) {
benchmark_width_ * benchmark_height_ / 256;
for (int i = 0; i < count; ++i) {
ARGBInterpolate(&orig_pixels_0[0][0], 0, &orig_pixels_1[0][0], 0, ARGBInterpolate(&orig_pixels_0[0][0], 0, &orig_pixels_1[0][0], 0,
&interpolate_pixels[0][0], 0, 256, 1, 128); &interpolate_pixels[0][0], 0, 256, 1, 128);
} }
...@@ -639,17 +615,13 @@ TEST_F(libyuvTest, TestAffine) { ...@@ -639,17 +615,13 @@ TEST_F(libyuvTest, TestAffine) {
#if defined(HAS_ARGBAFFINEROW_SSE2) #if defined(HAS_ARGBAFFINEROW_SSE2)
int has_sse2 = TestCpuFlag(kCpuHasSSE2); int has_sse2 = TestCpuFlag(kCpuHasSSE2);
if (has_sse2) { if (has_sse2) {
const int count = benchmark_iterations_ * for (int i = 0; i < benchmark_pixels_div256_; ++i) {
benchmark_width_ * benchmark_height_ / 256;
for (int i = 0; i < count; ++i) {
ARGBAffineRow_SSE2(&orig_pixels_0[0][0], 0, &interpolate_pixels_Opt[0][0], ARGBAffineRow_SSE2(&orig_pixels_0[0][0], 0, &interpolate_pixels_Opt[0][0],
uv_step, 256); uv_step, 256);
} }
} else { } else {
#endif #endif
const int count = benchmark_iterations_ * for (int i = 0; i < benchmark_pixels_div256_; ++i) {
benchmark_width_ * benchmark_height_ / 256;
for (int i = 0; i < count; ++i) {
ARGBAffineRow_C(&orig_pixels_0[0][0], 0, &interpolate_pixels_C[0][0], ARGBAffineRow_C(&orig_pixels_0[0][0], 0, &interpolate_pixels_C[0][0],
uv_step, 256); uv_step, 256);
} }
......
...@@ -39,6 +39,8 @@ libyuvTest::libyuvTest() : rotate_max_w_(128), rotate_max_h_(128), ...@@ -39,6 +39,8 @@ libyuvTest::libyuvTest() : rotate_max_w_(128), rotate_max_h_(128),
if (height) { if (height) {
benchmark_height_ = atoi(height); // NOLINT benchmark_height_ = atoi(height); // NOLINT
} }
benchmark_pixels_div256_ = (benchmark_iterations_ * benchmark_width_ *
benchmark_height_ + 255) / 256;
} }
int main(int argc, char** argv) { int main(int argc, char** argv) {
......
...@@ -69,6 +69,7 @@ class libyuvTest : public ::testing::Test { ...@@ -69,6 +69,7 @@ class libyuvTest : public ::testing::Test {
int benchmark_iterations_; // Default 1. Use 1000 for benchmarking. int benchmark_iterations_; // Default 1. Use 1000 for benchmarking.
int benchmark_width_; // Default 1280. Use 640 for benchmarking VGA. int benchmark_width_; // Default 1280. Use 640 for benchmarking VGA.
int benchmark_height_; // Default 720. Use 360 for benchmarking VGA. int benchmark_height_; // Default 720. Use 360 for benchmarking VGA.
int benchmark_pixels_div256_; // Total pixels to benchmark / 256.
}; };
#endif // UNIT_TEST_UNIT_TEST_H_ #endif // UNIT_TEST_UNIT_TEST_H_
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment