Revert 3269
> Will now only require near-perfect PSNR and SSIM.
>
> BUG=
> TEST=Ran test and checked we accept somewhat lower values.
>
> Review URL: https://webrtc-codereview.appspot.com/964031
TBR=phoglund@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/989004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3270 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/common_video/libyuv/include/webrtc_libyuv.h b/webrtc/common_video/libyuv/include/webrtc_libyuv.h
index 1bea4f1..777e7c7 100644
--- a/webrtc/common_video/libyuv/include/webrtc_libyuv.h
+++ b/webrtc/common_video/libyuv/include/webrtc_libyuv.h
@@ -44,7 +44,7 @@
};
// This is the max PSNR value our algorithms can return.
-const double kPerfectPSNR = 48.0f;
+const double kInfinitePSNR = 48.0f;
// Conversion between the RawVideoType and the LibYuv videoType.
// TODO(wu): Consolidate types into one type throughout WebRtc.
diff --git a/webrtc/common_video/libyuv/webrtc_libyuv.cc b/webrtc/common_video/libyuv/webrtc_libyuv.cc
index 7502355..fdef255 100644
--- a/webrtc/common_video/libyuv/webrtc_libyuv.cc
+++ b/webrtc/common_video/libyuv/webrtc_libyuv.cc
@@ -354,7 +354,7 @@
test_frame->width(), test_frame->height());
// LibYuv sets the max psnr value to 128, we restrict it here.
// In case of 0 mse in one frame, 128 can skew the results significantly.
- return (psnr > kPerfectPSNR) ? kPerfectPSNR : psnr;
+ return (psnr > kInfinitePSNR) ? kInfinitePSNR : psnr;
}
// Compute SSIM for an I420 frame (all planes)
@@ -409,7 +409,7 @@
width, height);
// LibYuv sets the max psnr value to 128, we restrict it here.
// In case of 0 mse in one frame, 128 can skew the results significantly.
- return (psnr > kPerfectPSNR) ? kPerfectPSNR : psnr;
+ return (psnr > kInfinitePSNR) ? kInfinitePSNR : psnr;
}
// Compute SSIM for an I420 frame (all planes)
double I420SSIM(const uint8_t* ref_frame,
diff --git a/webrtc/test/testsupport/metrics/video_metrics.cc b/webrtc/test/testsupport/metrics/video_metrics.cc
index 632786a..c9d6d9d 100644
--- a/webrtc/test/testsupport/metrics/video_metrics.cc
+++ b/webrtc/test/testsupport/metrics/video_metrics.cc
@@ -21,7 +21,7 @@
namespace test {
// Copy here so our callers won't need to include libyuv for this constant.
-double kMetricsPerfectPSNR = kPerfectPSNR;
+double kMetricsInfinitePSNR = kInfinitePSNR;
// Used for calculating min and max values.
static bool LessForFrameResultValue (const FrameResult& s1,
diff --git a/webrtc/test/testsupport/metrics/video_metrics.h b/webrtc/test/testsupport/metrics/video_metrics.h
index 8448ccf..36e62a0 100644
--- a/webrtc/test/testsupport/metrics/video_metrics.h
+++ b/webrtc/test/testsupport/metrics/video_metrics.h
@@ -18,7 +18,7 @@
namespace test {
// The highest PSNR value our algorithms will return.
-extern double kMetricsPerfectPSNR;
+extern double kMetricsInfinitePSNR;
// Contains video quality metrics result for a single frame.
struct FrameResult {
diff --git a/webrtc/video_engine/test/auto_test/automated/vie_video_verification_test.cc b/webrtc/video_engine/test/auto_test/automated/vie_video_verification_test.cc
index bbac1d1..c0094dd 100644
--- a/webrtc/video_engine/test/auto_test/automated/vie_video_verification_test.cc
+++ b/webrtc/video_engine/test/auto_test/automated/vie_video_verification_test.cc
@@ -160,8 +160,6 @@
// However, it's hard to make 100% stringent requirements on the video engine
// since for instance the jitter buffer has non-deterministic elements. If it
// breaks five times in a row though, you probably introduced a bug.
- const double kReasonablePsnr = webrtc::test::kMetricsPerfectPSNR - 2.0f;
- const double kReasonableSsim = 0.99f;
const int kNumAttempts = 5;
for (int attempt = 0; attempt < kNumAttempts; ++attempt) {
InitializeFileRenderers();
@@ -174,11 +172,12 @@
double actual_psnr = 0;
double actual_ssim = 0;
- CompareFiles(input_file_, remote_file, &actual_psnr, &actual_ssim);
+ CompareFiles(local_preview, remote_file, &actual_psnr, &actual_ssim);
TearDownFileRenderers();
- if (actual_psnr > kReasonablePsnr && actual_ssim > kReasonableSsim) {
+ if (actual_psnr == webrtc::test::kMetricsInfinitePSNR &&
+ actual_ssim == 1.0f) {
// Test successful.
return;
} else {
@@ -186,7 +185,7 @@
}
}
- FAIL() << "Failed to achieve near-perfect PSNR and SSIM results after " <<
+ FAIL() << "Failed to achieve perfect PSNR and SSIM results after " <<
kNumAttempts << " attempts.";
}