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

Issue 1494563002: Refactoring (bitexact) of the EchoSuppressor in WebRTC AEC (#1) (Closed)

Created:
5 years ago by peah-webrtc
Modified:
5 years ago
CC:
webrtc-reviews_webrtc.org, Andrew MacDonald, tterriberry_mozilla.com, audio-team_agora.io, hlundin-webrtc, kwiberg-webrtc, the sun, aluebs-webrtc, bjornv1
Base URL:
https://chromium.googlesource.com/external/webrtc.git@master
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

Moved code into the lowest level of EchoSuppression to simplify future refactoring and development. In more detail: 1) Moved the updating of eBuf from the EchoSubtraction method to the EchoSuppression method as it is only used in the latter. 2) Moved the computation of efw and dfw from the SubbandCoherence method as those are actually the analysis filterbank computation that is not directly related to the coherence. 3) As a consequence of 2) 3 functions needed to be replaced by the generic function pointer scheme used in WebRTCAec as they have optimized versions for SSE2 and NEON (which before were local to each of the aec_core*.c files. Motivation: Apart from making sense from a logical point of view, the changes will a) Allow eBuf stored in half the size on the state. b) Allow simpler switching between using the the microphone signal and echo subtractor output in the echo suppressor. c) Allow further refactoring that move all the changes to eBuf to one method (currently those are happening in at least 4 different methods. Drawbacks: i) dfw is moved to EchoSuppression which increases the stack usage for that method. This will, however, be improved once further refactoring can be done. The changes have been tested for bitexactness on Linux using a quite extensive dataset. BUG=webrtc:5201 Committed: https://crrev.com/afeb43897a5c72ddef73e7f6de5feea799b827a5 Cr-Commit-Position: refs/heads/master@{#10954}

Patch Set 1 #

Patch Set 2 : Fixed the echo suppressor function call parameter order #

Total comments: 10

Patch Set 3 : Changed to use the nonoptimized version of StoreComplex #

Patch Set 4 : Merge with master #

Patch Set 5 : Fixed error in the function header #

