From 55d5b48e4de988e8cde06c5044ce7825ebdc9928 Mon Sep 17 00:00:00 2001 From: "fbarchard@google.com" Date: Tue, 13 Nov 2012 17:31:08 +0000 Subject: [PATCH] bilinear scale use fast 2 pass unless image is beyond row buffer size. BUG=none TEST=none Review URL: https://webrtc-codereview.appspot.com/965020 git-svn-id: http://libyuv.googlecode.com/svn/trunk@484 16f28f9a-4ce2-e073-06de-1de4eb20be90 --- README.chromium | 2 +- include/libyuv/version.h | 2 +- source/scale.cc | 2 +- unit_test/compare_test.cc | 104 -------------------------------------- 4 files changed, 3 insertions(+), 107 deletions(-) diff --git a/README.chromium b/README.chromium index 0e3d2e7ec..5cdc46d1f 100644 --- a/README.chromium +++ b/README.chromium @@ -1,6 +1,6 @@ Name: libyuv URL: http://code.google.com/p/libyuv/ -Version: 483 +Version: 484 License: BSD License File: LICENSE diff --git a/include/libyuv/version.h b/include/libyuv/version.h index 1b17be05c..ada6ed220 100644 --- a/include/libyuv/version.h +++ b/include/libyuv/version.h @@ -11,6 +11,6 @@ #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT #define INCLUDE_LIBYUV_VERSION_H_ -#define LIBYUV_VERSION 483 +#define LIBYUV_VERSION 484 #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT diff --git a/source/scale.cc b/source/scale.cc index 1793b6f19..664851d5b 100644 --- a/source/scale.cc +++ b/source/scale.cc @@ -2799,7 +2799,7 @@ void ScalePlaneBilinear(int src_width, int src_height, const uint8* src_ptr, uint8* dst_ptr) { assert(dst_width > 0); assert(dst_height > 0); - if (!IS_ALIGNED(src_width, 8) || (src_width > kMaxInputWidth)) { + if (src_width > kMaxInputWidth) { ScalePlaneBilinearSimple(src_width, src_height, dst_width, dst_height, src_stride, dst_stride, src_ptr, dst_ptr); diff --git a/unit_test/compare_test.cc b/unit_test/compare_test.cc index 52d76879a..bbb5a8949 100644 --- a/unit_test/compare_test.cc +++ b/unit_test/compare_test.cc @@ -30,23 +30,6 @@ static uint32 ReferenceHashDjb2(const uint8* src, uint64 count, uint32 seed) { return hash; } -TEST_F(libyuvTest, BenchmakDjb2_C) { - const int kMaxTest = benchmark_width_ * benchmark_height_; - align_buffer_16(src_a, kMaxTest) - for (int i = 0; i < kMaxTest; ++i) { - src_a[i] = i; - } - uint32 h2 = ReferenceHashDjb2(src_a, kMaxTest, 5381); - uint32 h1; - MaskCpuFlags(0); - for (int i = 0; i < benchmark_iterations_; ++i) { - h1 = HashDjb2(src_a, kMaxTest, 5381); - } - MaskCpuFlags(-1); - EXPECT_EQ(h1, h2); - free_aligned_buffer_16(src_a) -} - TEST_F(libyuvTest, BenchmakDjb2_OPT) { const int kMaxTest = benchmark_width_ * benchmark_height_; align_buffer_16(src_a, kMaxTest) @@ -78,39 +61,6 @@ TEST_F(libyuvTest, BenchmakDjb2_Unaligned_OPT) { free_aligned_buffer_16(src_a) } -TEST_F(libyuvTest, BenchmarkSumSquareError_C) { - const int kMaxWidth = 4096 * 3; - align_buffer_16(src_a, kMaxWidth) - align_buffer_16(src_b, kMaxWidth) - memset(src_a, 0, kMaxWidth); - memset(src_b, 0, kMaxWidth); - - MaskCpuFlags(0); - memcpy(src_a, "test0123test4567", 16); - memcpy(src_b, "tick0123tock4567", 16); - uint64 h1 = ComputeSumSquareError(src_a, src_b, 16); - EXPECT_EQ(790u, h1); - - for (int i = 0; i < kMaxWidth; ++i) { - src_a[i] = i; - src_b[i] = i; - } - memset(src_a, 0, kMaxWidth); - memset(src_b, 0, kMaxWidth); - - int count = benchmark_iterations_ * - (benchmark_width_ * benchmark_height_ + kMaxWidth - 1) / kMaxWidth; - for (int i = 0; i < count; ++i) { - h1 = ComputeSumSquareError(src_a, src_b, kMaxWidth); - } - - MaskCpuFlags(-1); - EXPECT_EQ(0, h1); - - free_aligned_buffer_16(src_a) - free_aligned_buffer_16(src_b) -} - TEST_F(libyuvTest, BenchmarkSumSquareError_OPT) { const int kMaxWidth = 4096 * 3; align_buffer_16(src_a, kMaxWidth) @@ -184,33 +134,6 @@ TEST_F(libyuvTest, SumSquareError) { free_aligned_buffer_16(src_b) } -TEST_F(libyuvTest, BenchmarkPsnr_C) { - align_buffer_16(src_a, benchmark_width_ * benchmark_height_) - align_buffer_16(src_b, benchmark_width_ * benchmark_height_) - for (int i = 0; i < benchmark_width_ * benchmark_height_; ++i) { - src_a[i] = i; - src_b[i] = i; - } - - MaskCpuFlags(0); - - double c_time = get_time(); - for (int i = 0; i < benchmark_iterations_; ++i) - CalcFramePsnr(src_a, benchmark_width_, - src_b, benchmark_width_, - benchmark_width_, benchmark_height_); - - c_time = (get_time() - c_time) / benchmark_iterations_; - printf("BenchmarkPsnr_C - %8.2f us c\n", c_time * 1e6); - - MaskCpuFlags(-1); - - EXPECT_EQ(0, 0); - - free_aligned_buffer_16(src_a) - free_aligned_buffer_16(src_b) -} - TEST_F(libyuvTest, BenchmarkPsnr_OPT) { align_buffer_16(src_a, benchmark_width_ * benchmark_height_) align_buffer_16(src_b, benchmark_width_ * benchmark_height_) @@ -313,33 +236,6 @@ TEST_F(libyuvTest, Psnr) { free_aligned_buffer_16(src_b) } -TEST_F(libyuvTest, BenchmarkSsim_C) { - align_buffer_16(src_a, benchmark_width_ * benchmark_height_) - align_buffer_16(src_b, benchmark_width_ * benchmark_height_) - for (int i = 0; i < benchmark_width_ * benchmark_height_; ++i) { - src_a[i] = i; - src_b[i] = i; - } - - MaskCpuFlags(0); - - double c_time = get_time(); - for (int i = 0; i < benchmark_iterations_; ++i) - CalcFrameSsim(src_a, benchmark_width_, - src_b, benchmark_width_, - benchmark_width_, benchmark_height_); - - c_time = (get_time() - c_time) / benchmark_iterations_; - printf("BenchmarkSsim_C - %8.2f us c\n", c_time * 1e6); - - MaskCpuFlags(-1); - - EXPECT_EQ(0, 0); // Pass if we get this far. - - free_aligned_buffer_16(src_a) - free_aligned_buffer_16(src_b) -} - TEST_F(libyuvTest, BenchmarkSsim_OPT) { align_buffer_16(src_a, benchmark_width_ * benchmark_height_) align_buffer_16(src_b, benchmark_width_ * benchmark_height_)