From 16dd6b0ce4e6b7447eb4c0288feac66a58009234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20de=20Vicente=20Pe=C3=B1a?= Date: Tue, 15 Dec 2020 14:24:31 +0100 Subject: [PATCH] Fixing the bounds for the max and min erle in the erle instantaneous estimation. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: webrtc:12283 Change-Id: I534a5da30e575f9b100046fff31a84774afbf67f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196654 Commit-Queue: Jesus de Vicente Pena Reviewed-by: Per Ã…hgren Cr-Commit-Position: refs/heads/master@{#32834} --- .../aec3/fullband_erle_estimator.cc | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/modules/audio_processing/aec3/fullband_erle_estimator.cc b/modules/audio_processing/aec3/fullband_erle_estimator.cc index 1d7a191a89..e56674e4c9 100644 --- a/modules/audio_processing/aec3/fullband_erle_estimator.cc +++ b/modules/audio_processing/aec3/fullband_erle_estimator.cc @@ -162,17 +162,12 @@ void FullBandErleEstimator::ErleInstantaneous::Dump( void FullBandErleEstimator::ErleInstantaneous::UpdateMaxMin() { RTC_DCHECK(erle_log2_); - if (erle_log2_.value() > max_erle_log2_) { - max_erle_log2_ = erle_log2_.value(); - } else { - max_erle_log2_ -= 0.0004; // Forget factor, approx 1dB every 3 sec. - } - - if (erle_log2_.value() < min_erle_log2_) { - min_erle_log2_ = erle_log2_.value(); - } else { - min_erle_log2_ += 0.0004; // Forget factor, approx 1dB every 3 sec. - } + // Adding the forgetting factors for the maximum and minimum and capping the + // result to the incoming value. + max_erle_log2_ -= 0.0004f; // Forget factor, approx 1dB every 3 sec. + max_erle_log2_ = std::max(max_erle_log2_, erle_log2_.value()); + min_erle_log2_ += 0.0004f; // Forget factor, approx 1dB every 3 sec. + min_erle_log2_ = std::min(min_erle_log2_, erle_log2_.value()); } void FullBandErleEstimator::ErleInstantaneous::UpdateQualityEstimate() {