Change the threshold for external VNR.

The change is based on visual evaluation results and improves the
denoising result on both desktop/laptop and Nexus.

Review-Url: https://codereview.webrtc.org/1935353002
Cr-Commit-Position: refs/heads/master@{#12612}
This commit is contained in:
jackychen 2016-05-03 11:21:26 -07:00 committed by Commit bot
parent c4deee49a3
commit 9bfa1063d1
3 changed files with 5 additions and 3 deletions

View File

@ -14,6 +14,8 @@
namespace webrtc {
const int kSumDiffThresholdHighNeon = 600;
static int HorizontalAddS16x8(const int16x8_t v_16x8) {
const int32x4_t a = vpaddlq_s16(v_16x8);
const int64x2_t b = vpaddlq_s32(a);
@ -179,7 +181,7 @@ DenoiserDecision DenoiserFilterNEON::MbDenoise(uint8_t* mc_running_avg_y,
vget_low_s64(v_sum_diff_total));
int sum_diff = vget_lane_s32(vabs_s32(vreinterpret_s32_s64(x)), 0);
sum_diff_thresh =
increase_denoising ? kSumDiffThresholdHigh : kSumDiffThreshold;
increase_denoising ? kSumDiffThresholdHighNeon : kSumDiffThreshold;
if (sum_diff > sum_diff_thresh)
return COPY_BLOCK;

View File

@ -23,7 +23,7 @@ namespace webrtc {
#define DISPLAY 0 // Rectangle diagnostics
#define DISPLAYNEON 0 // Rectangle diagnostics on NEON
const int kNoiseThreshold = 200;
const int kNoiseThreshold = 150;
const int kNoiseThresholdNeon = 70;
const int kConsecLowVarFrame = 6;
const int kAverageLumaMin = 20;

View File

@ -248,7 +248,7 @@ void VideoDenoiser::DenoiseFrame(const VideoFrame& frame,
memset(moving_object_.get(), 1, mb_cols_ * mb_rows_);
uint8_t noise_level = noise_estimation_enabled ? ne_->GetNoiseLevel() : 0;
int thr_var_base = 16 * 16 * 5;
int thr_var_base = 16 * 16 * 2;
// Loop over blocks to accumulate/extract noise level and update x/y_density
// factors for moving object detection.
for (int mb_row = 0; mb_row < mb_rows_; ++mb_row) {