New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 790905 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 1
Type: Bug



Sign in to add a comment

Decopuling between the AEC3 alignment buffer and the rest of the buffers causes poor performance

Project Member Reported by peah@chromium.org, Dec 1 2017

Issue description

The render alignment buffer in AEC3 is decoupled from the rest of the render buffers. The main issue with this is that jitter in the API calls causes unnecessary resets in the AEC. Furthermore, it  makes the performance in clock-drift setups poor, prohibits basic improvements and makes the code more complex than it needs to be.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Dec 1 2017

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab

commit 8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab
Author: Per Åhgren <peah@webrtc.org>
Date: Fri Dec 01 23:14:32 2017

Redesign of the render buffering in AEC3

This CL centralizes the render buffering in AEC3 so that all render
buffers are updated and synchronized/aligned with the render alignment
buffer.

Bug:  webrtc:8597 ,  chromium:790905 
Change-Id: I8a94e5c1f27316b6100b420eec9652ea31c1a91d
Reviewed-on: https://webrtc-review.googlesource.com/25680
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20989}
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/BUILD.gn
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/aec3_common.h
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/aec_state.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/aec_state_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/block_processor.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/block_processor_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/comfort_noise_generator_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/downsampled_render_buffer.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/downsampled_render_buffer.h
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/echo_canceller3.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/echo_canceller3.h
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/echo_canceller3_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/echo_path_delay_estimator_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/echo_path_variability.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/echo_path_variability.h
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/echo_path_variability_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/echo_remover.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/echo_remover_metrics_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/echo_remover_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/erl_estimator.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/erl_estimator.h
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/erle_estimator.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/erle_estimator.h
[add] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/fft_buffer.cc
[add] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/fft_buffer.h
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/fft_data.h
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/fft_data_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/main_filter_update_gain.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/main_filter_update_gain.h
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/main_filter_update_gain_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/matched_filter.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/matched_filter_unittest.cc
[add] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/matrix_buffer.cc
[add] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/matrix_buffer.h
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/mock/mock_render_delay_buffer.h
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/render_buffer.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/render_buffer.h
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/render_buffer_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/render_delay_buffer.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/render_delay_buffer.h
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/render_delay_buffer_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/render_delay_controller.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/render_delay_controller_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/render_signal_analyzer.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/render_signal_analyzer_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/residual_echo_estimator_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/shadow_filter_update_gain.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/shadow_filter_update_gain_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/subtractor.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/subtractor_unittest.cc
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/suppression_gain_unittest.cc
[add] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/vector_buffer.cc
[add] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/aec3/vector_buffer.h
[modify] https://crrev.com/8ba5861f7e654cf5e5683c3ba38cab3eaf6ce8ab/modules/audio_processing/include/audio_processing.h

Comment 2 by peah@chromium.org, Dec 12 2017

Status: Fixed (was: Assigned)

Comment 3 by peah@chromium.org, Dec 12 2017

Labels: M-65

Sign in to add a comment