mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2026-02-06 17:59:50 +08:00
Allow C and ASM to be different for I420 for now.
BUG=324 TESTED=TestI420 R=brucedawson@google.com Review URL: https://webrtc-codereview.appspot.com/39599004 git-svn-id: http://libyuv.googlecode.com/svn/trunk@1239 16f28f9a-4ce2-e073-06de-1de4eb20be90
This commit is contained in:
parent
319f047710
commit
c6b52cb590
@ -1,6 +1,6 @@
|
||||
Name: libyuv
|
||||
URL: http://code.google.com/p/libyuv/
|
||||
Version: 1238
|
||||
Version: 1240
|
||||
License: BSD
|
||||
License File: LICENSE
|
||||
|
||||
|
||||
@ -11,6 +11,6 @@
|
||||
#ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT
|
||||
#define INCLUDE_LIBYUV_VERSION_H_
|
||||
|
||||
#define LIBYUV_VERSION 1238
|
||||
#define LIBYUV_VERSION 1240
|
||||
|
||||
#endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT
|
||||
|
||||
@ -21,7 +21,17 @@
|
||||
|
||||
namespace libyuv {
|
||||
|
||||
#define TESTCS(TESTNAME, YUVTOARGB, ARGBTOYUV, HS1, HS, HN, DIFF) \
|
||||
#ifdef _MSC_VER
|
||||
#define HIGH_ACCURACY 1
|
||||
#endif
|
||||
|
||||
#ifdef HIGH_ACCURACY
|
||||
#define MAX_CDIFF 0
|
||||
#else
|
||||
#define MAX_CDIFF 2
|
||||
#endif
|
||||
|
||||
#define TESTCS(TESTNAME, YUVTOARGB, ARGBTOYUV, HS1, HS, HN, DIFF, CDIFF) \
|
||||
TEST_F(libyuvTest, TESTNAME) { \
|
||||
const int kPixels = benchmark_width_ * benchmark_height_; \
|
||||
const int kHalfPixels = ((benchmark_width_ + 1) / 2) * \
|
||||
@ -91,7 +101,7 @@ TEST_F(libyuvTest, TESTNAME) { \
|
||||
} \
|
||||
/* Test C and SIMD match. */ \
|
||||
for (int i = 0; i < kPixels * 4; ++i) { \
|
||||
EXPECT_EQ(dst_pixels_c[i], dst_pixels_opt[i]); \
|
||||
EXPECT_NEAR(dst_pixels_c[i], dst_pixels_opt[i], CDIFF); \
|
||||
} \
|
||||
/* Test SIMD is close to original. */ \
|
||||
for (int i = 0; i < kPixels * 4; ++i) { \
|
||||
@ -110,10 +120,11 @@ TEST_F(libyuvTest, TESTNAME) { \
|
||||
free_aligned_buffer_64(dst_pixels_c); \
|
||||
} \
|
||||
|
||||
TESTCS(TestI420, I420ToARGB, ARGBToI420, 1, 2, benchmark_width_, 7)
|
||||
TESTCS(TestI422, I422ToARGB, ARGBToI422, 0, 1, 0, 7)
|
||||
TESTCS(TestJ420, J420ToARGB, ARGBToJ420, 1, 2, benchmark_width_, 3)
|
||||
TESTCS(TestJ422, J422ToARGB, ARGBToJ422, 0, 1, 0, 4)
|
||||
// TODO(fbarchard): Reduce C to Opt diff to 0.
|
||||
TESTCS(TestI420, I420ToARGB, ARGBToI420, 1, 2, benchmark_width_, 7, MAX_CDIFF)
|
||||
TESTCS(TestI422, I422ToARGB, ARGBToI422, 0, 1, 0, 7, MAX_CDIFF)
|
||||
TESTCS(TestJ420, J420ToARGB, ARGBToJ420, 1, 2, benchmark_width_, 3, 0)
|
||||
TESTCS(TestJ422, J422ToARGB, ARGBToJ422, 0, 1, 0, 4, 0)
|
||||
|
||||
static void YUVToRGB(int y, int u, int v, int* r, int* g, int* b) {
|
||||
const int kWidth = 16;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user