aboutsummaryrefslogtreecommitdiffstats
path: root/.gitattributes
diff options
context:
space:
mode:
authorRémi Denis-Courmont <remi@remlab.net>2023-11-08 22:17:39 +0200
committerRémi Denis-Courmont <remi@remlab.net>2023-11-12 14:03:09 +0200
commitcd7b352c534c097c8009d4022daff4027655d207 (patch)
tree8af0748eb2c8b541829398f3d0aba08808dbf646 /.gitattributes
parentf576a0835b45940aad08507257ecd8d61d42452c (diff)
downloadffmpeg-cd7b352c534c097c8009d4022daff4027655d207.tar.gz
lavc/sbrdsp: R-V V autocorrelate
With 5 accumulator vectors and 6 inputs, this can only use LMUL=2. Also the number of vector loop iterations is small, just 5 on 128-bit vector hardware. The vector loop is somewhat unusual in that it processes data in descending memory order, in order to save on vector slides: in descending order, we can extract elements to carry over to the next iteration from the bottom of the vectors directly. With ascending order (see in the Opus postfilter function), there are no ways to get the top elements directly. On the downside, this requires the use of separate shift and sub (the would-be SH3SUB instruction does not exist), with a small pipeline stall on the vector load address. The edge cases in scalar are done in scalar as this saves on loads and remains significantly faster than C. autocorrelate_c: 669.2 autocorrelate_rvv_f32: 421.0
Diffstat (limited to '.gitattributes')
0 files changed, 0 insertions, 0 deletions