webrtc/modules/audio_processing/aec3
Gustaf Ullberg 2bab5ad3b1 AEC3: Avoid using filter output in suppression gain computation in non-linear mode
As non-linear mode uses a suppressed version of y (not e) as output, this change
uses Y2, rather than E2, as nearend spectrum when computing the suppression gains.
E2 is still used in linear mode.

This change also affects how the minimum suppression gains are calculated. The
minimum gain is now min_echo_power / weighted_residual_echo.

Bug: webrtc:10550
Change-Id: I2904c5a09dd64b06bf25eb5a37c18dab50297794
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133023
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27629}
2019-04-15 16:08:41 +00:00
..
mock Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
adaptive_fir_filter.cc AEC3: Remove remaining kill-switches 2019-01-29 10:31:45 +00:00
adaptive_fir_filter.h AEC3: Remove remaining kill-switches 2019-01-29 10:31:45 +00:00
adaptive_fir_filter_unittest.cc AEC3: Remove legacy render buffering 2019-01-25 08:31:12 +00:00
aec3_common.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
aec3_common.h AEC3: Increasing the accuracy of the detection for early reverb 2018-07-30 22:34:19 +00:00
aec3_fft.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
aec3_fft.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
aec3_fft_unittest.cc Removed the updating of the padding data buffer in the AEC3 FFT 2018-04-27 19:26:03 +00:00
aec_state.cc AEC3: No update of filter delay when linear filter is disabled 2019-04-15 09:04:58 +00:00
aec_state.h AEC3: Configuration parameter for disabling linear filter 2019-04-11 13:19:42 +00:00
aec_state_unittest.cc AEC3: Remove legacy render buffering 2019-01-25 08:31:12 +00:00
api_call_jitter_metrics.cc AEC3: Add metrics for API call jitter 2018-11-27 19:52:08 +00:00
api_call_jitter_metrics.h AEC3: Add metrics for API call jitter 2018-11-27 19:52:08 +00:00
api_call_jitter_metrics_unittest.cc AEC3: Add metrics for API call jitter 2018-11-27 19:52:08 +00:00
block_delay_buffer.cc AEC3: Adding the option for applying a fixed delay to the capture signal 2018-08-23 10:05:07 +00:00
block_delay_buffer.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
block_delay_buffer_unittest.cc AEC3: Adding the option for applying a fixed delay to the capture signal 2018-08-23 10:05:07 +00:00
block_framer.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
block_framer.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
block_framer_unittest.cc Make fewer copies when using StringBuilder. 2018-09-24 09:39:19 +00:00
block_processor.cc AEC3: Enable usage of external delay estimator 2019-04-05 15:34:39 +00:00
block_processor.h AEC3: Remove legacy render buffering 2019-01-25 08:31:12 +00:00
block_processor_metrics.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
block_processor_metrics.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
block_processor_metrics_unittest.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
block_processor_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
BUILD.gn AEC3: Fix range in filter analyzer 2019-03-27 16:11:22 +00:00
cascaded_biquad_filter.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
cascaded_biquad_filter.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
cascaded_biquad_filter_unittest.cc AEC3: Move decimator filters to the new notation 2018-06-07 08:09:17 +00:00
clockdrift_detector.cc AEC3: Clockdrift detection 2018-11-22 16:02:44 +00:00
clockdrift_detector.h AEC3: Clockdrift detection 2018-11-22 16:02:44 +00:00
clockdrift_detector_unittest.cc AEC3: Clockdrift detection 2018-11-22 16:02:44 +00:00
comfort_noise_generator.cc AEC3: Correcting minimum comfort noise levels 2019-04-11 14:23:22 +00:00
comfort_noise_generator.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
comfort_noise_generator_unittest.cc AEC3: Compensate comfort noise level for loss due to filter bank 2018-11-06 16:17:02 +00:00
decimator.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
decimator.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
decimator_unittest.cc Qualify cmath functions. 2019-03-15 07:31:59 +00:00
delay_estimate.h Inform the AEC3 echo remover about the status of the estimated delay 2018-02-21 17:08:36 +00:00
downsampled_render_buffer.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
downsampled_render_buffer.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
echo_audibility.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
echo_audibility.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
echo_canceller3.cc AEC3: Redesign delay headroom 2019-03-14 11:04:47 +00:00
echo_canceller3.h Revert "AEC3: Lockless transfer of render data to the capture thread" 2019-01-17 20:44:06 +00:00
echo_canceller3_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
echo_path_delay_estimator.cc AEC3: Clockdrift detection 2018-11-22 16:02:44 +00:00
echo_path_delay_estimator.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
echo_path_delay_estimator_unittest.cc AEC3: Remove legacy render buffering 2019-01-25 08:31:12 +00:00
echo_path_variability.cc Redesign of the render buffering in AEC3 2017-12-01 23:14:32 +00:00
echo_path_variability.h Redesign of the render buffering in AEC3 2017-12-01 23:14:32 +00:00
echo_path_variability_unittest.cc Redesign of the render buffering in AEC3 2017-12-01 23:14:32 +00:00
echo_remover.cc AEC3: Avoid using filter output in suppression gain computation in non-linear mode 2019-04-15 16:08:41 +00:00
echo_remover.h Remove the ability for EchoRemover to override the render vs capture alignment 2019-04-02 14:04:38 +00:00
echo_remover_metrics.cc Qualify cmath functions. 2019-03-15 07:31:59 +00:00
echo_remover_metrics.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
echo_remover_metrics_unittest.cc Qualify cmath functions. 2019-03-15 07:31:59 +00:00
echo_remover_unittest.cc AEC3: Enable usage of external delay estimator 2019-04-05 15:34:39 +00:00
erl_estimator.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
erl_estimator.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
erl_estimator_unittest.cc AEC3: Refactor AecState 2018-10-04 15:01:18 +00:00
erle_estimator.cc AEC3: Adding a correction factor for the Erle estimation that depends on the portion of the filter that is currently in use. 2018-11-20 12:28:05 +00:00
erle_estimator.h AEC3: Adding a correction factor for the Erle estimation that depends on the portion of the filter that is currently in use. 2018-11-20 12:28:05 +00:00
erle_estimator_unittest.cc AEC3: Redesign delay headroom 2019-03-14 11:04:47 +00:00
fft_buffer.cc Corrections of the render buffering scheme in AEC3 to ensure causality 2017-12-11 21:09:56 +00:00
fft_buffer.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
fft_data.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
fft_data_unittest.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
filter_analyzer.cc AEC3: Fix range in filter analyzer 2019-03-27 16:11:22 +00:00
filter_analyzer.h AEC3: Fix range in filter analyzer 2019-03-27 16:11:22 +00:00
filter_analyzer_unittest.cc AEC3: Fix range in filter analyzer 2019-03-27 16:11:22 +00:00
frame_blocker.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
frame_blocker.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
frame_blocker_unittest.cc Make fewer copies when using StringBuilder. 2018-09-24 09:39:19 +00:00
fullband_erle_estimator.cc AEC3: Adding a correction factor for the Erle estimation that depends on the portion of the filter that is currently in use. 2018-11-20 12:28:05 +00:00
fullband_erle_estimator.h AEC3: ERLE: Allowing increases of the ERLE estimate for low render signals. 2018-09-27 10:41:10 +00:00
main_filter_update_gain.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
main_filter_update_gain.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
main_filter_update_gain_unittest.cc AEC3: Remove legacy render buffering 2019-01-25 08:31:12 +00:00
matched_filter.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
matched_filter.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
matched_filter_lag_aggregator.cc Dump histogram data in AEC3 delay estimator 2019-02-11 14:13:38 +00:00
matched_filter_lag_aggregator.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
matched_filter_lag_aggregator_unittest.cc AEC3: Parametrize the delay estimator to leverage strong echo paths 2018-09-06 23:01:58 +00:00
matched_filter_unittest.cc AEC3: Remove legacy render buffering 2019-01-25 08:31:12 +00:00
matrix_buffer.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
matrix_buffer.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
moving_average.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
moving_average.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
moving_average_unittest.cc AEC3: Unittests for MovingAverage 2018-06-19 12:45:10 +00:00
render_buffer.cc Remove all remaining non-test uses of std::stringstream. 2018-09-13 08:52:05 +00:00
render_buffer.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
render_buffer_unittest.cc Simplified the usage of the render buffer in AEC3 2017-12-20 14:46:36 +00:00
render_delay_buffer.cc AEC3: Enable usage of external delay estimator 2019-04-05 15:34:39 +00:00
render_delay_buffer.h AEC3: Enable usage of external delay estimator 2019-04-05 15:34:39 +00:00
render_delay_buffer_unittest.cc AEC3: Enable usage of external delay estimator 2019-04-05 15:34:39 +00:00
render_delay_controller.cc Remove the ability for EchoRemover to override the render vs capture alignment 2019-04-02 14:04:38 +00:00
render_delay_controller.h Remove the ability for EchoRemover to override the render vs capture alignment 2019-04-02 14:04:38 +00:00
render_delay_controller_metrics.cc AEC3: Clockdrift detection 2018-11-22 16:02:44 +00:00
render_delay_controller_metrics.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
render_delay_controller_metrics_unittest.cc AEC3: Clockdrift detection 2018-11-22 16:02:44 +00:00
render_delay_controller_unittest.cc Remove the ability for EchoRemover to override the render vs capture alignment 2019-04-02 14:04:38 +00:00
render_reverb_model.cc AEC3: Corrected include 2018-11-06 18:57:19 +00:00
render_reverb_model.h AEC3: changes the signal used for deciding when to update the erle so the reverb render signal is now used 2018-10-22 10:30:12 +00:00
render_signal_analyzer.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
render_signal_analyzer.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
render_signal_analyzer_unittest.cc Qualify cmath functions. 2019-03-15 07:31:59 +00:00
residual_echo_estimator.cc AEC3: Remove unused code from residual echo estimator 2019-04-15 10:22:45 +00:00
residual_echo_estimator.h AEC3: Remove unused code from residual echo estimator 2019-04-15 10:22:45 +00:00
residual_echo_estimator_unittest.cc AEC3: Remove legacy render buffering 2019-01-25 08:31:12 +00:00
reverb_decay_estimator.cc AEC3: Remove remaining kill-switches 2019-01-29 10:31:45 +00:00
reverb_decay_estimator.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
reverb_frequency_response.cc AEC3: Remove remaining kill-switches 2019-01-29 10:31:45 +00:00
reverb_frequency_response.h AEC3: Remove remaining kill-switches 2019-01-29 10:31:45 +00:00
reverb_model.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
reverb_model.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
reverb_model_estimator.cc AEC3: Increasing the accuracy of the detection for early reverb 2018-07-30 22:34:19 +00:00
reverb_model_estimator.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
reverb_model_estimator_unittest.cc Qualify cmath functions. 2019-03-15 07:31:59 +00:00
reverb_model_fallback.cc AEC3: Changes to how the reverberation decay is applied. 2018-06-13 14:54:04 +00:00
reverb_model_fallback.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
shadow_filter_update_gain.cc Adding a smooth transition from the startup phase parameter set in AEC3 2018-03-15 13:38:16 +00:00
shadow_filter_update_gain.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
shadow_filter_update_gain_unittest.cc AEC3: Remove legacy render buffering 2019-01-25 08:31:12 +00:00
signal_dependent_erle_estimator.cc AEC3: Signal dependent ERLE: adding bounds to the index used for accessing the filter frequency response. 2019-03-25 09:38:52 +00:00
signal_dependent_erle_estimator.h AEC3: Adding a correction factor for the Erle estimation that depends on the portion of the filter that is currently in use. 2018-11-20 12:28:05 +00:00
signal_dependent_erle_estimator_unittest.cc AEC3: Enable usage of external delay estimator 2019-04-05 15:34:39 +00:00
skew_estimator.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
skew_estimator.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
skew_estimator_unittest.cc Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
stationarity_estimator.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
stationarity_estimator.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
subband_erle_estimator.cc AEC3: Use minimum ERLE during onsets 2019-02-21 14:18:44 +00:00
subband_erle_estimator.h AEC3: Use minimum ERLE during onsets 2019-02-21 14:18:44 +00:00
subtractor.cc AEC3: Remove remaining kill-switches 2019-01-29 10:31:45 +00:00
subtractor.h AEC3: Remove remaining kill-switches 2019-01-29 10:31:45 +00:00
subtractor_output.cc AEC3: Changes to initial behavior and handling of saturated echo 2018-10-16 13:22:44 +00:00
subtractor_output.h AEC3: Changes to initial behavior and handling of saturated echo 2018-10-16 13:22:44 +00:00
subtractor_output_analyzer.cc AEC3: Remove remaining kill-switches 2019-01-29 10:31:45 +00:00
subtractor_output_analyzer.h AEC3: Remove remaining kill-switches 2019-01-29 10:31:45 +00:00
subtractor_unittest.cc AEC3: Remove legacy render buffering 2019-01-25 08:31:12 +00:00
suppression_filter.cc AEC3: Computation of comfort noise gains from suppression gains 2018-11-06 16:10:52 +00:00
suppression_filter.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
suppression_filter_unittest.cc Qualify cmath functions. 2019-03-15 07:31:59 +00:00
suppression_gain.cc AEC3: Avoid using filter output in suppression gain computation in non-linear mode 2019-04-15 16:08:41 +00:00
suppression_gain.h AEC3: Avoid using filter output in suppression gain computation in non-linear mode 2019-04-15 16:08:41 +00:00
suppression_gain_unittest.cc AEC3: Avoid using filter output in suppression gain computation in non-linear mode 2019-04-15 16:08:41 +00:00
vector_buffer.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
vector_buffer.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
vector_math.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
vector_math_unittest.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00