Unified diffs Side-by-side diffs Delta from patch set Stats (+66 lines, -71 lines) Patch
M webrtc/modules/audio_processing/aec/aec_core.c View 1 2 7 chunks +38 lines, -25 lines 0 comments Download
M webrtc/modules/audio_processing/aec/aec_core_internal.h View 1 1 chunk +11 lines, -0 lines 0 comments Download
M webrtc/modules/audio_processing/aec/aec_core_neon.c View 1 2 3 4 5 chunks +8 lines, -23 lines 0 comments Download
M webrtc/modules/audio_processing/aec/aec_core_sse2.c View 5 chunks +9 lines, -23 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 33 (12 generated)
peah-webrtc
5 years ago (2015-12-02 15:18:06 UTC) #3
minyue-webrtc
Good, just one comment from me https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c File webrtc/modules/audio_processing/aec/aec_core.c (left): https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c#oldcode1402 webrtc/modules/audio_processing/aec/aec_core.c:1402: memcpy(aec->eBuf + PART_LEN, ...
5 years ago (2015-12-03 12:42:51 UTC) #5
peah-webrtc
https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c File webrtc/modules/audio_processing/aec/aec_core.c (left): https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c#oldcode1402 webrtc/modules/audio_processing/aec/aec_core.c:1402: memcpy(aec->eBuf + PART_LEN, On 2015/12/03 12:42:51, minyue-webrtc wrote: > ...
5 years ago (2015-12-03 15:00:36 UTC) #6
minyue-webrtc
On 2015/12/03 15:00:36, peah-webrtc wrote: > https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c > File webrtc/modules/audio_processing/aec/aec_core.c (left): > > https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c#oldcode1402 > ...
5 years ago (2015-12-04 07:28:04 UTC) #7
peah-webrtc
On 2015/12/04 07:28:04, minyue-webrtc wrote: > On 2015/12/03 15:00:36, peah-webrtc wrote: > > > https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c ...
5 years ago (2015-12-04 09:34:46 UTC) #8
minyue-webrtc
On 2015/12/04 09:34:46, peah-webrtc wrote: > On 2015/12/04 07:28:04, minyue-webrtc wrote: > > On 2015/12/03 ...
5 years ago (2015-12-04 09:35:34 UTC) #9
hlundin-webrtc
LG, but I have two questions. https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c File webrtc/modules/audio_processing/aec/aec_core.c (right): https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c#newcode1031 webrtc/modules/audio_processing/aec/aec_core.c:1031: // Update eBuf ...
5 years ago (2015-12-04 09:56:58 UTC) #10
peah-webrtc
https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c File webrtc/modules/audio_processing/aec/aec_core.c (right): https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c#newcode1031 webrtc/modules/audio_processing/aec/aec_core.c:1031: // Update eBuf with echo subtractor output. On 2015/12/04 ...
5 years ago (2015-12-04 14:14:49 UTC) #11
peah-webrtc
5 years ago (2015-12-04 14:26:07 UTC) #12
hlundin-webrtc
https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c File webrtc/modules/audio_processing/aec/aec_core.c (right): https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c#newcode1031 webrtc/modules/audio_processing/aec/aec_core.c:1031: // Update eBuf with echo subtractor output. On 2015/12/04 ...
5 years ago (2015-12-04 15:04:04 UTC) #13
peah-webrtc
https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c File webrtc/modules/audio_processing/aec/aec_core.c (right): https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c#newcode1031 webrtc/modules/audio_processing/aec/aec_core.c:1031: // Update eBuf with echo subtractor output. On 2015/12/04 ...
5 years ago (2015-12-04 22:37:52 UTC) #14
hlundin-webrtc
lgtm https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c File webrtc/modules/audio_processing/aec/aec_core.c (right): https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c#newcode1031 webrtc/modules/audio_processing/aec/aec_core.c:1031: // Update eBuf with echo subtractor output. On ...
5 years ago (2015-12-08 11:48:52 UTC) #15
minyue-webrtc
On 2015/12/04 07:28:04, minyue-webrtc wrote: > On 2015/12/03 15:00:36, peah-webrtc wrote: > > > https://codereview.webrtc.org/1494563002/diff/20001/webrtc/modules/audio_processing/aec/aec_core.c ...
5 years ago (2015-12-08 12:27:26 UTC) #16
minyue-webrtc
On 2015/12/08 12:27:26, minyue-webrtc wrote: > On 2015/12/04 07:28:04, minyue-webrtc wrote: > > On 2015/12/03 ...
5 years ago (2015-12-08 13:24:18 UTC) #17
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1494563002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1494563002/40001
5 years ago (2015-12-08 16:18:05 UTC) #19
commit-bot: I haz the power
Try jobs failed on following builders: ios_arm64_rel on tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/ios_arm64_rel/builds/6087) ios_dbg on tryserver.webrtc (JOB_FAILED, ...
5 years ago (2015-12-08 16:20:05 UTC) #21
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1494563002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1494563002/60001
5 years ago (2015-12-09 10:04:56 UTC) #24
commit-bot: I haz the power
Try jobs failed on following builders: ios_rel on tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/ios_rel/builds/9990)
5 years ago (2015-12-09 10:06:37 UTC) #26
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1494563002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1494563002/80001
5 years ago (2015-12-09 14:53:57 UTC) #29
commit-bot: I haz the power
Committed patchset #5 (id:80001)
5 years ago (2015-12-09 16:50:30 UTC) #31
commit-bot: I haz the power
5 years ago (2015-12-09 16:50:35 UTC) #33
Message was sent while issue was closed.
Patchset 5 (id:??) landed as
https://crrev.com/afeb43897a5c72ddef73e7f6de5feea799b827a5
Cr-Commit-Position: refs/heads/master@{#10954}

Powered by Google App Engine
This is Rietveld 408576698