webrtc/modules/audio_processing
Per Åhgren d4e6904d40 AEC3: Reducing the complexity and heap usage of the adaptive filter
This CL reduces the complexity and heap usage of the adaptive filter
in AEC3 by avoiding to compute these for the shadow
filter. In particular it
-Moves to compute the ERL, frequency response and impulse response
 on an on-demand basis.
-Stores the ERL, frequency response and impulse response outside
 of the adaptive filter.

All the changes have been tested for bitexactness on a sizeable
amount of recordings.

Bug: webrtc:10913
Change-Id: If83c236a6e3f2e489be129b9ebf6143a72f521d1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151138
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29081}
2019-09-05 14:30:49 +00:00
..
aec Rename VectorBuffer->SpectrumBuffer, MatrixBuffer->BlockBuffer, BlockBuffer->Aec2BlockBuffer 2019-09-05 10:53:24 +00:00
aec3 AEC3: Reducing the complexity and heap usage of the adaptive filter 2019-09-05 14:30:49 +00:00
aec_dump Format almost everything. 2019-07-08 13:45:15 +00:00
aecm Remove rtc_use_lto GN arg. 2019-08-20 14:00:49 +00:00
agc Remove rtc_use_lto GN arg. 2019-08-20 14:00:49 +00:00
agc2 Format almost everything. 2019-07-08 13:45:15 +00:00
audio_generator (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_detector Format almost everything. 2019-07-08 13:45:15 +00:00
include Use the AEC3 high-pass filter for the whole APM 2019-08-23 20:04:10 +00:00
logging webrtc: Remove semicolons. 2019-02-20 16:02:59 +00:00
ns Format almost everything. 2019-07-08 13:45:15 +00:00
test Fix wrong-import-order pylint errors in quality_assessment.signal_processing module. 2019-08-28 14:48:28 +00:00
transient Migrate WebRTC test infra to ABSL_FLAG. 2019-07-19 06:54:04 +00:00
utility Use the AEC3 high-pass filter for the whole APM 2019-08-23 20:04:10 +00:00
vad Format almost everything. 2019-07-08 13:45:15 +00:00
audio_buffer.cc Increase the maximum supported sample rate to 384000 Hz and add tests 2019-08-29 22:14:25 +00:00
audio_buffer.h Increase the maximum supported sample rate to 384000 Hz and add tests 2019-08-29 22:14:25 +00:00
audio_buffer_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
audio_frame_view_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
audio_processing_impl.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
audio_processing_impl.h Use the AEC3 high-pass filter for the whole APM 2019-08-23 20:04:10 +00:00
audio_processing_impl_locking_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
audio_processing_impl_unittest.cc Revert "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."" 2019-09-02 13:57:07 +00:00
audio_processing_performance_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
audio_processing_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 Reintroduce command line controlled reference data updating for ApmTest.Process 2019-08-26 11:12:55 +00:00
common.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
config_unittest.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
debug.proto Add PlayoutVolumeChange RuntimeSetting. 2019-05-10 14:12:23 +00:00
DEPS Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
echo_cancellation_bit_exact_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
echo_cancellation_impl.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
echo_cancellation_impl.h Format almost everything. 2019-07-08 13:45:15 +00:00
echo_cancellation_impl_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
echo_control_mobile_bit_exact_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
echo_control_mobile_impl.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
echo_control_mobile_impl.h Remove all AudioBuffer code that is not related to storing audio data 2019-08-15 13:49:29 +00:00
echo_control_mobile_unittest.cc Remove the enable flag from AEC2 and AECM 2019-05-03 14:20:32 +00:00
gain_control_config_proxy.cc Add replacement interface for webrtc::GainConrol 2019-03-27 15:19:41 +00:00
gain_control_config_proxy.h Add replacement interface for webrtc::GainConrol 2019-03-27 15:19:41 +00:00
gain_control_config_proxy_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
gain_control_for_experimental_agc.cc Add replacement interface for webrtc::GainConrol 2019-03-27 15:19:41 +00:00
gain_control_for_experimental_agc.h Add replacement interface for webrtc::GainConrol 2019-03-27 15:19:41 +00:00
gain_control_impl.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
gain_control_impl.h Format almost everything. 2019-07-08 13:45:15 +00:00
gain_control_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
gain_controller2.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
gain_controller2.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
gain_controller2_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
high_pass_filter.cc Use the AEC3 high-pass filter for the whole APM 2019-08-23 20:04:10 +00:00
high_pass_filter.h Use the AEC3 high-pass filter for the whole APM 2019-08-23 20:04:10 +00:00
high_pass_filter_unittest.cc Use the AEC3 high-pass filter for the whole APM 2019-08-23 20:04:10 +00:00
level_estimator_impl.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
level_estimator_impl.h Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
level_estimator_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
noise_suppression_impl.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
noise_suppression_impl.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
noise_suppression_proxy.cc Add noise suppression settings to AudioProcessing::Config 2019-01-14 16:17:19 +00:00
noise_suppression_proxy.h (7) Rename files to snake_case: remove forwarding headers 2019-01-26 00:33:46 +00:00
noise_suppression_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
OWNERS Adding alessiob@ and minyue@ as owners of APM. 2018-07-02 07:45:31 +00:00
render_queue_item_verifier.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
residual_echo_detector.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
residual_echo_detector.h Add more parameters to the Initialize function of the echo detector. 2018-03-15 09:21:56 +00:00
residual_echo_detector_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rms_level.cc Removing all external access to the integer sample data in AudioBuffer 2019-08-20 08:36:47 +00:00
rms_level.h Removing all external access to the integer sample data in AudioBuffer 2019-08-20 08:36:47 +00:00
rms_level_unittest.cc Removing all external access to the integer sample data in AudioBuffer 2019-08-20 08:36:47 +00:00
splitting_filter.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
splitting_filter.h Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
splitting_filter_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
three_band_filter_bank.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
three_band_filter_bank.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
typing_detection.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
typing_detection.h Reland "Export symbols needed by the Chromium component build (part 1)." 2018-10-11 09:50:21 +00:00
voice_detection_impl.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00
voice_detection_impl.h Remove all AudioBuffer code that is not related to storing audio data 2019-08-15 13:49:29 +00:00
voice_detection_unittest.cc Reland "Simplification and refactoring of the AudioBuffer code" 2019-08-22 10:34:05 +00:00