Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(136)

Issue 2311833002: Refactoring of the buffering of the nearend signal done inside the AEC (Closed)

Created:
4 years, 3 months ago by peah-webrtc
Modified:
4 years, 3 months ago
Reviewers:
hlundin-webrtc
CC:
webrtc-reviews_webrtc.org, peah-webrtc, Andrew MacDonald, tterriberry_mozilla.com, audio-team_agora.io, hlundin-webrtc, kwiberg-webrtc, minyue-webrtc, the sun, aluebs-webrtc, bjornv1
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

This CL refactors the buffering of the incoming near-end signal inside the AEC. This solves the following issues: -Even though the buffering was previously done using ringbuffers, those were inefficiently used which caused a lot of hidden memcopys. -The ringbuffers wasted a lot of space in the AEC state as they were too long. -The lowest and two upper bands were decoupled in the buffering, which required extra code to handle. -On top of the ringbuffers there was a second linear buffer that was stored in the state which caused even more data to be stored on the state. -The incoming nearend frames were passed to the functions in the form of buffers on the state, which made the code harder to read as it was not immediately clear where the nearend signal was used, and when it was modified. The CL addresses this by replacing all the buffers by two linear buffers: -One buffer before the AEC processing for producing nearend blocks of size 64 that can be processed by the AEC. -One inside the AEC processing that buffers the current nearend block until the next block is processed. The changes have been tested to be bitexact. This CL will be followed by several other CLs, that refactor the other buffers in the AEC. BUG=webrtc:5298, webrtc:6018 Committed: https://crrev.com/906f4030882ad6b7f31658e43a15e6165f3431d0 Cr-Commit-Position: refs/heads/master@{#14141}

Patch Set 1 #

Patch Set 2 : Corrected initialization of the nearend buffer #

Total comments: 3

Patch Set 3 : Changes in response to reviewer comments #

Patch Set 4 : Rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+76 lines, -69 lines) Patch
M webrtc/modules/audio_processing/aec/aec_core.h View 1 2 1 chunk +8 lines, -4 lines 0 comments Download
M webrtc/modules/audio_processing/aec/aec_core.cc View 1 2 20 chunks +67 lines, -65 lines 0 comments Download
M webrtc/modules/audio_processing/aec/echo_cancellation.cc View 1 chunk +1 line, -0 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 21 (13 generated)
peah-webrtc
4 years, 3 months ago (2016-09-06 20:47:50 UTC) #3
hlundin-webrtc
LGTM with nits. https://codereview.webrtc.org/2311833002/diff/60001/webrtc/modules/audio_processing/aec/aec_core.cc File webrtc/modules/audio_processing/aec/aec_core.cc (right): https://codereview.webrtc.org/2311833002/diff/60001/webrtc/modules/audio_processing/aec/aec_core.cc#newcode1830 webrtc/modules/audio_processing/aec/aec_core.cc:1830: // Form an process a block ...
4 years, 3 months ago (2016-09-07 21:28:46 UTC) #9
peah-webrtc
https://codereview.webrtc.org/2311833002/diff/60001/webrtc/modules/audio_processing/aec/aec_core.h File webrtc/modules/audio_processing/aec/aec_core.h (right): https://codereview.webrtc.org/2311833002/diff/60001/webrtc/modules/audio_processing/aec/aec_core.h#newcode132 webrtc/modules/audio_processing/aec/aec_core.h:132: [PART_LEN - (FRAME_LEN - PART_LEN)]; On 2016/09/07 21:28:46, hlundin-webrtc ...
4 years, 3 months ago (2016-09-08 09:50:26 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2311833002/100001
4 years, 3 months ago (2016-09-08 09:50:43 UTC) #13
commit-bot: I haz the power
Try jobs failed on following builders: android_arm64_rel on master.tryserver.webrtc (JOB_TIMED_OUT, no build URL) android_dbg on ...
4 years, 3 months ago (2016-09-08 11:51:10 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2311833002/100001
4 years, 3 months ago (2016-09-08 16:40:08 UTC) #17
commit-bot: I haz the power
Committed patchset #4 (id:100001)
4 years, 3 months ago (2016-09-08 16:49:45 UTC) #19
commit-bot: I haz the power
4 years, 3 months ago (2016-09-08 16:49:58 UTC) #21
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/906f4030882ad6b7f31658e43a15e6165f3431d0
Cr-Commit-Position: refs/heads/master@{#14141}

Powered by Google App Engine
This is Rietveld 408576698