726 Commits

Author SHA1 Message Date
peah
f3669661bd Removed the issue with the leading semicolon in the audio
processing module experiment description that was present
when AEC3 was not activated and when RefinedAdaptiveFilter
was activated.

BUG=webrtc:5778, webrtc:5777

Review URL: https://codereview.webrtc.org/1899123002

Cr-Commit-Position: refs/heads/master@{#12424}
2016-04-19 10:40:15 +00:00
peah
594a877f2d Cleaned up the EchoSuppression method in the AEC so that it
does not have to use the aec state as an input.

Furthermore, the debug dump output of e_fft was removed as
it is not really used in any analysis scripts.

BUG=webrtc:5298

Review URL: https://codereview.webrtc.org/1883293003

Cr-Commit-Position: refs/heads/master@{#12387}
2016-04-16 11:04:04 +00:00
peah
0332c2db39 Added support in the AEC for refined filter adaptation.
The following algorithmic functionality was added:
-Add support for an exact regressor power to be computed
 which avoids the issue with the updating of the filter
 sometimes being unstable.
-Lowered the fixed step size of the adaptive filter to 0.05
 which significantly reduces the sensitivity of the
 adaptive filter to near-end noise, nonlinearities,
 doubletalk and the unmodelled echo path tail. It also
 reduces the tracking speed of the adaptive filter but the
 chosen value proved to give a sufficient tradeoff for the
 requirements on the adaptive filter.

To allow the new functionality to be selectively applied the following was done:
-A new Config was added for selectively activating the functionality.
-Functionality was added in the audioprocessing  and echocancellationimpl classes
 for passing the activation of the functionality down to the AEC algorithms.

To make the code for the introduction of the functionality clean,
the following refactoring was done:
-The selection of the step size was moved to a single place.
-The constant for the step size of the adaptive filter in extended filter mode was
 made local.
-The state variable storing the step-size was renamed to a more describing name.

When the new functionality is not activated, the changes
have been tested for bitexactness on Linux.

TBR=minyue@webrtc.org
BUG=webrtc:5778, webrtc:5777

Review URL: https://codereview.webrtc.org/1887003002

Cr-Commit-Position: refs/heads/master@{#12384}
2016-04-15 18:23:36 +00:00
peah
7789fe7ab1 Added a protobuf field for the audio processing module to store the status of temporary experimental features that
are active in the module and its submodules.

BUG=webrtc:5778, webrtc:5777

Review URL: https://codereview.webrtc.org/1886233003

Cr-Commit-Position: refs/heads/master@{#12371}
2016-04-15 08:19:47 +00:00
aluebs
2fae89ed0d Disable Intelligibility Enhancer for high SNRs
Review URL: https://codereview.webrtc.org/1878133002

Cr-Commit-Position: refs/heads/master@{#12352}
2016-04-13 18:24:11 +00:00
peah
21a395ddf7 Moved the aec_rdft*.c files to be build using C++
BUG=webrtc:5298
NOPRESUBMIT=true

Review URL: https://codereview.webrtc.org/1881153003

Cr-Commit-Position: refs/heads/master@{#12346}
2016-04-13 14:53:57 +00:00
peah
3eeb2e89b3 Moved the audioprocessing unittest to the audio_processing folder
where the other audioprocessing unittests are located.

BUG=webrtc:5298

Review URL: https://codereview.webrtc.org/1846323002

Cr-Commit-Position: refs/heads/master@{#12343}
2016-04-13 11:10:09 +00:00
peah
bdb7af692f Changed the delay estimator to be built using C++
BUG=webrtc:5724
NOPRESUBMIT=true

Review URL: https://codereview.webrtc.org/1878613002

Cr-Commit-Position: refs/heads/master@{#12336}
2016-04-12 21:47:46 +00:00
peah
b97526ed65 Corrected include of C++ header file in AECM that was done using external inclusion
BUG=

Review URL: https://codereview.webrtc.org/1876143002

Cr-Commit-Position: refs/heads/master@{#12327}
2016-04-12 08:20:47 +00:00
peah
c7bdf8a729 Added storing of the reverse output rate and number of channels in APM protobuf recordings.
Support for reading the newly added fields will be added in a another CL.

BUG=webrtc:5759, webrtc:5724

Review URL: https://codereview.webrtc.org/1878533002

Cr-Commit-Position: refs/heads/master@{#12316}
2016-04-11 14:05:56 +00:00
peah
2704512f7b What was done was
-changed filenames to *.cc
-fixed issues with implicit casts causing build errors.

All other CL warnings were ignored as the original
code is not changed, merely moved.

BUG=webrtc:5724
NOPRESUBMIT=true

Review URL: https://codereview.webrtc.org/1857153002

Cr-Commit-Position: refs/heads/master@{#12307}
2016-04-11 05:38:19 +00:00
peah
423d236a54 As the ClosestNativeRate method returns the closest native
rate that is higher than the specified rate, and not
the closest native rate the need for a name change has been
raised. This CL addresses that.

BUG=webrtc:5298

Review URL: https://codereview.webrtc.org/1863023002

Cr-Commit-Position: refs/heads/master@{#12302}
2016-04-09 23:06:59 +00:00
minyue
5045337133 Pulling AEC divergent filter fraction.
BUG=

Review URL: https://codereview.webrtc.org/1862393002

Cr-Commit-Position: refs/heads/master@{#12279}
2016-04-07 13:36:49 +00:00
minyue
e10fc3fb2d Adding fraction of filter divergence in AEC metrics.
With the current AEC algorithm, the divergence of the echo cancelling linear filter is a strong signal of non-transparency. During double talk, it can result in a ducking artifacts.

In this CL, a metric that tells the fraction of filter divergence is added. This can measure the severity of non-transparency.

BUG=

Review URL: https://codereview.webrtc.org/1739993003

Cr-Commit-Position: refs/heads/master@{#12276}
2016-04-07 09:57:00 +00:00
peah
dc2242d351 Added a query function for whether submodules are enabled
that can be called from the render side without making APM
singlethreaded.

This CL is addressing the problems with high render-side
call duration that were triggered by the CL
https://codereview.webrtc.org/1844583003

BUG=webrtc:5736

Review URL: https://codereview.webrtc.org/1859243002

Cr-Commit-Position: refs/heads/master@{#12266}
2016-04-06 16:31:07 +00:00
peah
0bf612b3ec This CL is partially reverting the effects that
were added in https://codereview.webrtc.org/1773173002.

The reason for the revert is that for some scenarios
that CL causes problems in the coherence estimate used
in the AEC, which in turn causes echo leakage.

The reason for not reverting the actual CL is that
it would cause subsequent CLs to be reverted as well.
Therefore the choice was made to in this CK
instead revert the effects of that CL.

With the changes in this CL, the behavior is bitexact
to what it was before the CL mentioned above.

TBR=aluebs@webrtc.org

BUG=webrtc:5725

Review URL: https://codereview.webrtc.org/1867483003

Cr-Commit-Position: refs/heads/master@{#12259}
2016-04-06 09:47:52 +00:00
peah
fc3ef3e5c1 Removed unused code and simplified the code for the AEC metrics
BUG=

Review URL: https://codereview.webrtc.org/1842003003

Cr-Commit-Position: refs/heads/master@{#12258}
2016-04-06 09:28:32 +00:00
Alejandro Luebs
2a5609de14 Increase kHasVoiceCountNear by one in audio_processing_unittest
I added more test cases here: https://codereview.webrtc.org/1862553002/
But one of these cases failed on Android64 Tests.
I am increasing a tolerance by 1 to make this test pass.

TBRing this, since the bot is red and it is a small fix.

TBR=peah@webrtc.org

Review URL: https://codereview.webrtc.org/1862933002 .

Cr-Commit-Position: refs/heads/master@{#12250}
2016-04-06 01:16:59 +00:00
Alejandro Luebs
40cbec5415 Fix the number of frames used when interleaving in AudioBuffer::InterleaveTo()
R=henrik.lundin@webrtc.org, peah@webrtc.org
TBR=tina.legrand@webrtc.org

Review URL: https://codereview.webrtc.org/1862553002 .

Cr-Commit-Position: refs/heads/master@{#12249}
2016-04-06 00:29:29 +00:00
peah
faed4ab24b Revert of Moved ring-buffer related files from common_audio to audio_processing" (patchset #2 id:20001 of https://codereview.webrtc.org/1858123003/ )
Reason for revert:
Because of down-stream dependencies, this CL needs to be reverted.

The dependencies will be resolved and then the CL will be relanded.

Original issue's description:
> Revert "Revert of Moved ring-buffer related files from common_audio to audio_processing (patchset #8 id:150001 of https://codereview.webrtc.org/1846903004/ )"
>
> This reverts commit c54aad6ae07fe2a44a65be403386bd7d7d865e5b.
>
> BUG=webrtc:5724
> NOPRESUBMIT=true
>
> Committed: https://crrev.com/8864fe5e08f8d8711612526dee9a812adfcd3be1
> Cr-Commit-Position: refs/heads/master@{#12247}

TBR=henrik.lundin@webrtc.org,ivoc@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5724

Review URL: https://codereview.webrtc.org/1855393004

Cr-Commit-Position: refs/heads/master@{#12248}
2016-04-05 21:57:55 +00:00
peah
8864fe5e08 Revert "Revert of Moved ring-buffer related files from common_audio to audio_processing (patchset #8 id:150001 of https://codereview.webrtc.org/1846903004/ )"
This reverts commit c54aad6ae07fe2a44a65be403386bd7d7d865e5b.

BUG=webrtc:5724
NOPRESUBMIT=true

Review URL: https://codereview.webrtc.org/1858123003

Cr-Commit-Position: refs/heads/master@{#12247}
2016-04-05 21:42:51 +00:00
aluebs
853c840801 Re-enable NoiseSuppressionBitExactnessTest
they were disabled here: https://codereview.webrtc.org/1821443003/

BUG=webrtc:5728

Review URL: https://codereview.webrtc.org/1859713002

Cr-Commit-Position: refs/heads/master@{#12245}
2016-04-05 17:03:42 +00:00
minyue
9705bb81d6 Fixing an error in DebugDumpTest.
A recent change in DebugDumpTest introduced an error

https://codereview.webrtc.org/1810463002/

The file was not fully scanned.

This CL fixes it.

BUG=

Review URL: https://codereview.webrtc.org/1864453002

Cr-Commit-Position: refs/heads/master@{#12236}
2016-04-05 11:39:20 +00:00
peah
c54aad6ae0 Revert of Moved ring-buffer related files from common_audio to audio_processing (patchset #8 id:150001 of https://codereview.webrtc.org/1846903004/ )
Reason for revert:
This CL caused a google3 breakage due to dependencies in Google3.

I will fix that, and reland.

Original issue's description:
> Moved ring-buffer related files from common_audio to audio_processing
>
> BUG=webrtc:5724
> NOPRESUBMIT=true
>
> Committed: https://crrev.com/711ccc8d96490f58cc3d7fd9207c19d4d881d4dc
> Cr-Commit-Position: refs/heads/master@{#12227}

TBR=ivoc@webrtc.org,henrik.lundin@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5724

Review URL: https://codereview.webrtc.org/1856323002

Cr-Commit-Position: refs/heads/master@{#12232}
2016-04-05 07:02:35 +00:00
peah
6c393244b0 Revert of Moved the ringbuffer to be built using C++ (patchset #2 id:20001 of https://codereview.webrtc.org/1851873003/ )
Reason for revert:
This CL is dependent on the  CL https://codereview.webrtc.org/1846903004/ which caused a google3 breakage due to dependencies in Google3.

I will fix that, and reland this CL.

Original issue's description:
> Moved the ringbuffer to be built using C++
>
> BUG=webrtc:5724
>
> Committed: https://crrev.com/677e5774eaf287fa02f75fd5c8ad3f9ded9ed9c4
> Cr-Commit-Position: refs/heads/master@{#12230}

TBR=ivoc@webrtc.org,henrik.lundin@webrtc.org,kwiberg@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5724

Review URL: https://codereview.webrtc.org/1858873003

Cr-Commit-Position: refs/heads/master@{#12231}
2016-04-05 07:00:50 +00:00
peah
677e5774ea Moved the ringbuffer to be built using C++
BUG=webrtc:5724

Review URL: https://codereview.webrtc.org/1851873003

Cr-Commit-Position: refs/heads/master@{#12230}
2016-04-05 06:58:21 +00:00
simon.hosie
de81ea8524 Keep reads within buffer in AnalysisUpdateNeon().
BUG=webrtc:5631

Review URL: https://codereview.webrtc.org/1823763004

Cr-Commit-Position: refs/heads/master@{#12228}
2016-04-05 06:15:44 +00:00
peah
711ccc8d96 Moved ring-buffer related files from common_audio to audio_processing
BUG=webrtc:5724
NOPRESUBMIT=true

Review URL: https://codereview.webrtc.org/1846903004

Cr-Commit-Position: refs/heads/master@{#12227}
2016-04-05 05:57:48 +00:00
aluebs
bfedbf9eae Make naming of APM perf test consistent
BUG=599953

Review URL: https://codereview.webrtc.org/1853543003

Cr-Commit-Position: refs/heads/master@{#12225}
2016-04-04 23:53:42 +00:00
Alejandro Luebs
2d66cf9d8d Tweak kDecayRate in the IntelligibilityEnhancer
This makes the addaptation of the IntelligibilityEnhancer slower, which makes it take more time to kick in or when the background noise changes drastically. But on the other hand, it reduces the risk of clipping and makes the changing in coloring less noticeable.

R=henrik.lundin@webrtc.org, peah@webrtc.org, turaj@webrtc.org

Review URL: https://codereview.webrtc.org/1848123002 .

Cr-Commit-Position: refs/heads/master@{#12202}
2016-04-01 20:59:44 +00:00
Alejandro Luebs
3b14996046 Fix normalization of noise estimate in NoiseSuppressor
R=henrik.lundin@webrtc.org, peah@webrtc.org, turaj@webrtc.org

Review URL: https://codereview.webrtc.org/1821443003 .

Cr-Commit-Position: refs/heads/master@{#12201}
2016-04-01 20:54:47 +00:00
brucedawson
d81dc49c5b Fix C4434 warning about 32-bit shift assigned to 64-bits
VS 2015 has a new or louder warning about 32-bit shifts that are then
assigned to a 64-bit target. This type of code triggers it:

int64_t size = 1 << shift_amount;

Because the '1' being shifted is a 32-bit int the result of the shift
will be a 32-bit result, so assigning it to a 64-bit variable is just
misleading.

In this case the code that triggers it is this:

  size_t window_size = static_cast<size_t>(1 << shift_amount);

The destination is a size_t so the warning only shows up on 64-bit
builds and doesn't indicate a real bug. It's curious that the code
had a cast already - presumably to suppress some other warning - but
the cast is not in the ideal place and doesn't avoid this new warning.
Moving the cast allows shift_amount to be log2(size_t) and allows
enabling C4334 in Chromium.

BUG=593448

Review URL: https://codereview.webrtc.org/1849753004

Cr-Commit-Position: refs/heads/master@{#12199}
2016-04-01 17:16:21 +00:00
Alejandro Luebs
63a2c13d6d Only split into bands when the reverse stream is analyzed in the APM
BUG=596079
R=henrik.lundin@webrtc.org, peah@webrtc.org

Review URL: https://codereview.webrtc.org/1844583003 .

Cr-Commit-Position: refs/heads/master@{#12187}
2016-04-01 01:04:47 +00:00
kwiberg
4a206a96c1 Remove webrtc::ScopedVector
We can (and should) use std::vector<std::unique_ptr<T>> instead.
Because it's standard, and because it's safer since callers have to
manually wrap elements in std::unique_ptr before inserting them and
manually unwrap them after inserting them.

Review URL: https://codereview.webrtc.org/1839603002

Cr-Commit-Position: refs/heads/master@{#12182}
2016-03-31 17:24:31 +00:00
peah
9846651cc4 Changed the names of some of the bitexactness unittests to
be similar to the other file names of the tests.

(Also removed a redundant blank line in the highpass filter unittest
file).

BUG=

Review URL: https://codereview.webrtc.org/1841363002

Cr-Commit-Position: refs/heads/master@{#12171}
2016-03-30 22:34:01 +00:00
peah
51fbdd6ada Changed tests to be DISABLED on non-supported platforms rather than not to build at all.
BUG=

Review URL: https://codereview.webrtc.org/1840173005

Cr-Commit-Position: refs/heads/master@{#12170}
2016-03-30 21:58:42 +00:00
aluebs
fc737e5442 Fix division by zero in NonlinearBeamformer
BUG=webrtc:5703

Review URL: https://codereview.webrtc.org/1841323002

Cr-Commit-Position: refs/heads/master@{#12163}
2016-03-30 16:37:47 +00:00
peah
7ea928e8e2 Renamed the test::BitExactFrame method to test::VectorDifferenceBounded.
BUG=

Review URL: https://codereview.webrtc.org/1841213002

Cr-Commit-Position: refs/heads/master@{#12162}
2016-03-30 15:14:02 +00:00
peah
059dadf0c4 Added missing TODOs in the beamformer unit test code.
BUG=

Review URL: https://codereview.webrtc.org/1835833004

Cr-Commit-Position: refs/heads/master@{#12151}
2016-03-29 22:15:14 +00:00
Alejandro Luebs
af2f3dd206 Reland: Add IntelligibilityEnhancer support to audioproc_float
Landed originally here: https://codereview.webrtc.org/1800413002/

TBR=peah@webrtc.org

Review URL: https://codereview.webrtc.org/1843823002 .

Cr-Commit-Position: refs/heads/master@{#12150}
2016-03-29 21:54:44 +00:00
Alejandro Luebs
dd56fa8642 Revert "Add IntelligibilityEnhancer support to audioproc_float"
Revert reason: I unintentionally added a patch when rebasing that is breaking the bots.

This reverts commit 98c69a0ee785adeb9d95fffeb55cdb6cedbe82c6.

BUG=

Review URL: https://codereview.webrtc.org/1837313002 .

Cr-Commit-Position: refs/heads/master@{#12148}
2016-03-29 20:05:46 +00:00
Alejandro Luebs
98c69a0ee7 Add IntelligibilityEnhancer support to audioproc_float
R=peah@webrtc.org

Review URL: https://codereview.webrtc.org/1800413002 .

Cr-Commit-Position: refs/heads/master@{#12147}
2016-03-29 19:43:42 +00:00
peah
57d5a2e4df Reland of Added a bitexactness test for the gain controller in the audio processing module.
This is a reland of the CL https://codereview.webrtc.org/1812433002/ which
was reverted due to incorrect bitexactness on Android bots.

The changes done in the relanding CL is to Deactivate the test for Android and reduce the number of interations.

TBR=henrik.lundin@webrtc.org
BUG=webrtc:5339

Review URL: https://codereview.webrtc.org/1835073004

Cr-Commit-Position: refs/heads/master@{#12143}
2016-03-29 16:48:44 +00:00
peah
ceef04613b Added a bitexactness test for the beamformer in the audio processing module
BUG=webrtc:5341

Review URL: https://codereview.webrtc.org/1806853004

Cr-Commit-Position: refs/heads/master@{#12137}
2016-03-29 12:35:56 +00:00
peah
d4f6ea70b5 Re-reland of Added a bitexactness test for the echo canceller in the audio processing module.
This is a reland of the CL https://codereview.webrtc.org/1827833006/ that was reverted due to problems of the bitexactness of the Chromium Android64 and Android32 bots.

The reverting CL was https://codereview.webrtc.org/1827863003/

This new action taken in this CL is to disable the test for all Android, ARM and ARM64 platforms

TBR=henrik.lundin@webrtc.org
BUG=webrtc:5337

Review URL: https://codereview.webrtc.org/1829193002

Cr-Commit-Position: refs/heads/master@{#12131}
2016-03-29 07:37:51 +00:00
peah
4b0c74172e Added a bitexactness test for the intelligibility enhancer in the audio processing module
BUG=webrtc:5242

Review URL: https://codereview.webrtc.org/1814723003

Cr-Commit-Position: refs/heads/master@{#12129}
2016-03-29 06:43:57 +00:00
peah
918d015737 Revert of Added a bitexactness test for the gain controller in the audio processing module. (patchset #3 id:60001 of https://codereview.webrtc.org/1812433002/ )
Reason for revert:
This CL are breaking some of the Android buildbots in Chromium.

The CL will need be be revised to exclude the Android platform.

Original issue's description:
> Added a bitexactness test for the gain controller in the audio processing module.
>
> BUG=webrtc:5339
>
> Committed: https://crrev.com/a49dc36976da44f3d6d75aed2dcab93fe14fc3a0
> Cr-Commit-Position: refs/heads/master@{#12124}

TBR=henrik.lundin@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5339

Review URL: https://codereview.webrtc.org/1829323002

Cr-Commit-Position: refs/heads/master@{#12127}
2016-03-25 07:50:47 +00:00
peah
a49dc36976 Added a bitexactness test for the gain controller in the audio processing module.
BUG=webrtc:5339

Review URL: https://codereview.webrtc.org/1812433002

Cr-Commit-Position: refs/heads/master@{#12124}
2016-03-25 00:59:29 +00:00
minyue
84db6fa7f5 Adding BlockMeanCalculator for AEC.
This will improve the readability of AEC code.

BUG=

Review URL: https://codereview.webrtc.org/1805633006

Cr-Commit-Position: refs/heads/master@{#12123}
2016-03-24 21:36:33 +00:00
peah
7c931ad698 Fixed a potential deadlock problem in the AGC
where the render and capture locks were
acquired in the wrong order.

BUG=webrtc:5339

Review URL: https://codereview.webrtc.org/1827013002

Cr-Commit-Position: refs/heads/master@{#12122}
2016-03-24 19:52:11 +00:00