diff options
author | Chris Robinson <[email protected]> | 2021-02-23 18:48:02 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2021-02-23 18:48:02 -0800 |
commit | 5647aa4042ec64667cd2ba384e30769daa606ab4 (patch) | |
tree | 82e42a8a9bc8248d1126a8f4ef1aa8c53cf8b023 /core/mixer/mixer_neon.cpp | |
parent | 25d25f9a8004ede46349f80225e13feff6a0748c (diff) |
Adjust the bsinc filter table packing
Now each scale's filter and phase delta are interleaved for each phase index,
followed by the scale and scale+phase delta for each phase index. This ensures
no holes in the filter coefficients for the fast bsinc resampler for a given
run, while keeping the scale deltas in the same vicinity for the non-fast bsinc
resampler.
Diffstat (limited to 'core/mixer/mixer_neon.cpp')
-rw-r--r-- | core/mixer/mixer_neon.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/core/mixer/mixer_neon.cpp b/core/mixer/mixer_neon.cpp index 8cd7e610..a3afdc6b 100644 --- a/core/mixer/mixer_neon.cpp +++ b/core/mixer/mixer_neon.cpp @@ -131,9 +131,9 @@ float *Resample_<BSincTag,NEONTag>(const InterpState *state, float *RESTRICT src float32x4_t r4{vdupq_n_f32(0.0f)}; { const float32x4_t pf4{vdupq_n_f32(pf)}; - const float *RESTRICT fil{filter + m*pi*4}; + const float *RESTRICT fil{filter + m*pi*2}; const float *RESTRICT phd{fil + m}; - const float *RESTRICT scd{phd + m}; + const float *RESTRICT scd{fil + BSincPhaseCount*2*m}; const float *RESTRICT spd{scd + m}; size_t td{m >> 2}; size_t j{0u}; @@ -177,7 +177,7 @@ float *Resample_<FastBSincTag,NEONTag>(const InterpState *state, float *RESTRICT float32x4_t r4{vdupq_n_f32(0.0f)}; { const float32x4_t pf4{vdupq_n_f32(pf)}; - const float *RESTRICT fil{filter + m*pi*4}; + const float *RESTRICT fil{filter + m*pi*2}; const float *RESTRICT phd{fil + m}; size_t td{m >> 2}; size_t j{0u}; |