Merge "Code style change in unit test for VP8/VP9 denoiser."

This commit is contained in:
JackyChen 2014-10-14 08:46:33 -07:00 коммит произвёл Gerrit Code Review
Родитель f7c336aa19 31780e6647
Коммит 755451c423
2 изменённых файлов: 38 добавлений и 42 удалений

Просмотреть файл

@ -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]);
}
}