diff options
author | RĂ©mi Denis-Courmont <remi@remlab.net> | 2022-10-05 19:12:56 +0300 |
---|---|---|
committer | Lynne <dev@lynne.ee> | 2022-10-10 02:23:17 +0200 |
commit | bfc69297c5d8d130b9cf1082dd1728b39a0e75f6 (patch) | |
tree | da51678275cd33ed8ec44d51d4214b626baed1d8 /libavutil/aarch64/timer.h | |
parent | 97d34befea598d34e92ed384acb3dced5490ae8a (diff) | |
download | ffmpeg-bfc69297c5d8d130b9cf1082dd1728b39a0e75f6.tar.gz |
lavc/opusdsp: RISC-V V (512-bit) postfilter
This adds a variant of the postfilter for use with 512-bit vectors.
Half a vector is enough to perform the scalar product. Normally a whole
vector would be used anyhow. Indeed fractional multiplers are no faster
than the unit multipler.
But in this particular function, a full vector makes up 16 samples,
which would be loaded at each iteration of the outer loop. The minimum
guaranteed CELT postfilter period is only 15. Accounting for the edges,
we can only safely preload up to 13 samples.
The fractional multipler is thus used to cap the selected vector length
to a safe value of 8 elements or 256 bits.
Likewise, we have the 1024-bit variant with the quarter multipler. In
theory, a 2048-bit one would be possible with the eigth multipler, but
that length is not even defined in the specifications as of yet, nor is
it supported by any emulator - forget actual hardware.
Diffstat (limited to 'libavutil/aarch64/timer.h')
0 files changed, 0 insertions, 0 deletions