webrtc/modules/audio_processing
Gustaf Ullberg 6670a9d145 AEC3: More efficient comfort noise generation
Comfort noise was generated by picking random angles on the unit circle
for each frequency band and then obtaining points on the unit circle from
{cos(a), -sin(a)}.

In order to reduce complexity, this change introduces a randomly indexed
table of 32 elements over sin(a). cos(a) is obtained by adding an offset
corresponding to pi/2 to the index. The table is pre-scaled by sqrt(2) to
avoid later multiplications.

This change reduces the computational complexity of AEC3 by ~8% with no
audible degradation.

Bug: webrtc:10189
Change-Id: I8cfe2469022fb1fe910ab3f966e55d9d499b7161
Reviewed-on: https://webrtc-review.googlesource.com/c/116787
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26209}
2019-01-11 08:46:05 +00:00
..
aec [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
aec3 AEC3: More efficient comfort noise generation 2019-01-11 08:46:05 +00:00
aec_dump Reland "Isolating APM API build target: making :api an actual target." 2018-11-07 14:30:06 +00:00
aecm [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
agc Remove unnecessary includes of common_types.h 2018-12-07 21:21:13 +00:00
agc2 Re-tuning of VAD in AGC2. 2018-12-10 14:47:29 +00:00
audio_generator Add stub draft of audio generator to APM 2018-03-05 09:28:52 +00:00
echo_detector [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
include Add private voice detection instance to replace public voice detector 2018-12-27 12:00:06 +00:00
logging Add output directory option for audioproc_f data dump files. 2018-11-20 13:30:24 +00:00
ns Move fft4g to proper third_party directory 2018-07-25 15:44:53 +00:00
test APM unit test: echo path gain change events notified. 2019-01-10 11:06:24 +00:00
transient [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
utility [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
vad [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
audio_buffer_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
audio_buffer.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
audio_buffer.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
audio_frame_view_unittest.cc Add namespace 'webrtc' to AudioFrameView. 2018-05-14 12:33:49 +00:00
audio_processing_impl_locking_unittest.cc Update some audio processing tests to new VAD API 2019-01-04 10:31:42 +00:00
audio_processing_impl_unittest.cc APM unit test: echo path gain change events notified. 2019-01-10 11:06:24 +00:00
audio_processing_impl.cc Add private voice detection instance to replace public voice detector 2018-12-27 12:00:06 +00:00
audio_processing_impl.h Add private voice detection instance to replace public voice detector 2018-12-27 12:00:06 +00:00
audio_processing_performance_unittest.cc Update some audio processing tests to new VAD API 2019-01-04 10:31:42 +00:00
audio_processing_unittest.cc Update some audio processing tests to new VAD API 2019-01-04 10:31:42 +00:00
BUILD.gn APM unit test: echo path gain change events notified. 2019-01-10 11:06:24 +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 Reland "Remove APM-internal usage of EchoControlMobile" 2018-10-03 07:45:33 +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 Remove locks from AEC2 and move it into private_submodules_ 2018-11-01 08:40:16 +00:00
echo_cancellation_impl_unittest.cc Remove locks from AEC2 and move it into private_submodules_ 2018-11-01 08:40:16 +00:00
echo_cancellation_impl.cc Remove locks from AEC2 and move it into private_submodules_ 2018-11-01 08:40:16 +00:00
echo_cancellation_impl.h Remove deprecated AudioProcessing::GetStatistics function 2018-11-01 11:21:15 +00:00
echo_control_mobile_bit_exact_unittest.cc Remove locks from AECM and move it into private_submodules_ 2018-11-05 16:25:09 +00:00
echo_control_mobile_impl.cc Remove locks from AECM and move it into private_submodules_ 2018-11-05 16:25:09 +00:00
echo_control_mobile_impl.h Remove locks from AECM and move it into private_submodules_ 2018-11-05 16:25:09 +00:00
echo_control_mobile_unittest.cc Remove locks from AECM and move it into private_submodules_ 2018-11-05 16:25:09 +00:00
gain_control_for_experimental_agc.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
gain_control_for_experimental_agc.h Reset Agc2 on analog gain changes. 2018-08-08 14:36:37 +00:00
gain_control_impl.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
gain_control_impl.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
gain_control_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
gain_controller2_unittest.cc AGC2 adaptive digital false by default 2018-11-21 14:20:15 +00:00
gain_controller2.cc AGC2 adaptive digital: remove unnecessary flag. 2018-11-21 15:01:28 +00:00
gain_controller2.h AGC2 adaptive digital: remove unnecessary flag. 2018-11-21 15:01:28 +00:00
level_estimator_impl.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
level_estimator_impl.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
level_estimator_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
low_cut_filter_unittest.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
low_cut_filter.cc Fix potential null pointer dereference. 2018-12-21 15:36:51 +00:00
low_cut_filter.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
noise_suppression_impl.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
noise_suppression_impl.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
noise_suppression_unittest.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +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_unittest.cc Change echo detector to scoped_refptr 2018-06-14 09:51:41 +00:00
residual_echo_detector.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +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
rms_level_unittest.cc Move some more numeric utility code from rtc_base/ to rtc_base/numerics/ 2017-11-22 12:39:39 +00:00
rms_level.cc Replace rtc::Optional with absl::optional in modules/audio processing 2018-06-19 10:38:56 +00:00
rms_level.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
splitting_filter_unittest.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
splitting_filter.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
splitting_filter.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +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 [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
voice_detection_impl.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
voice_detection_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00