• Eero Häkkinen's avatar
    Optimize down and up samplers by using FFT convolution · deebd6c2
    Eero Häkkinen authored
    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: default avatarRaymond Toy <rtoy@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#569217}
    deebd6c2
waveshaper-oversample-4x.html 964 Bytes