This CL provides improved parameter tuning for the level controller as well as some further minor changes.

It does:
-Handle saturations in a better manner by adding different gain change
step sizes for upwards and downwards changes, as well as when there
is saturation.
-Handle conditions with initial noise-only regions in a better way by
setting a high initial peak level estimate which is gradually reduced until
certainty about the peak level is achieved.
-Limit the maximum gain to limit noise amplification, and to reflect that it
initially is intended to be used in cascade with the fixed digital AGC mode.
-Lower the maximum allowed stationary noise floor to reduce the risk of
excessive noise amplification.
-Lower the target gain to reduce the risk of causing the AEC on the other
end to fail due to high playout levels triggering nonlinearities.
This also reduces the risk for saturation.
-Handle the noise-only regions in a better manner.

NOTRY=true
TBR=aleloi
BUG=webrtc:5920

Review-Url: https://codereview.webrtc.org/2111553002
Cr-Commit-Position: refs/heads/master@{#13350}
This commit is contained in:
peah
2016-06-30 09:19:32 -07:00
committed by Commit bot
parent 504c47d750
commit b59ff8952f
9 changed files with 72 additions and 49 deletions

View File

@ -420,10 +420,6 @@ void AudioProcessingImpl::SetExtraOptions(const Config& config) {
LOG(LS_INFO) << "Level controller activated: "
<< config.Get<LevelControl>().enabled;
// TODO(peah): Remove the explicit deactivation once
// the upcoming changes for the level controller tuning
// are landed.
capture_nonlocked_.level_controller_enabled = false;
InitializeLevelController();
}