[FFmpeg-devel] [PATCHv3 0/12] RISC-V Vector functions for lavu float&fixed DSP

Rémi Denis-Courmont remi at remlab.net
Tue Sep 6 21:43:20 EEST 2022


The following changes since commit d9e3cb7e73c77ccddc4d29ed5c1be3920f72c226:

  avfilter/vf_scale: overwrite the width and height expressions with the 
original values (2022-09-06 10:10:42 -0300)

are available in the Git repository at:

  git.remlab.net:git/ffmpeg.git rvv

for you to fetch changes up to:

  lavu/riscv: fixed vector sum-and-difference with RVV (2022-09-06 21:30:28 
+0300)

Changes since v2:

- Add fixed butterflies (the only fixed point DSP function if !USE_FIXED).
- Clean up CPU flags definition.
- Move ISA extension selection to function macro.
- Add const macro (currently unused).
- Add checkasm support.
- Use ARM-like macros for FP ABIs.

This patchset is orthogonal to the RISC-V scalar patchset. They can be merged 
in any order.

----------------------------------------------------------------
Rémi Denis-Courmont (12):
      lavu/riscv: add CPU flags for the RISC-V Vector extension
      checkasm: register the RISC-V V subsets
      lavu/riscv: initial common header for assembler macros
      lavu/riscv: float vector-scalar multiplication with RVV
      lavu/riscv: float vector-vector multiplication with RVV
      lavu/riscv: float vector multiply-accumulate with RVV
      lavu/riscv: float vector multiplication-addition with RVV
      lavu/riscv: float vector sum-and-difference with RVV
      lavu/riscv: float reversed vector multiplication with RVV
      lavu/riscv: float vector windowed overlap/add with RVV
      lavu/riscv: float vector dot product with RVV
      lavu/riscv: fixed vector sum-and-difference with RVV

 libavutil/cpu.c                  |  15 +++
 libavutil/cpu.h                  |   6 +
 libavutil/cpu_internal.h         |   1 +
 libavutil/fixed_dsp.c            |   4 +-
 libavutil/fixed_dsp.h            |   1 +
 libavutil/float_dsp.c            |   2 +
 libavutil/float_dsp.h            |   1 +
 libavutil/riscv/Makefile         |   5 +
 libavutil/riscv/asm.S            |  58 ++++++++++
 libavutil/riscv/cpu.c            |  57 +++++++++
 libavutil/riscv/fixed_dsp_init.c |  33 ++++++
 libavutil/riscv/fixed_dsp_rvv.S  |  38 ++++++
 libavutil/riscv/float_dsp_init.c |  67 +++++++++++
 libavutil/riscv/float_dsp_rvv.S  | 243 +++++++++++++++++++++++++++++++++++++++
 tests/checkasm/checkasm.c        |   5 +
 15 files changed, 535 insertions(+), 1 deletion(-)
 create mode 100644 libavutil/riscv/Makefile
 create mode 100644 libavutil/riscv/asm.S
 create mode 100644 libavutil/riscv/cpu.c
 create mode 100644 libavutil/riscv/fixed_dsp_init.c
 create mode 100644 libavutil/riscv/fixed_dsp_rvv.S
 create mode 100644 libavutil/riscv/float_dsp_init.c
 create mode 100644 libavutil/riscv/float_dsp_rvv.S

-- 
雷米‧德尼-库尔蒙
http://www.remlab.net/





More information about the ffmpeg-devel mailing list