Commit 55d5b48e authored by fbarchard@google.com's avatar fbarchard@google.com

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
parent e0b63e44
Name: libyuv
URL: http://code.google.com/p/libyuv/
Version: 483
Version: 484
License: BSD
License File: LICENSE
......
......@@ -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
......@@ -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);
......
......@@ -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_)
......
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