92594a30ce02aed75f8a2a9f21e5b8c5c4e5f199 |
|
19-Dec-2015 |
minyue <minyue@webrtc.org> |
Moving FFT on farend signal to where it is used in AEC (bit exact). Currently, FFT is performance when AEC buffers farend signal. This has some drawbacks 1. memory inefficiency: two ring buffers are needed; 2. computation inefficiency: if ringbuffer gets wrapped around, some FFT computation will be wasted; 3. accessibility: the main AEC function looses accessibility to the time-domain signal. Therefore, this CL tries to buffer time domain data, which is buffered any way if a debugging macro is defined, and calculate the FFTs where they are actually used. BUG= Review URL: https://codereview.webrtc.org/1512573003 Cr-Commit-Position: refs/heads/master@{#11091}
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
99b1a32146fcc63e52fd45484958d7c8c4cf0061 |
|
16-Dec-2015 |
peah <peah@webrtc.org> |
Retyped the frequency estimate of the comfort noise for the higher band to harmonize the AEC code. -Changed the type for the frequency estimate of the comfort noise for the higher band to be a two dimensional float array instead of a complex_t array. This makes sense since all the other frequency estimate (apart from the coherence) use this format and doing this change allows bundling the IFFT operations into using the InverseFFT method. -Moved the memset of the frequency estimate of the comfort noise to where it is used and made it conditional so that it is only performed when used. -Harmonized the if-statements for when the frequency estimate of the comfort noise is computed in the different optimized ComfortNoise computation methods. The changes have been tested for bitexactness. BUG=webrtc:5201 Review URL: https://codereview.webrtc.org/1494133002 Cr-Commit-Position: refs/heads/master@{#11050}
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
b14f00113ed054a94f406fb58348e2cedf098cc0 |
|
09-Dec-2015 |
peah <peah@webrtc.org> |
Some minor (bitexact) AEC echo suppressor refactoring -Moved filter reset from the echo suppression into the echo subtraction code where it belongs (the echo subtractor should own its filter reset). -Moved the selection between using the microphone sinal and the echo subtractor output down to the lowest level in the EchoSuppression function. This makes sense as that selection was very hidden in an unrelated sub-sub-function call and as the selection is critical for what the AEC outputs. The changes have been tested for bitexactness. BUG=webrtc:5201 Review URL: https://codereview.webrtc.org/1499573003 Cr-Commit-Position: refs/heads/master@{#10956}
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
afeb43897a5c72ddef73e7f6de5feea799b827a5 |
|
09-Dec-2015 |
peah <peah@webrtc.org> |
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 Review URL: https://codereview.webrtc.org/1494563002 Cr-Commit-Position: refs/heads/master@{#10954}
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
7e43138c0890bd99f627fa061b122c8d5716a99d |
|
28-Nov-2015 |
peah <peah@webrtc.org> |
-Removed the state as an input to the FilterAdaptation function. -Renamed the TimeToFrequency and FrequencyToTime functions. -Moved the windowing from the TimeToFrequency function. -Simplified the EchoSubtraction function. Note that the aec state is still an input to the EchoSubtraction function, and it currently needs to be that in order to support the output of the debug file. The longer-term goal is, however, to order the state into substates. This will simplify the parameter lists to the EchoCancellation function as well as replace the aec state as a parameter BUG=webrtc:5201 Review URL: https://codereview.webrtc.org/1456123003 Cr-Commit-Position: refs/heads/master@{#10830}
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
54eb5e2e9ae91e9ad6dcb297de7b918ebe706d5f |
|
25-Nov-2015 |
peah <peah@webrtc.org> |
Removed the aec state as an input parameter to the FilterFar function. BUG=webrtc:5201 Review URL: https://codereview.webrtc.org/1454983006 Cr-Commit-Position: refs/heads/master@{#10787}
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
d860523112263f9c8f29b95658c89215fbd95a16 |
|
24-Nov-2015 |
peah <peah@webrtc.org> |
First part of the preparatory work before the actual work for solving the ducking problem starts. This works aims to: -More clearly separate the functionalities in the AEC. -Make the inputs and outputs to functions more clear (currently the state struct is often passed as a parameter to the functions and the functions use members of the state both as inputs and outputs, which reduces the readability of the code and makes it difficult to change/refactor. What is done in this CL: -Most of what belongs to the echo subtraction functionality has been moved to a separate function. -The NonLinearProcessing function has been renamed to EchoSuppressor which I think is more appropriate. -Part of the code was replaced by a call to the TimeToFrequency function (which was also suggested by an existing todo). -For consistency, a function FrequencyToTime doing the opposite of TimeToFrequency was added and part of the code was moved to that. -The ScaleErrorSignal function was changed to no longer have the state as an input parameter. This entailed also changing the corresponding assembly optimized files accordingly. Testing: -The changes have been tested for bitexactness on Linux using a fairly extensive test. -All the unittests pass on linux. BUG=webrtc:5201 Review URL: https://codereview.webrtc.org/1455163006 Cr-Commit-Position: refs/heads/master@{#10764}
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
9e69abf85eeae8b6e23170c189cf5dd155771a51 |
|
28-Aug-2015 |
peah <peah@webrtc.org> |
Added logging using the raw variant of the new aec logging macros Replaced the wav file dumping functionality in aec_core.c with the newly added corresponding macros Added macros for logging of AEC internal data BUG= Review URL: https://codereview.webrtc.org/1272403003 Cr-Commit-Position: refs/heads/master@{#9808}
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
dce40cf804019a9898b6ab8d8262466b697c56e0 |
|
24-Aug-2015 |
Peter Kasting <pkasting@google.com> |
Update a ton of audio code to use size_t more correctly and in general reduce use of int16_t/uint16_t. This is the upshot of a recommendation by henrik.lundin and kwiberg on an original small change ( https://webrtc-codereview.appspot.com/42569004/#ps1 ) to stop using int16_t just because values could fit in it, and is similar in nature to a previous "mass change to use size_t more" ( https://webrtc-codereview.appspot.com/23129004/ ) which also needed to be split up for review but to land all at once, since, like adding "const", such changes tend to cause a lot of transitive effects. This was be reviewed and approved in pieces: https://codereview.webrtc.org/1224093003 https://codereview.webrtc.org/1224123002 https://codereview.webrtc.org/1224163002 https://codereview.webrtc.org/1225133003 https://codereview.webrtc.org/1225173002 https://codereview.webrtc.org/1227163003 https://codereview.webrtc.org/1227203003 https://codereview.webrtc.org/1227213002 https://codereview.webrtc.org/1227893002 https://codereview.webrtc.org/1228793004 https://codereview.webrtc.org/1228803003 https://codereview.webrtc.org/1228823002 https://codereview.webrtc.org/1228823003 https://codereview.webrtc.org/1228843002 https://codereview.webrtc.org/1230693002 https://codereview.webrtc.org/1231713002 The change is being landed as TBR to all the folks who reviewed the above. BUG=chromium:81439 TEST=none R=andrew@webrtc.org, pbos@webrtc.org TBR=aluebs, andrew, asapersson, henrika, hlundin, jan.skoglund, kwiberg, minyue, pbos, pthatcher Review URL: https://codereview.webrtc.org/1230503003 . Cr-Commit-Position: refs/heads/master@{#9768}
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
0f133b99c655cbdb347b4a71ac872c071532189f |
|
02-Jul-2015 |
henrik.lundin <henrik.lundin@webrtc.org> |
Rename APM Config ReportedDelay to DelayAgnostic We use this Config struct for enabling/disabling the delay agnostic AEC. This change renames it to DelayAgnostic for readability reasons. NOTE: The logic is reversed in this CL. The old ReportedDelay config turned DA-AEC off, while the new DelayAgnostic turns it on. The old Config is kept in parallel with the new during a transition period. This is to avoid problems with API breakages. During this period, ReportedDelay is disabled or DelayAgnostic is enabled, DA-AEC is engaged in APM. BUG=webrtc:4651 R=bjornv@webrtc.org, tommi@webrtc.org Review URL: https://codereview.webrtc.org/1211053006 Cr-Commit-Position: refs/heads/master@{#9531}
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
7dbc076f347d2558b3a2b7cd4ade58f39be17912 |
|
05-Jun-2015 |
Bjorn Volcker <bjornv@webrtc.org> |
audio_processing/aec: Turn SignalBasedDelayCorrection to after 15 seconds The delay agnostic AEC uses a signal based delay correction method to adjust buffer synchronization between loudspeaker and microphone. On Mac in particular we have seen deviations in UMA stats that point towards an echo already at startup. This is likely due to an early and incorrect correction based on poor audio data. By waiting 15 seconds before we turn on the ability to correct we can avoid a majority of these. The reported delay values are in general accurate enough and relying on them in the beginning is fine. The value 15 seconds is chosen because we have seen from UMA data that a significant amount of calls tend to end before 15 seconds when being in the UseDelayAgnosticAEC Finch experiment. We turn this "feature" on for all platforms but Android, where the reported system delays are inaccurate and we want to take action as soon as possible. In addition, the set of "good" delay values has been increased from 25% to 75% of the filter length. BUG=webrtc:3504 R=henrik.lundin@webrtc.org Review URL: https://webrtc-codereview.appspot.com/50199004 Cr-Commit-Position: refs/heads/master@{#9376}
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
b1786dbab00dd66a9e59a68414e85b2b2615a24f |
|
03-Feb-2015 |
bjornv@webrtc.org <bjornv@webrtc.org> |
audio_processing: Added a new AEC delay metric value that gives the amount of poor delays To more easily determine if for example the AEC is not working properly one could monitor how often the estimated delay is out of bounds. With out of bounds we mean either being negative or too large, where both cases will break the AEC. A new delay metric is added telling the user how often poor delay values were estimated. This is measured in percentage since last time the metrics were calculated. All APIs have been updated with a third parameter with EchoCancellation::GetDelayMetrics() giving the option to exclude the new metric not to break existing code. The new metric has been added to audio_processing_unittests with an additional protobuf member, and reference files accordingly updated. voe_auto_test has not been updated to display the new metric. BUG=4246 TESTED=audioproc on files R=aluebs@webrtc.org, andrew@webrtc.org Review URL: https://webrtc-codereview.appspot.com/39739004 Cr-Commit-Position: refs/heads/master@{#8230} git-svn-id: http://webrtc.googlecode.com/svn/trunk@8230 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
5614cf16e71e59e4785deca05249d9a06f746d66 |
|
27-Jan-2015 |
bjornv@webrtc.org <bjornv@webrtc.org> |
audio_processing: Use fixed aggregation window in delay metrics Previously, the delay estimate history was reset every time the metrics were pulled. This required all clients to be on the same thread and make use of one call. Now we use a fixed aggregation window of one second and when a client pulls the metrics you get the latest value. Under certain circumstances like tests you would like to have the aggregation window set to the recording length. We therefore turn on the fixed aggregation window after the first call. BUG=2994 TESTED=locally on Mac and trybots R=kwiberg@webrtc.org Review URL: https://webrtc-codereview.appspot.com/38759004 Cr-Commit-Position: refs/heads/master@{#8170} git-svn-id: http://webrtc.googlecode.com/svn/trunk@8170 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
70117a83d464fa650b9fe68644cd253456e34958 |
|
27-Jan-2015 |
bjornv@webrtc.org <bjornv@webrtc.org> |
AEC: Implements a new function for calculating delay metrics Two new member variables have been added and the code for calculating the delay metrics have been moved to a function. BUG=2994 TESTED=locally on Mac and trybots R=kwiberg@webrtc.org Review URL: https://webrtc-codereview.appspot.com/39639004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@8163 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
c78d81ae895510edc217d1598d9111e3c8987b09 |
|
21-Jan-2015 |
aluebs@webrtc.org <aluebs@webrtc.org> |
Re-land "Support 48kHz in AEC" Doing something similar for the band 16-24kHz to what is done for the band 8-16kHz. The only difference is that there is no comfort noise added in this band. Could not test how this sounds because there are no aecdumps with 48kHz sample rate as nfar as I know. Tested for 32kHz sample rate and the output is bitexact with how it was before this CL. Original: https://webrtc-codereview.appspot.com/28319004/ Reverted: https://webrtc-codereview.appspot.com/33949004/ BUG=webrtc:3146 R=andrew@webrtc.org Review URL: https://webrtc-codereview.appspot.com/41549004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@8116 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
ee0c100d5495cd8c440b767a7852532afbbcefb2 |
|
20-Jan-2015 |
tina.legrand@webrtc.org <tina.legrand@webrtc.org> |
Revert 8080 "Support 48kHz in AEC" > Support 48kHz in AEC > > Doing something similar for the band 16-24kHz to what is done for the band 8-16kHz. The only difference is that there is no comfort noise added in this band. Could not test how this sounds because there are no aecdumps with 48kHz sample rate as nfar as I know. > Tested for 32kHz sample rate and the output is bitexact with how it was before this CL. > > BUG=webrtc:3146 > R=andrew@webrtc.org > > Review URL: https://webrtc-codereview.appspot.com/28319004 TBR=aluebs@webrtc.org Review URL: https://webrtc-codereview.appspot.com/33949004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@8100 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
64d3c4b9ac862c682d297851083f81942a035652 |
|
15-Jan-2015 |
aluebs@webrtc.org <aluebs@webrtc.org> |
Support 48kHz in AEC Doing something similar for the band 16-24kHz to what is done for the band 8-16kHz. The only difference is that there is no comfort noise added in this band. Could not test how this sounds because there are no aecdumps with 48kHz sample rate as nfar as I know. Tested for 32kHz sample rate and the output is bitexact with how it was before this CL. BUG=webrtc:3146 R=andrew@webrtc.org Review URL: https://webrtc-codereview.appspot.com/28319004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@8080 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
6b6301588ef2d7b5f5d442aa95bef442a43ead53 |
|
15-Jan-2015 |
andrew@webrtc.org <andrew@webrtc.org> |
Move ring_buffer to common_audio. In preparation for adding a C++ wrapper in common_audio. Also, change the return type of Init to void and call it from Create. R=aluebs@webrtc.org Review URL: https://webrtc-codereview.appspot.com/37619004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@8068 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
bac00121208659b48a965882ab85a4ae1257a026 |
|
02-Jan-2015 |
bjornv@webrtc.org <bjornv@webrtc.org> |
Extend delay estimation window in AEC to 500 ms on all platforms On non-Android the delay estimator in audio_processing/aec has solely been used for logging purposes. The maximum possible observed delay has been 236 ms. We have seen longer delays for which the delay estimate at best ends up at 236 ms, but can also be 'random'. reported delays are clamped to 500 ms. This cl extends the delay estimation window to match that. BUG=4086, 3504, 4113 TESTED=locally on Linux and trybots R=kwiberg@webrtc.org Review URL: https://webrtc-codereview.appspot.com/36569004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7989 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
f832a6d0903179914c1dbda2a43172206d9e1daa |
|
18-Dec-2014 |
pbos@webrtc.org <pbos@webrtc.org> |
Remove _t from function pointer typedefs. _t are reserved in POSIX. R=bjornv@webrtc.org BUG=162 Review URL: https://webrtc-codereview.appspot.com/34539004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7947 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
5f162c8509c48a15294b1fec98a36583a5f41304 |
|
11-Dec-2014 |
pbos@webrtc.org <pbos@webrtc.org> |
Merge AEC changes. R=bjornv@webrtc.org BUG= Review URL: https://webrtc-codereview.appspot.com/34459004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7877 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
a3ed713dad5ccad03e2f5d775081143babd19097 |
|
31-Oct-2014 |
andrew@webrtc.org <andrew@webrtc.org> |
Add a WavReader counterpart to WavWriter. Don't bother with a C interface as we currently have no need to call this from C code. The first use will be in the audioproc tool. R=kwiberg@webrtc.org Review URL: https://webrtc-codereview.appspot.com/30829004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7585 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
584cd8da4bbfe26a31dc10c2bdbef08fad29a5ff |
|
25-Aug-2014 |
kwiberg@webrtc.org <kwiberg@webrtc.org> |
Fix WEBRTC_AEC_DEBUG_DUMP (broken by int16->float conversion) And in the process, make it dump WAV files instead of raw PCM. R=andrew@webrtc.org, bjornv@webrtc.org Review URL: https://webrtc-codereview.appspot.com/19089004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6959 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
555fc78f2702b0c79b25837b852c61aafe87fdd3 |
|
10-Jul-2014 |
bjornv@webrtc.org <bjornv@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> |
Neon version of SubbandCoherence() The performance gain on a Nexus 7 reported by audioproc is ~1.4% The output is NOT bit exact. Any difference seen is +-1. BUG=3131 R=bjornv@webrtc.org, cd@webrtc.org Review URL: https://webrtc-codereview.appspot.com/17839005 Patch from Scott LaVarnway <slavarnw@gmail.com>. git-svn-id: http://webrtc.googlecode.com/svn/trunk@6647 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
6d21ddca5fd89a0b2b49d90bc671783cea0a73b7 |
|
01-Jul-2014 |
bjornv@webrtc.org <bjornv@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> |
audio_processing/aec: Refactors NonLinearProcessing to prepare for NEON optimizations Puts functionality necessary to calculate sub-band coherences into a function. BUG=3131 TESTED=trybots R=kwiberg@webrtc.org Review URL: https://webrtc-codereview.appspot.com/16789004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6570 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
494aa0e93df24b98fc5d67dea8b89b5325680fd7 |
|
28-Apr-2014 |
bjornv@webrtc.org <bjornv@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> |
AEC: Moved delay buffer size enums from aec_core.h to aec_core_internal.h These enums are noly used internally in aec_core.c and it makes more sense to put them in aec_core_internal.h TESTED=trybots R=aluebs@webrtc.org, kwiberg@webrtc.org Review URL: https://webrtc-codereview.appspot.com/19379005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@5995 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
e9d3760d5cd0f4bb1821897dc995dcbe3cfdccaa |
|
23-Apr-2014 |
bjornv@webrtc.org <bjornv@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> |
AEC: Adds a reported_delay_enabled_ flag Adds a feature to completely turn on or off buffer handling based on reported delay values. During startup, reported delays are controlled differently through, e.g., WEBRTC_UNTRUSTED_DELAY. By default, the feature is enabled giving the same output as before this change. TESTED=trybots, modules_unittest R=aluebs@webrtc.org, andrew@webrtc.org, kwiberg@webrtc.org Review URL: https://webrtc-codereview.appspot.com/12349005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@5965 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
c0907eff42079cb53c4ee28cb47a8e495ab06b37 |
|
21-Feb-2014 |
andrew@webrtc.org <andrew@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> |
MIPS optimizations for AEC audio processing module The resulting output streams obtained by testing with audioproc test application are bit-exact with generic C code output streams. Performance gain achieved: - mips32 ~ 17% - mips32r2 ~ 20% - mipsdsp & mipsdspr2 ~ 21% R=andrew@webrtc.org Review URL: https://webrtc-codereview.appspot.com/7359004 Patch from Ljubomir Papuga <lpapuga@mips.com>. git-svn-id: http://webrtc.googlecode.com/svn/trunk@5591 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
13b2d4659380675871e2a232bd3a0b8dbbc35a7a |
|
09-Oct-2013 |
andrew@webrtc.org <andrew@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> |
clang-format audio_processing/aec/* TBR=bjornv TESTED=trybots Review URL: https://webrtc-codereview.appspot.com/2373004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4944 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
1760a17b8e176f38bcc203bd0afbc9c59df9b502 |
|
26-Sep-2013 |
andrew@webrtc.org <andrew@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> |
Add an extended filter mode to AEC. Re-land: http://review.webrtc.org/2151007/ TBR=bjornv@webrtc.org Original change description: This mode extends the filter length from the current 48 ms to 128 ms. It is runtime selectable which allows it to be enabled through experiment. We reuse the DelayCorrection infrastructure to avoid having to replumb everything up to libjingle. Increases AEC complexity by ~50% on modern x86 CPUs. Measurements (in percent of usage on one core): Machine/CPU Normal Extended MacBook Retina (Early 2013), Core i7 Ivy Bridge (2.7 GHz, hyperthreaded) 0.6% 0.9% MacBook Air (Late 2010), Core 2 Duo (2.13 GHz) 1.4% 2.7% Chromebook Pixel, Core i5 Ivy Bridge (1.8 GHz) 0.6% 1.0% Samsung ARM Chromebook, Samsung Exynos 5 Dual (1.7 GHz) 3.2% 5.6% The relative value is large of course but the absolute should be acceptable in order to have a working AEC on some platforms. Detailed changes to the algorithm: - The filter length is changed from 48 to 128 ms. This comes with tuning of several parameters: i) filter adaptation stepsize and error threshold; ii) non-linear processing smoothing and overdrive. - Option to ignore the reported delays on platforms which we deem sufficiently unreliable. Currently this will be enabled in Chromium for Mac. - Faster startup times by removing the excessive "startup phase" processing of reported delays. - Much more conservative adjustments to the far-end read pointer. We smooth the delay difference more heavily, and back off from the difference more. Adjustments force a readaptation of the filter, so they should be avoided except when really necessary. Corresponds to these changes: https://chromereviews.googleplex.com/9412014 https://chromereviews.googleplex.com/9514013 https://chromereviews.googleplex.com/9960013 BUG=454,827,1261 Review URL: https://webrtc-codereview.appspot.com/2295006 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4848 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
ce014d97cd9bcc893ce60897227e8a5147d8741c |
|
25-Sep-2013 |
asapersson@webrtc.org <asapersson@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> |
Revert 4837 "Add an extended filter mode to AEC." > Add an extended filter mode to AEC. > > This mode extends the filter length from the current 48 ms to 128 ms. > It is runtime selectable which allows it to be enabled through > experiment. We reuse the DelayCorrection infrastructure to avoid having > to replumb everything up to libjingle. > > Increases AEC complexity by ~50% on modern x86 CPUs. > Measurements (in percent of usage on one core): > > Machine/CPU Normal Extended > MacBook Retina (Early 2013), > Core i7 Ivy Bridge (2.7 GHz, hyperthreaded) 0.6% 0.9% > > MacBook Air (Late 2010), Core 2 Duo (2.13 GHz) 1.4% 2.7% > > Chromebook Pixel, Core i5 Ivy Bridge (1.8 GHz) 0.6% 1.0% > > Samsung ARM Chromebook, > Samsung Exynos 5 Dual (1.7 GHz) 3.2% 5.6% > > The relative value is large of course but the absolute should be > acceptable in order to have a working AEC on some platforms. > > Detailed changes to the algorithm: > - The filter length is changed from 48 to 128 ms. This comes with tuning > of several parameters: i) filter adaptation stepsize and error > threshold; ii) non-linear processing smoothing and overdrive. > - Option to ignore the reported delays on platforms which we deem > sufficiently unreliable. Currently this will be enabled in Chromium for > Mac. > - Faster startup times by removing the excessive "startup phase" > processing of reported delays. > - Much more conservative adjustments to the far-end read pointer. We > smooth the delay difference more heavily, and back off from the > difference more. Adjustments force a readaptation of the filter, so they > should be avoided except when really necessary. > > Corresponds to these changes: > https://chromereviews.googleplex.com/9412014 > https://chromereviews.googleplex.com/9514013 > https://chromereviews.googleplex.com/9960013 > > BUG=454,827,1261 > R=bjornv@webrtc.org > > Review URL: https://webrtc-codereview.appspot.com/2151007 TBR=andrew@webrtc.org Review URL: https://webrtc-codereview.appspot.com/2296005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4839 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
26e02f0ee44735697d575e35d2e5f3cd43dde512 |
|
25-Sep-2013 |
andrew@webrtc.org <andrew@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> |
Add an extended filter mode to AEC. This mode extends the filter length from the current 48 ms to 128 ms. It is runtime selectable which allows it to be enabled through experiment. We reuse the DelayCorrection infrastructure to avoid having to replumb everything up to libjingle. Increases AEC complexity by ~50% on modern x86 CPUs. Measurements (in percent of usage on one core): Machine/CPU Normal Extended MacBook Retina (Early 2013), Core i7 Ivy Bridge (2.7 GHz, hyperthreaded) 0.6% 0.9% MacBook Air (Late 2010), Core 2 Duo (2.13 GHz) 1.4% 2.7% Chromebook Pixel, Core i5 Ivy Bridge (1.8 GHz) 0.6% 1.0% Samsung ARM Chromebook, Samsung Exynos 5 Dual (1.7 GHz) 3.2% 5.6% The relative value is large of course but the absolute should be acceptable in order to have a working AEC on some platforms. Detailed changes to the algorithm: - The filter length is changed from 48 to 128 ms. This comes with tuning of several parameters: i) filter adaptation stepsize and error threshold; ii) non-linear processing smoothing and overdrive. - Option to ignore the reported delays on platforms which we deem sufficiently unreliable. Currently this will be enabled in Chromium for Mac. - Faster startup times by removing the excessive "startup phase" processing of reported delays. - Much more conservative adjustments to the far-end read pointer. We smooth the delay difference more heavily, and back off from the difference more. Adjustments force a readaptation of the filter, so they should be avoided except when really necessary. Corresponds to these changes: https://chromereviews.googleplex.com/9412014 https://chromereviews.googleplex.com/9514013 https://chromereviews.googleplex.com/9960013 BUG=454,827,1261 R=bjornv@webrtc.org Review URL: https://webrtc-codereview.appspot.com/2151007 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4837 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
0a4ca8f0bb5f438944d9e12166faeab2140f185e |
|
31-Jul-2013 |
andrew@webrtc.org <andrew@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> |
Move internal aec_core defines out of header. TBR=turaj@webrtc.org Review URL: https://webrtc-codereview.appspot.com/1915004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4440 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
b7192b82476d00384fdc153e6a09a6ac53cef67b |
|
10-Apr-2013 |
pbos@webrtc.org <pbos@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> |
WebRtc_Word32 -> int32_t in audio_processing/ BUG=314 Review URL: https://webrtc-codereview.appspot.com/1307004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3809 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
7f95732fe2a05a39da7533db0145614a17042aa8 |
|
05-Mar-2013 |
bjornv@webrtc.org <bjornv@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> |
AEC Refactoring: Removes lint warning Changed inlude order. TBR=andrew@webrtc.org TEST=none BUG=none Review URL: https://webrtc-codereview.appspot.com/1156004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3604 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
9ae1354e250bebaba295048e1cb47a74d33bf8e0 |
|
25-Feb-2013 |
andrew@webrtc.org <andrew@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> |
Refactor ring_buffer interface, add a feature and a test. * Add a RingBuffer typedef. * Add the ability to force a memcpy by passing a null ptr. In some cases, we know we want a memcpy. This allows us to skip a potential intermediate memcpy. * Add a stress test. Review URL: https://webrtc-codereview.appspot.com/1111004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3567 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
60f83131e482f6ff63968bf8b3bc811f00d5c875 |
|
21-Feb-2013 |
bjornv@webrtc.org <bjornv@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> |
AEC refactoring: Moved typedefs to _internal.h * This was actually part of r3553 * Tested with audioproc_unittest, trybots TBR=andrew@webrtc.org TEST=none BUG=none Review URL: https://webrtc-codereview.appspot.com/1118005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3556 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|
56a9ec30e9f760c201a4b8f52af1acba6a727ea5 |
|
20-Feb-2013 |
bjornv@webrtc.org <bjornv@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> |
Refactoring AEC: AecCore struct made private * Added aec_core_internal.h for private variables. * Moved aec_t struct to aec_core_internal.h * Name change aec_t -> AecCore * Moved additional declarations to aec_core_internal.h * Tested with audioproc_unittest and trybots TEST=none BUG=none Review URL: https://webrtc-codereview.appspot.com/1117004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3553 4adac7df-926f-26a2-2b94-8c16560cd09d
/external/webrtc/webrtc/modules/audio_processing/aec/aec_core_internal.h
|