Improve Blink platform audio convolution performance |
||
Issue descriptionBlink 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.
,
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
,
Jun 22 2018
|
||
►
Sign in to add a comment |
||
Comment 1 by eero.hak...@intel.com
, Jun 12 2018