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

Issue 851941 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jun 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Task



Sign in to add a comment

Improve Blink platform audio convolution performance

Project Member Reported by eero.hak...@intel.com, Jun 12 2018

Issue description

Blink platform audio classes should use FFT (fast Fourier transform) convolution instead of direct convolution for performance reasons whenever appropriate because FFT convolution is faster than direct convolution unless sample and convolution kernel sizes are small.
 
Status: Started (was: Assigned)
Project Member

Comment 2 by bugdroid1@chromium.org, Jun 21 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/deebd6c21a99ea291d380088ba539c5b2345faf7

commit deebd6c21a99ea291d380088ba539c5b2345faf7
Author: Eero Häkkinen <eero.hakkinen@intel.com>
Date: Thu Jun 21 11:13:00 2018

Optimize down and up samplers by using FFT convolution

This improves down sampling performance by 40 percent in all cases on
x64 with AVX and up sampling performance by 50 percent in the case of
large input block sizes (256 samples or more) on x64 with AVX. Up
sampling performance in the case of normal input block sizes (128
samples) is not affected. Performance improvements on x64 with SSE but
without AVX are even bigger than those on x64 with AVX.

On Arm, the performance improvement is 270 percent.

When FFT resampling is used for the WaveShaper, we need to account
for some small round-off errors in the result compared with the
previous direct convolver.  Slightly adjust how the thresholds work
and the threshold value for the tests. Thanks to Raymond Toy (rtoy@)
for these layout test updates.

Bug:  851941 
Change-Id: I2dc4bb30ccc6d1314a3e779a61ffac210cf702a1
Reviewed-on: https://chromium-review.googlesource.com/1090841
Commit-Queue: Eero Häkkinen <eero.hakkinen@intel.com>
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569217}
[modify] https://crrev.com/deebd6c21a99ea291d380088ba539c5b2345faf7/third_party/WebKit/LayoutTests/webaudio/AudioNode/tail-processing.html
[modify] https://crrev.com/deebd6c21a99ea291d380088ba539c5b2345faf7/third_party/WebKit/LayoutTests/webaudio/WaveShaper/waveshaper-oversample-4x.html
[modify] https://crrev.com/deebd6c21a99ea291d380088ba539c5b2345faf7/third_party/blink/renderer/platform/BUILD.gn
[modify] https://crrev.com/deebd6c21a99ea291d380088ba539c5b2345faf7/third_party/blink/renderer/platform/audio/down_sampler.h
[add] https://crrev.com/deebd6c21a99ea291d380088ba539c5b2345faf7/third_party/blink/renderer/platform/audio/simple_fft_convolver.cc
[add] https://crrev.com/deebd6c21a99ea291d380088ba539c5b2345faf7/third_party/blink/renderer/platform/audio/simple_fft_convolver.h
[modify] https://crrev.com/deebd6c21a99ea291d380088ba539c5b2345faf7/third_party/blink/renderer/platform/audio/up_sampler.cc
[modify] https://crrev.com/deebd6c21a99ea291d380088ba539c5b2345faf7/third_party/blink/renderer/platform/audio/up_sampler.h

Comment 3 by rtoy@chromium.org, Jun 22 2018

Status: Fixed (was: Started)

Sign in to add a comment