7 Commits

Author SHA1 Message Date
peah
e52a203a56 Echo canceller 3 improvements for setups with headsets.
This CL improves the echo cancellation performance on setups where
headsets are used (systems with such low echo path gain
that no correlation between the render and capture signals
can be found) in 4 ways:
1) The echo path gain for systems with headsets is assumed to be
nonzero.
2) The stationary component of the render power is not included
in nonlinear echo power estimate.
3) The behavior after echo path gain changes is made less cautious.
4) The detection of systems with headsets is made more rapid.

BUG=chromium:712651, webrtc:6018

Review-Url: https://codereview.webrtc.org/2823903003
Cr-Commit-Position: refs/heads/master@{#17768}
2017-04-19 16:03:40 +00:00
peah
6d822adac4 Added forced zero AEC output after call startup and echo path changes
During the first few capture frames, there is no way for the AEC
to tell whether there is echo in the capture signal as the echo
removal functionality in the AEC has not yet seen any render
signal. To avoid initial echo bursts due to this, this CL adds
functionality for forcing the echo suppression gain to zero during
the first 50 blocks (200 ms) after call start and after a reported
echo path change.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2808733002
Cr-Commit-Position: refs/heads/master@{#17624}
2017-04-10 20:52:14 +00:00
peah
89420459d1 Adding support for handling highly reverberant echoes in AEC3.
This CL adds support for handling highly reverberant echoes in
AEC3. The functionality is hardcoded to be have no effect (via
a decay factor of 0), but this CL will be followed by other CLs
for which nonzero decay factors will be allowed.

Apart from this change, this CL also refactors the residual
echo estimation code to make it shorter and more readable.

The changes introduced herein are bitexact (for a decay factor
of 0).

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2804223002
Cr-Commit-Position: refs/heads/master@{#17589}
2017-04-07 13:13:39 +00:00
peah
86afe9d661 Major updates to the echo removal functionality in AEC3
This CL adds fairly significant changes to the echo removal
functionality, the main ones being.
-More centralized control over the echo removal.
-Updated echo suppression gain behavior.
-Significantly increased usage of the linear adaptive filter.
-New echo removal functionality when the linear filter is not usable.

This CL is chained to the CL https://codereview.webrtc.org/2784023002/

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2782423003
Cr-Commit-Position: refs/heads/master@{#17575}
2017-04-06 22:45:32 +00:00
peah
cf02cf13a7 Major AEC3 render pipeline changes
This CL adds major render pipeline changes to the AEC3 code. The reason
for these are that
1) It allows the echo removal unit to receive information about the content
in bands beyond band 0, thereby allowing removal of high-frequency
echoes
2) It allows more controlled handling of the render buffers, allowing proper
buffer behaviour during capture glitches and clock-drift.

Unfortunately, the render pipeline caused a lot of related changes in much
of the rest of the AEC3 files. Most of these are, however, caused by
a change of class name.

Another unfortunate effect of this CL, is that a number of unittest cease to
compile. I chose to temporarily solve that by removing them from the
build using #if/#endif. The reason for that is that those will anyway again
need to be changed in the next review, and doing like this avoids them
having to be reviewed twice.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2784023002
Cr-Commit-Position: refs/heads/master@{#17547}
2017-04-05 21:18:07 +00:00
peah
ebe7778ce9 Further tuning for AEC3 for initial echo suppression
and handling of echo path changes.

This CL add tuning for the AEC3 that
1) Improves the handling of the initial echo suppression
before the linear filter is reliable.
2) Improves the handling of echo path changes.

There are also minor bugfixes included.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2717353002
Cr-Commit-Position: refs/heads/master@{#16873}
2017-02-27 15:29:21 +00:00
peah
522d71bf36 Finalization of the first version of EchoCanceller 3
This CL adds the remaining code for the first version of EchoCanceller3.

TBR=aleloi@webrtc.org
BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2678423005
Cr-Commit-Position: refs/heads/master@{#16801}
2017-02-23 13:16:26 +00:00