webrtc/modules/audio_processing
Per Åhgren 1883d3e231 Optimizations and refactoring of the APM 3-band split filter
This CL refactors and optimizes the 3-band split-filter in APM, which
is a very computationally complex component.

Beyond optimizing the code, the filter coefficients are also quantized
to avoid denormals.

The changes reduces the complexity of the split filter by about 30-50%.

The CL has been tested for bitexactness on a number of aecdump
recordings.

(the CL also removes the now unused code for the sparse_fir_filter)

Bug: webrtc:6181
Change-Id: If45f8d1f189c6812ccb03721156c77eb68181211
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168189
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30592}
2020-02-24 13:19:14 +00:00
..
aec3 AEC3: Avoid heap-allocations in sums of the values in nested vectors 2020-02-13 21:53:26 +00:00
aec_dump Reformat GN files. 2020-01-21 12:13:11 +00:00
aecm Use source_sets in component builds and static_library in release builds. 2019-10-17 21:17:18 +00:00
agc Cleanup log formatting in modules/audio_processing 2020-01-27 09:42:56 +00:00
agc2 Reformat GN files. 2020-01-21 12:13:11 +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 Removing deprecated legacy noise suppressor 2020-01-31 07:14:25 +00:00
logging Add floating point support for writing and reading wav files 2020-01-30 13:38:19 +00:00
ns Reformat GN files. 2020-01-21 12:13:11 +00:00
test Remove wildcard ownership for build files. 2020-02-19 14:05:46 +00:00
transient Removing deprecated legacy noise suppressor 2020-01-31 07:14:25 +00:00
utility Reformat GN files. 2020-01-21 12:13:11 +00:00
vad Use source_sets in component builds and static_library in release builds. 2019-10-17 21:17:18 +00:00
audio_buffer.cc AGC: Removing unnneccessary copying and changing to using const 2019-11-22 20:14:16 +00:00
audio_buffer.h AGC: Removing unnneccessary copying and changing to using const 2019-11-22 20:14:16 +00:00
audio_buffer_unittest.cc Add ability to disable detailed error message in RTC_CHECKs 2019-11-28 17:51:00 +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 Add aecdump experiment strings for injected custom processors 2020-02-18 15:53:59 +00:00
audio_processing_impl.h Removing deprecated legacy noise suppressor 2020-01-31 07:14:25 +00:00
audio_processing_impl_locking_unittest.cc Remove unused AEC delay offset API 2020-01-17 11:09:51 +00:00
audio_processing_impl_unittest.cc Merge the preambles of the ProcessStream implementations 2020-01-03 14:37:41 +00:00
audio_processing_performance_unittest.cc Remove deprecated legacy AEC code 2019-12-09 10:37:49 +00:00
audio_processing_unittest.cc Cleanup log formatting in modules/audio_processing 2020-01-27 09:42:56 +00:00
BUILD.gn Optimizations and refactoring of the APM 3-band split filter 2020-02-24 13:19:14 +00:00
common.h
config_unittest.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
debug.proto Audio Processing Module: add play-out audio device runtime information 2019-11-07 13:33:09 +00:00
DEPS
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 Removing deprecated legacy noise suppressor 2020-01-31 07:14:25 +00:00
echo_control_mobile_impl.h Removing deprecated legacy noise suppressor 2020-01-31 07:14:25 +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_impl.cc Reland "Replace the ExperimentalAgc config with the new config format" 2020-01-17 10:09:09 +00:00
gain_control_impl.h Reland "Replace the ExperimentalAgc config with the new config format" 2020-01-17 10:09:09 +00:00
gain_control_unittest.cc Reland "Replace the ExperimentalAgc config with the new config format" 2020-01-17 10:09:09 +00:00
gain_controller2.cc Concatenate string literals at compile time. 2020-01-14 14:47:48 +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 Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
high_pass_filter.cc Make the high-pass filter operate in full-band 2019-12-18 16:01:24 +00:00
high_pass_filter.h Reduce for reallocations the pre-amplifier and high-pass filter 2020-01-03 14:10:21 +00:00
high_pass_filter_unittest.cc Make the high-pass filter operate in full-band 2019-12-18 16:01:24 +00:00
level_estimator.cc Remove AudioProcessing::level_estimator() getter 2019-10-11 18:08:17 +00:00
level_estimator.h Remove AudioProcessing::level_estimator() getter 2019-10-11 18:08:17 +00:00
level_estimator_unittest.cc Remove AudioProcessing::level_estimator() getter 2019-10-11 18:08:17 +00:00
OWNERS Remove wildcard ownership for build files. 2020-02-19 14:05:46 +00:00
render_queue_item_verifier.h
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 Add directive to make webrtc metrics optional. 2019-12-09 13:55:50 +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 Optimizations and refactoring of the APM 3-band split filter 2020-02-24 13:19:14 +00:00
splitting_filter.h Optimizations and refactoring of the APM 3-band split filter 2020-02-24 13:19:14 +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 Optimizations and refactoring of the APM 3-band split filter 2020-02-24 13:19:14 +00:00
three_band_filter_bank.h Optimizations and refactoring of the APM 3-band split filter 2020-02-24 13:19:14 +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.cc Delete voice_detection() pointer to submodule 2019-10-07 13:06:05 +00:00
voice_detection.h Delete voice_detection() pointer to submodule 2019-10-07 13:06:05 +00:00
voice_detection_unittest.cc Delete voice_detection() pointer to submodule 2019-10-07 13:06:05 +00:00