webrtc/modules/audio_processing/aec3
Gustaf Ullberg 8675eeec26 Bypass unnecessary resampling.
This change keeps the original 48 kHz signal and uses it for the
fullband processing given that the following requirements are
fulfilled:
- Input signal is 48 kHz
- Output signal is 48 kHz
- Multiband processing is performed at 32 kHz
- The multiband processing does not modify the original signal
This avoids unnecessary, lossy resampling and band merging.

Bug: b/130016532
Change-Id: I690c26faba07eab0cbff6c0a95a81d89255dd1a1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155966
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29425}
2019-10-10 08:38:41 +00:00
..
mock AEC3: Downmix multichannel signals before delay estimation 2019-09-10 08:16:07 +00:00
adaptive_fir_filter.cc AEC3: Add support in the echo subtractor for handling multiple channels 2019-10-05 07:45:47 +00:00
adaptive_fir_filter.h AEC3: Add support in the echo subtractor for handling multiple channels 2019-10-05 07:45:47 +00:00
adaptive_fir_filter_erl.cc AEC3: Reducing the complexity and heap usage of the adaptive filter 2019-09-05 14:30:49 +00:00
adaptive_fir_filter_erl.h AEC3: Reducing the complexity and heap usage of the adaptive filter 2019-09-05 14:30:49 +00:00
adaptive_fir_filter_erl_unittest.cc AEC3: Reducing the complexity and heap usage of the adaptive filter 2019-09-05 14:30:49 +00:00
adaptive_fir_filter_unittest.cc AEC3: Send the spectral power estimates for all channels to AecState 2019-10-09 12:51:21 +00:00
aec3_common.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
aec3_common.h Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +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
aec_state.cc AEC3: Send the spectral power estimates for all channels to AecState 2019-10-09 12:51:21 +00:00
aec_state.h AEC3: Send the spectral power estimates for all channels to AecState 2019-10-09 12:51:21 +00:00
aec_state_unittest.cc AEC3: Send the spectral power estimates for all channels to AecState 2019-10-09 12:51:21 +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 Format almost everything. 2019-07-08 13:45:15 +00:00
block_buffer.cc Rename VectorBuffer->SpectrumBuffer, MatrixBuffer->BlockBuffer, BlockBuffer->Aec2BlockBuffer 2019-09-05 10:53:24 +00:00
block_buffer.h Remove completed TODOs 2019-09-06 14:53:11 +00:00
block_delay_buffer.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
block_delay_buffer.h Format almost everything. 2019-07-08 13:45:15 +00:00
block_delay_buffer_unittest.cc Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
block_framer.cc Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
block_framer.h Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
block_framer_unittest.cc Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
block_processor.cc AEC3: Downmix multichannel signals before delay estimation 2019-09-10 08:16:07 +00:00
block_processor.h Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +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 Format almost everything. 2019-07-08 13:45:15 +00:00
block_processor_unittest.cc Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
BUILD.gn AEC3: Remove redundant class 2019-10-09 10:57: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: use different seed for different channels in CNG 2019-09-30 13:04:00 +00:00
comfort_noise_generator.h AEC3: use different seed for different channels in CNG 2019-09-30 13:04:00 +00:00
comfort_noise_generator_unittest.cc AEC3: Add support in the echo subtractor for handling multiple channels 2019-10-05 07:45:47 +00:00
decimator.cc AEC3: Downmix multichannel signals before delay estimation 2019-09-10 08:16:07 +00:00
decimator.h AEC3: Downmix multichannel signals before delay estimation 2019-09-10 08:16:07 +00:00
decimator_unittest.cc AEC3: Downmix multichannel signals before delay estimation 2019-09-10 08:16:07 +00:00
delay_estimate.h
downsampled_render_buffer.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
downsampled_render_buffer.h Format almost everything. 2019-07-08 13:45:15 +00:00
echo_audibility.cc Rename VectorBuffer->SpectrumBuffer, MatrixBuffer->BlockBuffer, BlockBuffer->Aec2BlockBuffer 2019-09-05 10:53:24 +00:00
echo_audibility.h Rename VectorBuffer->SpectrumBuffer, MatrixBuffer->BlockBuffer, BlockBuffer->Aec2BlockBuffer 2019-09-05 10:53:24 +00:00
echo_canceller3.cc Bypass unnecessary resampling. 2019-10-10 08:38:41 +00:00
echo_canceller3.h Bypass unnecessary resampling. 2019-10-10 08:38:41 +00:00
echo_canceller3_unittest.cc Add flag to APM to force multichannel even with AEC3 2019-09-20 06:36:12 +00:00
echo_path_delay_estimator.cc AEC3: Downmix multichannel signals before delay estimation 2019-09-10 08:16:07 +00:00
echo_path_delay_estimator.h AEC3: Downmix multichannel signals before delay estimation 2019-09-10 08:16:07 +00:00
echo_path_delay_estimator_unittest.cc AEC3: Downmix multichannel signals before delay estimation 2019-09-10 08:16:07 +00:00
echo_path_variability.cc
echo_path_variability.h
echo_path_variability_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
echo_remover.cc AEC3: Send the spectral power estimates for all channels to AecState 2019-10-09 12:51:21 +00:00
echo_remover.h Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
echo_remover_metrics.cc AEC3: Add multichannel support to the residual echo estimator 2019-10-08 11:18:35 +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 AEC3: Analyze multi-channel SubtractorOutput in AecState 2019-10-01 11:36:58 +00:00
echo_remover_unittest.cc Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
erl_estimator.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
erl_estimator.h Format almost everything. 2019-07-08 13:45:15 +00:00
erl_estimator_unittest.cc AEC3: Refactor AecState 2018-10-04 15:01:18 +00:00
erle_estimator.cc AEC3: Add multichannel support to the residual echo estimator 2019-10-08 11:18:35 +00:00
erle_estimator.h AEC3: Add multichannel support to the residual echo estimator 2019-10-08 11:18:35 +00:00
erle_estimator_unittest.cc AEC3: Add multichannel support to the residual echo estimator 2019-10-08 11:18:35 +00:00
fft_buffer.cc Add multi-channel to FftBuffer 2019-09-05 14:10:04 +00:00
fft_buffer.h Add multi-channel to FftBuffer 2019-09-05 14:10:04 +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 Update filter analyzer for multi channel 2019-10-08 15:44:43 +00:00
filter_analyzer.h Update filter analyzer for multi channel 2019-10-08 15:44:43 +00:00
filter_analyzer_unittest.cc AEC3: Fix range in filter analyzer 2019-03-27 16:11:22 +00:00
frame_blocker.cc Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
frame_blocker.h Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
frame_blocker_unittest.cc Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +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 AEC3: Add support in the echo subtractor for handling multiple channels 2019-10-05 07:45:47 +00:00
main_filter_update_gain.h AEC3: Reducing the complexity and heap usage of the adaptive filter 2019-09-05 14:30:49 +00:00
main_filter_update_gain_unittest.cc AEC3: Send the spectral power estimates for all channels to AecState 2019-10-09 12:51:21 +00:00
matched_filter.cc Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
matched_filter.h Format almost everything. 2019-07-08 13:45:15 +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: Downmix multichannel signals before delay estimation 2019-09-10 08:16:07 +00:00
moving_average.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
moving_average.h Format almost everything. 2019-07-08 13:45:15 +00:00
moving_average_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
render_buffer.cc Rename VectorBuffer->SpectrumBuffer, MatrixBuffer->BlockBuffer, BlockBuffer->Aec2BlockBuffer 2019-09-05 10:53:24 +00:00
render_buffer.h Add multi-channel to FftBuffer 2019-09-05 14:10:04 +00:00
render_buffer_unittest.cc Add multi-channel to FftBuffer 2019-09-05 14:10:04 +00:00
render_delay_buffer.cc AEC3: Downmix multichannel signals before delay estimation 2019-09-10 08:16:07 +00:00
render_delay_buffer.h Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
render_delay_buffer_unittest.cc Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
render_delay_controller.cc AEC3: Downmix multichannel signals before delay estimation 2019-09-10 08:16:07 +00:00
render_delay_controller.h AEC3: Downmix multichannel signals before delay estimation 2019-09-10 08:16:07 +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 Format almost everything. 2019-07-08 13:45:15 +00:00
render_delay_controller_unittest.cc AEC3: Downmix multichannel signals before delay estimation 2019-09-10 08:16:07 +00:00
render_signal_analyzer.cc AEC3: Make RenderSignalAnalyzer multi-channel 2019-09-13 06:07:09 +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 AEC3: Make RenderSignalAnalyzer multi-channel 2019-09-13 06:07:09 +00:00
residual_echo_estimator.cc AEC3: Add multichannel support to the residual echo estimator 2019-10-08 11:18:35 +00:00
residual_echo_estimator.h AEC3: Add multichannel support to the residual echo estimator 2019-10-08 11:18:35 +00:00
residual_echo_estimator_unittest.cc AEC3: Send the spectral power estimates for all channels to AecState 2019-10-09 12:51:21 +00:00
reverb_decay_estimator.cc Format almost everything. 2019-07-08 13:45:15 +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 Format almost everything. 2019-07-08 13:45:15 +00:00
reverb_frequency_response.h AEC3: Remove remaining kill-switches 2019-01-29 10:31:45 +00:00
reverb_model.cc AEC3: Add multichannel support to the residual echo estimator 2019-10-08 11:18:35 +00:00
reverb_model.h AEC3: Add multichannel support to the residual echo estimator 2019-10-08 11:18:35 +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 Format almost everything. 2019-07-08 13:45:15 +00:00
shadow_filter_update_gain.cc AEC3: Add support in the echo subtractor for handling multiple channels 2019-10-05 07:45:47 +00:00
shadow_filter_update_gain.h Format almost everything. 2019-07-08 13:45:15 +00:00
shadow_filter_update_gain_unittest.cc AEC3: Add support in the echo subtractor for handling multiple channels 2019-10-05 07:45:47 +00:00
signal_dependent_erle_estimator.cc AEC3: Add multichannel support to the residual echo estimator 2019-10-08 11:18:35 +00:00
signal_dependent_erle_estimator.h AEC3: Add multichannel support to the residual echo estimator 2019-10-08 11:18:35 +00:00
signal_dependent_erle_estimator_unittest.cc AEC3: Add multichannel support to the residual echo estimator 2019-10-08 11:18:35 +00:00
spectrum_buffer.cc Rename VectorBuffer->SpectrumBuffer, MatrixBuffer->BlockBuffer, BlockBuffer->Aec2BlockBuffer 2019-09-05 10:53:24 +00:00
spectrum_buffer.h Remove completed TODOs 2019-09-06 14:53:11 +00:00
stationarity_estimator.cc Rename VectorBuffer->SpectrumBuffer, MatrixBuffer->BlockBuffer, BlockBuffer->Aec2BlockBuffer 2019-09-05 10:53:24 +00:00
stationarity_estimator.h Rename VectorBuffer->SpectrumBuffer, MatrixBuffer->BlockBuffer, BlockBuffer->Aec2BlockBuffer 2019-09-05 10:53:24 +00:00
subband_erle_estimator.cc AEC3: Add multichannel support to the residual echo estimator 2019-10-08 11:18:35 +00:00
subband_erle_estimator.h AEC3: Add multichannel support to the residual echo estimator 2019-10-08 11:18:35 +00:00
subtractor.cc AEC3: Add support in the echo subtractor for handling multiple channels 2019-10-05 07:45:47 +00:00
subtractor.h AEC3: Add support in the echo subtractor for handling multiple channels 2019-10-05 07:45:47 +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: Analyze multi-channel SubtractorOutput in AecState 2019-10-01 11:36:58 +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: Send the spectral power estimates for all channels to AecState 2019-10-09 12:51:21 +00:00
suppression_filter.cc AEC3: Suppression filter handles multiple channels 2019-09-24 13:50:04 +00:00
suppression_filter.h AEC3: Suppression filter handles multiple channels 2019-09-24 13:50:04 +00:00
suppression_filter_unittest.cc AEC3: Suppression filter handles multiple channels 2019-09-24 13:50:04 +00:00
suppression_gain.cc Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
suppression_gain.h Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-03 06:12:32 +00:00
suppression_gain_unittest.cc AEC3: Send the spectral power estimates for all channels to AecState 2019-10-09 12:51:21 +00:00
vector_math.h Format almost everything. 2019-07-08 13:45:15 +00:00
vector_math_unittest.cc Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00