Merge "Code style change in unit test for VP8/VP9 denoiser."
This commit is contained in:
		@@ -28,19 +28,18 @@ using libvpx_test::ACMRandom;
 | 
			
		||||
namespace {
 | 
			
		||||
 | 
			
		||||
const int kNumPixels = 16 * 16;
 | 
			
		||||
class VP8DenoiserTest
 | 
			
		||||
    : public ::testing::TestWithParam<int> {
 | 
			
		||||
class VP8DenoiserTest : public ::testing::TestWithParam<int> {
 | 
			
		||||
 public:
 | 
			
		||||
  virtual ~VP8DenoiserTest() {}
 | 
			
		||||
 | 
			
		||||
  virtual void SetUp() {
 | 
			
		||||
    increase_denoising = GetParam();
 | 
			
		||||
    increase_denoising_ = GetParam();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  virtual void TearDown() { libvpx_test::ClearSystemState(); }
 | 
			
		||||
 | 
			
		||||
 protected:
 | 
			
		||||
  int increase_denoising;
 | 
			
		||||
  int increase_denoising_;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
TEST_P(VP8DenoiserTest, BitexactCheck) {
 | 
			
		||||
@@ -63,8 +62,8 @@ TEST_P(VP8DenoiserTest, BitexactCheck) {
 | 
			
		||||
 | 
			
		||||
  for (int i = 0; i < count_test_block; ++i) {
 | 
			
		||||
    // Generate random motion magnitude, 20% of which exceed the threshold.
 | 
			
		||||
    uint8_t motion_magnitude_random
 | 
			
		||||
              = rnd.Rand8() % (uint8_t)(MOTION_MAGNITUDE_THRESHOLD * 1.2);
 | 
			
		||||
    const int motion_magnitude_ran =
 | 
			
		||||
        rnd.Rand8() % static_cast<int>(MOTION_MAGNITUDE_THRESHOLD * 1.2);
 | 
			
		||||
 | 
			
		||||
    // Initialize a test block with random number in range [0, 255].
 | 
			
		||||
    for (int j = 0; j < kNumPixels; ++j) {
 | 
			
		||||
@@ -72,20 +71,20 @@ TEST_P(VP8DenoiserTest, BitexactCheck) {
 | 
			
		||||
      sig_block_sse2[j] = sig_block_c[j] = rnd.Rand8();
 | 
			
		||||
      // The pixels in mc_avg_block are generated by adding a random
 | 
			
		||||
      // number in range [-19, 19] to corresponding pixels in sig_block.
 | 
			
		||||
      temp = sig_block_c[j] + (rnd.Rand8() % 2 == 0? -1 : 1) *
 | 
			
		||||
             (rnd.Rand8()%20);
 | 
			
		||||
      temp = sig_block_c[j] + (rnd.Rand8() % 2 == 0 ? -1 : 1) *
 | 
			
		||||
             (rnd.Rand8() % 20);
 | 
			
		||||
      // Clip.
 | 
			
		||||
      mc_avg_block[j] = (temp < 0? 0 : (temp > 255? 255 : temp));
 | 
			
		||||
      mc_avg_block[j] = (temp < 0) ? 0 : ((temp > 255) ? 255 : temp);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Test denosiser on Y component.
 | 
			
		||||
    ASM_REGISTER_STATE_CHECK(vp8_denoiser_filter_c(mc_avg_block, stride,
 | 
			
		||||
                               avg_block_c, stride, sig_block_c, stride,
 | 
			
		||||
                               motion_magnitude_random, increase_denoising));
 | 
			
		||||
    ASM_REGISTER_STATE_CHECK(vp8_denoiser_filter_c(
 | 
			
		||||
        mc_avg_block, stride, avg_block_c, stride, sig_block_c, stride,
 | 
			
		||||
        motion_magnitude_ran, increase_denoising_));
 | 
			
		||||
 | 
			
		||||
    ASM_REGISTER_STATE_CHECK(vp8_denoiser_filter_sse2(mc_avg_block, stride,
 | 
			
		||||
                               avg_block_sse2, stride, sig_block_sse2, stride,
 | 
			
		||||
                               motion_magnitude_random, increase_denoising));
 | 
			
		||||
    ASM_REGISTER_STATE_CHECK(vp8_denoiser_filter_sse2(
 | 
			
		||||
        mc_avg_block, stride, avg_block_sse2, stride, sig_block_sse2, stride,
 | 
			
		||||
        motion_magnitude_ran, increase_denoising_));
 | 
			
		||||
 | 
			
		||||
    // Check bitexactness.
 | 
			
		||||
    for (int h = 0; h < 16; ++h) {
 | 
			
		||||
@@ -94,14 +93,14 @@ TEST_P(VP8DenoiserTest, BitexactCheck) {
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Test denosiser on UV component.
 | 
			
		||||
    ASM_REGISTER_STATE_CHECK(vp8_denoiser_filter_uv_c(mc_avg_block, stride,
 | 
			
		||||
                               avg_block_c, stride, sig_block_c, stride,
 | 
			
		||||
                               motion_magnitude_random, increase_denoising));
 | 
			
		||||
    // Test denoiser on UV component.
 | 
			
		||||
    ASM_REGISTER_STATE_CHECK(vp8_denoiser_filter_uv_c(
 | 
			
		||||
        mc_avg_block, stride, avg_block_c, stride, sig_block_c, stride,
 | 
			
		||||
        motion_magnitude_ran, increase_denoising_));
 | 
			
		||||
 | 
			
		||||
    ASM_REGISTER_STATE_CHECK(vp8_denoiser_filter_uv_sse2(mc_avg_block, stride,
 | 
			
		||||
                               avg_block_sse2, stride, sig_block_sse2, stride,
 | 
			
		||||
                               motion_magnitude_random, increase_denoising));
 | 
			
		||||
    ASM_REGISTER_STATE_CHECK(vp8_denoiser_filter_uv_sse2(
 | 
			
		||||
        mc_avg_block, stride, avg_block_sse2, stride, sig_block_sse2, stride,
 | 
			
		||||
        motion_magnitude_ran, increase_denoising_));
 | 
			
		||||
 | 
			
		||||
    // Check bitexactness.
 | 
			
		||||
    for (int h = 0; h < 16; ++h) {
 | 
			
		||||
@@ -113,7 +112,5 @@ TEST_P(VP8DenoiserTest, BitexactCheck) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Test for all block size.
 | 
			
		||||
INSTANTIATE_TEST_CASE_P(
 | 
			
		||||
    SSE2, VP8DenoiserTest,
 | 
			
		||||
    ::testing::Values(0, 1));
 | 
			
		||||
INSTANTIATE_TEST_CASE_P(SSE2, VP8DenoiserTest, ::testing::Values(0, 1));
 | 
			
		||||
}  // namespace
 | 
			
		||||
 
 | 
			
		||||
@@ -29,19 +29,18 @@ using libvpx_test::ACMRandom;
 | 
			
		||||
namespace {
 | 
			
		||||
 | 
			
		||||
const int kNumPixels = 64 * 64;
 | 
			
		||||
class VP9DenoiserTest
 | 
			
		||||
    : public ::testing::TestWithParam<int> {
 | 
			
		||||
class VP9DenoiserTest : public ::testing::TestWithParam<BLOCK_SIZE> {
 | 
			
		||||
 public:
 | 
			
		||||
  virtual ~VP9DenoiserTest() {}
 | 
			
		||||
 | 
			
		||||
  virtual void SetUp() {
 | 
			
		||||
    bs = (BLOCK_SIZE)GetParam();
 | 
			
		||||
    bs_ = GetParam();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  virtual void TearDown() { libvpx_test::ClearSystemState(); }
 | 
			
		||||
 | 
			
		||||
 protected:
 | 
			
		||||
  BLOCK_SIZE bs;
 | 
			
		||||
  BLOCK_SIZE bs_;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
TEST_P(VP9DenoiserTest, BitexactCheck) {
 | 
			
		||||
@@ -60,8 +59,8 @@ TEST_P(VP9DenoiserTest, BitexactCheck) {
 | 
			
		||||
 | 
			
		||||
  for (int i = 0; i < count_test_block; ++i) {
 | 
			
		||||
    // Generate random motion magnitude, 20% of which exceed the threshold.
 | 
			
		||||
    uint8_t motion_magnitude_random
 | 
			
		||||
              = rnd.Rand8() % (uint8_t)(MOTION_MAGNITUDE_THRESHOLD * 1.2);
 | 
			
		||||
    const int motion_magnitude_random =
 | 
			
		||||
        rnd.Rand8() % static_cast<int>(MOTION_MAGNITUDE_THRESHOLD * 1.2);
 | 
			
		||||
 | 
			
		||||
    // Initialize a test block with random number in range [0, 255].
 | 
			
		||||
    for (int j = 0; j < kNumPixels; ++j) {
 | 
			
		||||
@@ -69,23 +68,23 @@ TEST_P(VP9DenoiserTest, BitexactCheck) {
 | 
			
		||||
      sig_block[j] = rnd.Rand8();
 | 
			
		||||
      // The pixels in mc_avg_block are generated by adding a random
 | 
			
		||||
      // number in range [-19, 19] to corresponding pixels in sig_block.
 | 
			
		||||
      temp = sig_block[j] + (rnd.Rand8() % 2 == 0? -1 : 1) *
 | 
			
		||||
             (rnd.Rand8()%20);
 | 
			
		||||
      temp = sig_block[j] + ((rnd.Rand8() % 2 == 0) ? -1 : 1) *
 | 
			
		||||
             (rnd.Rand8() % 20);
 | 
			
		||||
      // Clip.
 | 
			
		||||
      mc_avg_block[j] = (temp < 0? 0 : (temp > 255? 255 : temp));
 | 
			
		||||
      mc_avg_block[j] = (temp < 0) ? 0 : ((temp > 255) ? 255 : temp);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ASM_REGISTER_STATE_CHECK(vp9_denoiser_filter_c(sig_block, 64,
 | 
			
		||||
                             mc_avg_block, 64, avg_block_c, 64,
 | 
			
		||||
                             0, bs, motion_magnitude_random));
 | 
			
		||||
    ASM_REGISTER_STATE_CHECK(vp9_denoiser_filter_c(
 | 
			
		||||
        sig_block, 64, mc_avg_block, 64, avg_block_c,
 | 
			
		||||
        64, 0, bs_, motion_magnitude_random));
 | 
			
		||||
 | 
			
		||||
    ASM_REGISTER_STATE_CHECK(vp9_denoiser_filter_sse2(sig_block, 64,
 | 
			
		||||
                             mc_avg_block, 64, avg_block_sse2, 64,
 | 
			
		||||
                             0, bs, motion_magnitude_random));
 | 
			
		||||
    ASM_REGISTER_STATE_CHECK(vp9_denoiser_filter_sse2(
 | 
			
		||||
        sig_block, 64, mc_avg_block, 64, avg_block_sse2,
 | 
			
		||||
        64, 0, bs_, motion_magnitude_random));
 | 
			
		||||
 | 
			
		||||
    // Test bitexactness.
 | 
			
		||||
    for (int h = 0; h < (4 << b_height_log2_lookup[bs]); ++h) {
 | 
			
		||||
      for (int w = 0; w < (4 << b_width_log2_lookup[bs]); ++w) {
 | 
			
		||||
    for (int h = 0; h < (4 << b_height_log2_lookup[bs_]); ++h) {
 | 
			
		||||
      for (int w = 0; w < (4 << b_width_log2_lookup[bs_]); ++w) {
 | 
			
		||||
        EXPECT_EQ(avg_block_c[h * 64 + w], avg_block_sse2[h * 64 + w]);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user