AEC3: Remove parameters for the legacy filter naming

Bug: webrtc:8671
Change-Id: Ia5f8e33b9646e2b922428a72364cbbca47091579
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173092
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31030}
This commit is contained in:
Per Åhgren
2020-04-07 22:13:41 +02:00
committed by Commit Bot
parent dfae553e3a
commit 8b844f21e1
5 changed files with 3 additions and 95 deletions

View File

@ -118,25 +118,6 @@ bool EchoCanceller3Config::Validate(EchoCanceller3Config* config) {
res = res & Limit(&c->delay.delay_selection_thresholds.initial, 1, 250);
res = res & Limit(&c->delay.delay_selection_thresholds.converged, 1, 250);
res = res & FloorLimit(&c->filter.main.length_blocks, 1);
res = res & Limit(&c->filter.main.leakage_converged, 0.f, 1000.f);
res = res & Limit(&c->filter.main.leakage_diverged, 0.f, 1000.f);
res = res & Limit(&c->filter.main.error_floor, 0.f, 1000.f);
res = res & Limit(&c->filter.main.error_ceil, 0.f, 100000000.f);
res = res & Limit(&c->filter.main.noise_gate, 0.f, 100000000.f);
res = res & FloorLimit(&c->filter.main_initial.length_blocks, 1);
res = res & Limit(&c->filter.main_initial.leakage_converged, 0.f, 1000.f);
res = res & Limit(&c->filter.main_initial.leakage_diverged, 0.f, 1000.f);
res = res & Limit(&c->filter.main_initial.error_floor, 0.f, 1000.f);
res = res & Limit(&c->filter.main_initial.error_ceil, 0.f, 100000000.f);
res = res & Limit(&c->filter.main_initial.noise_gate, 0.f, 100000000.f);
if (c->filter.main.length_blocks < c->filter.main_initial.length_blocks) {
c->filter.main_initial.length_blocks = c->filter.main.length_blocks;
res = false;
}
res = res & FloorLimit(&c->filter.refined.length_blocks, 1);
res = res & Limit(&c->filter.refined.leakage_converged, 0.f, 1000.f);
res = res & Limit(&c->filter.refined.leakage_diverged, 0.f, 1000.f);
@ -157,19 +138,6 @@ bool EchoCanceller3Config::Validate(EchoCanceller3Config* config) {
res = false;
}
res = res & FloorLimit(&c->filter.shadow.length_blocks, 1);
res = res & Limit(&c->filter.shadow.rate, 0.f, 1.f);
res = res & Limit(&c->filter.shadow.noise_gate, 0.f, 100000000.f);
res = res & FloorLimit(&c->filter.shadow_initial.length_blocks, 1);
res = res & Limit(&c->filter.shadow_initial.rate, 0.f, 1.f);
res = res & Limit(&c->filter.shadow_initial.noise_gate, 0.f, 100000000.f);
if (c->filter.shadow.length_blocks < c->filter.shadow_initial.length_blocks) {
c->filter.shadow_initial.length_blocks = c->filter.shadow.length_blocks;
res = false;
}
res = res & FloorLimit(&c->filter.coarse.length_blocks, 1);
res = res & Limit(&c->filter.coarse.rate, 0.f, 1.f);
res = res & Limit(&c->filter.coarse.noise_gate, 0.f, 100000000.f);
@ -193,7 +161,6 @@ bool EchoCanceller3Config::Validate(EchoCanceller3Config* config) {
c->erle.min = std::min(c->erle.max_l, c->erle.max_h);
res = false;
}
res = res & Limit(&c->erle.num_sections, 1, c->filter.main.length_blocks);
res = res & Limit(&c->erle.num_sections, 1, c->filter.refined.length_blocks);
res = res & Limit(&c->ep_strength.default_gain, 0.f, 1000000.f);

View File

@ -76,15 +76,10 @@ struct RTC_EXPORT EchoCanceller3Config {
float noise_gate;
};
RefinedConfiguration main = {13, 0.00005f, 0.05f, 0.001f, 2.f, 20075344.f};
CoarseConfiguration shadow = {13, 0.7f, 20075344.f};
RefinedConfiguration refined = {13, 0.00005f, 0.05f,
0.001f, 2.f, 20075344.f};
CoarseConfiguration coarse = {13, 0.7f, 20075344.f};
RefinedConfiguration main_initial = {12, 0.005f, 0.5f,
0.001f, 2.f, 20075344.f};
CoarseConfiguration shadow_initial = {12, 0.9f, 20075344.f};
RefinedConfiguration refined_initial = {12, 0.005f, 0.5f,
0.001f, 2.f, 20075344.f};
CoarseConfiguration coarse_initial = {12, 0.9f, 20075344.f};
@ -92,13 +87,12 @@ struct RTC_EXPORT EchoCanceller3Config {
size_t config_change_duration_blocks = 250;
float initial_state_seconds = 2.5f;
bool conservative_initial_phase = false;
bool enable_shadow_filter_output_usage = true;
bool enable_coarse_filter_output_usage = true;
bool use_linear_filter = true;
bool export_linear_aec_output = false;
// Uses the filter configurations named main and shadow rather than those
// named refined and coarse.
bool use_legacy_filter_naming = true;
// Deprecated.
// TODO(peah): Remove.
bool use_legacy_filter_naming = false;
} filter;
struct Erle {

View File

@ -215,13 +215,9 @@ void Aec3ConfigFromJsonString(absl::string_view json_string,
}
if (rtc::GetValueFromJsonObject(aec3_root, "filter", &section)) {
ReadParam(section, "main", &cfg.filter.main);
ReadParam(section, "refined", &cfg.filter.refined);
ReadParam(section, "shadow", &cfg.filter.shadow);
ReadParam(section, "coarse", &cfg.filter.coarse);
ReadParam(section, "main_initial", &cfg.filter.main_initial);
ReadParam(section, "refined_initial", &cfg.filter.refined_initial);
ReadParam(section, "shadow_initial", &cfg.filter.shadow_initial);
ReadParam(section, "coarse_initial", &cfg.filter.coarse_initial);
ReadParam(section, "config_change_duration_blocks",
&cfg.filter.config_change_duration_blocks);
@ -229,8 +225,6 @@ void Aec3ConfigFromJsonString(absl::string_view json_string,
&cfg.filter.initial_state_seconds);
ReadParam(section, "conservative_initial_phase",
&cfg.filter.conservative_initial_phase);
ReadParam(section, "enable_shadow_filter_output_usage",
&cfg.filter.enable_shadow_filter_output_usage);
ReadParam(section, "enable_coarse_filter_output_usage",
&cfg.filter.enable_coarse_filter_output_usage);
ReadParam(section, "use_linear_filter", &cfg.filter.use_linear_filter);
@ -471,14 +465,6 @@ std::string Aec3ConfigToJsonString(const EchoCanceller3Config& config) {
ost << "},";
ost << "\"filter\": {";
ost << "\"main\": [";
ost << config.filter.main.length_blocks << ",";
ost << config.filter.main.leakage_converged << ",";
ost << config.filter.main.leakage_diverged << ",";
ost << config.filter.main.error_floor << ",";
ost << config.filter.main.error_ceil << ",";
ost << config.filter.main.noise_gate;
ost << "],";
ost << "\"refined\": [";
ost << config.filter.refined.length_blocks << ",";
@ -489,27 +475,12 @@ std::string Aec3ConfigToJsonString(const EchoCanceller3Config& config) {
ost << config.filter.refined.noise_gate;
ost << "],";
ost << "\"shadow\": [";
ost << config.filter.shadow.length_blocks << ",";
ost << config.filter.shadow.rate << ",";
ost << config.filter.shadow.noise_gate;
ost << "],";
ost << "\"coarse\": [";
ost << config.filter.coarse.length_blocks << ",";
ost << config.filter.coarse.rate << ",";
ost << config.filter.coarse.noise_gate;
ost << "],";
ost << "\"main_initial\": [";
ost << config.filter.main_initial.length_blocks << ",";
ost << config.filter.main_initial.leakage_converged << ",";
ost << config.filter.main_initial.leakage_diverged << ",";
ost << config.filter.main_initial.error_floor << ",";
ost << config.filter.main_initial.error_ceil << ",";
ost << config.filter.main_initial.noise_gate;
ost << "],";
ost << "\"refined_initial\": [";
ost << config.filter.refined_initial.length_blocks << ",";
ost << config.filter.refined_initial.leakage_converged << ",";
@ -519,12 +490,6 @@ std::string Aec3ConfigToJsonString(const EchoCanceller3Config& config) {
ost << config.filter.refined_initial.noise_gate;
ost << "],";
ost << "\"shadow_initial\": [";
ost << config.filter.shadow_initial.length_blocks << ",";
ost << config.filter.shadow_initial.rate << ",";
ost << config.filter.shadow_initial.noise_gate;
ost << "],";
ost << "\"coarse_initial\": [";
ost << config.filter.coarse_initial.length_blocks << ",";
ost << config.filter.coarse_initial.rate << ",";
@ -537,9 +502,6 @@ std::string Aec3ConfigToJsonString(const EchoCanceller3Config& config) {
<< ",";
ost << "\"conservative_initial_phase\": "
<< (config.filter.conservative_initial_phase ? "true" : "false") << ",";
ost << "\"enable_shadow_filter_output_usage\": "
<< (config.filter.enable_shadow_filter_output_usage ? "true" : "false")
<< ",";
ost << "\"enable_coarse_filter_output_usage\": "
<< (config.filter.enable_coarse_filter_output_usage ? "true" : "false")
<< ",";

View File

@ -19,9 +19,7 @@ TEST(EchoCanceller3JsonHelpers, ToStringAndParseJson) {
EchoCanceller3Config cfg;
cfg.delay.down_sampling_factor = 1u;
cfg.delay.log_warning_on_delay_changes = true;
cfg.filter.main.error_floor = 1.f;
cfg.filter.refined.error_floor = 2.f;
cfg.filter.shadow_initial.length_blocks = 7u;
cfg.filter.coarse_initial.length_blocks = 3u;
cfg.comfort_noise.noise_floor_dbfs = 100.f;
cfg.suppressor.normal_tuning.mask_hf.enr_suppress = .5f;
@ -46,10 +44,6 @@ TEST(EchoCanceller3JsonHelpers, ToStringAndParseJson) {
cfg_transformed.delay.log_warning_on_delay_changes);
EXPECT_EQ(cfg.filter.coarse_initial.length_blocks,
cfg_transformed.filter.coarse_initial.length_blocks);
EXPECT_EQ(cfg.filter.shadow_initial.length_blocks,
cfg_transformed.filter.shadow_initial.length_blocks);
EXPECT_EQ(cfg.filter.main.error_floor,
cfg_transformed.filter.main.error_floor);
EXPECT_EQ(cfg.filter.refined.error_floor,
cfg_transformed.filter.refined.error_floor);
EXPECT_EQ(cfg.comfort_noise.noise_floor_dbfs,

View File

@ -213,15 +213,6 @@ void CopyBufferIntoFrame(const AudioBuffer& buffer,
EchoCanceller3Config AdjustConfig(const EchoCanceller3Config& config) {
EchoCanceller3Config adjusted_cfg = config;
if (adjusted_cfg.filter.use_legacy_filter_naming) {
adjusted_cfg.filter.refined = adjusted_cfg.filter.main;
adjusted_cfg.filter.refined_initial = adjusted_cfg.filter.main_initial;
adjusted_cfg.filter.coarse = adjusted_cfg.filter.shadow;
adjusted_cfg.filter.coarse_initial = adjusted_cfg.filter.shadow_initial;
adjusted_cfg.filter.enable_coarse_filter_output_usage =
adjusted_cfg.filter.enable_shadow_filter_output_usage;
}
if (field_trial::IsEnabled("WebRTC-Aec3UseShortConfigChangeDuration")) {
adjusted_cfg.filter.config_change_duration_blocks = 10;
}