Add tests for Highbitdepth PSNR metric computations Change-Id: I07324155f73bbdbe25bb7a7ccd587ebf9010ac7a
diff --git a/test/hbd_metrics_test.cc b/test/hbd_metrics_test.cc index bf75a29..dac001f 100644 --- a/test/hbd_metrics_test.cc +++ b/test/hbd_metrics_test.cc
@@ -16,6 +16,7 @@ #include "test/acm_random.h" #include "test/util.h" #include "./vpx_config.h" +#include "vpx_dsp/psnr.h" #include "vpx_dsp/ssim.h" #include "vpx_ports/mem.h" #include "vpx_ports/msvc.h" @@ -32,6 +33,19 @@ const YV12_BUFFER_CONFIG *dest, uint32_t bd); +double compute_hbd_psnr(const YV12_BUFFER_CONFIG *source, + const YV12_BUFFER_CONFIG *dest, uint32_t bit_depth) { + PSNR_STATS psnr; + calc_highbd_psnr(source, dest, &psnr, bit_depth, bit_depth); + return psnr.psnr[0]; +} + +double compute_psnr(const YV12_BUFFER_CONFIG *source, + const YV12_BUFFER_CONFIG *dest) { + PSNR_STATS psnr; + calc_psnr(source, dest, &psnr); + return psnr.psnr[0]; +} double compute_hbd_psnrhvs(const YV12_BUFFER_CONFIG *source, const YV12_BUFFER_CONFIG *dest, @@ -208,5 +222,13 @@ MetricTestTParam(&compute_psnrhvs, &compute_hbd_psnrhvs, 12, kPhvs_thresh))); +INSTANTIATE_TEST_CASE_P( + PSNR, HBDMetricsTest, + ::testing::Values( + MetricTestTParam(&compute_psnr, &compute_hbd_psnr, 10, + kPhvs_thresh), + MetricTestTParam(&compute_psnr, &compute_hbd_psnr, 12, + kPhvs_thresh))); + } // namespace
diff --git a/vpx_dsp/psnr.c b/vpx_dsp/psnr.c index ee803f6..1b92e2a 100644 --- a/vpx_dsp/psnr.c +++ b/vpx_dsp/psnr.c
@@ -258,7 +258,7 @@ (double)total_sse); } -#else // !CONFIG_VP9_HIGHBITDEPTH +#endif // !CONFIG_VP9_HIGHBITDEPTH void calc_psnr(const YV12_BUFFER_CONFIG *a, const YV12_BUFFER_CONFIG *b, PSNR_STATS *psnr) { @@ -295,4 +295,3 @@ psnr->psnr[0] = vpx_sse_to_psnr((double)total_samples, peak, (double)total_sse); } -#endif // CONFIG_VP9_HIGHBITDEPTH
diff --git a/vpx_dsp/psnr.h b/vpx_dsp/psnr.h index e58eb3d..c8da94f 100644 --- a/vpx_dsp/psnr.h +++ b/vpx_dsp/psnr.h
@@ -51,11 +51,11 @@ const uint8_t *b8, int b_stride, int width, int height, unsigned int input_shift); -#else +#endif void calc_psnr(const YV12_BUFFER_CONFIG *a, const YV12_BUFFER_CONFIG *b, PSNR_STATS *psnr); -#endif + int64_t highbd_get_sse(const uint8_t *a, int a_stride, const uint8_t *b, int b_stride, int width, int height);