[FFmpeg-devel] [PATCH] lavc/pixblockdsp: remove R-V V get_pixels_16

Rémi Denis-Courmont remi at remlab.net
Sun Oct 29 15:13:49 EET 2023


In the aligned case, the existing RVI assembler is actually much
faster. In the unaligned case, there is nothing much to gain over C.
---
 libavcodec/riscv/pixblockdsp_init.c | 7 +------
 libavcodec/riscv/pixblockdsp_rvv.S  | 7 -------
 2 files changed, 1 insertion(+), 13 deletions(-)

diff --git a/libavcodec/riscv/pixblockdsp_init.c b/libavcodec/riscv/pixblockdsp_init.c
index 7d259a032f..6b1efd16f8 100644
--- a/libavcodec/riscv/pixblockdsp_init.c
+++ b/libavcodec/riscv/pixblockdsp_init.c
@@ -36,8 +36,6 @@ void ff_get_pixels_8_rvv(int16_t *block, const uint8_t *pixels,
                          ptrdiff_t stride);
 void ff_get_pixels_unaligned_8_rvv(int16_t *block, const uint8_t *pixels,
                                    ptrdiff_t stride);
-void ff_get_pixels_unaligned_16_rvv(int16_t *block, const uint8_t *pixels,
-                                    ptrdiff_t stride);
 void ff_diff_pixels_rvv(int16_t *block, const uint8_t *s1,
                         const uint8_t *s2, ptrdiff_t stride);
 void ff_diff_pixels_unaligned_rvv(int16_t *block, const uint8_t *s1,
@@ -58,10 +56,7 @@ av_cold void ff_pixblockdsp_init_riscv(PixblockDSPContext *c,
 
 #if HAVE_RVV
     if ((cpu_flags & AV_CPU_FLAG_RVV_I32) && ff_get_rv_vlenb() >= 16) {
-        if (high_bit_depth) {
-            c->get_pixels = ff_get_pixels_unaligned_16_rvv;
-            c->get_pixels_unaligned = ff_get_pixels_unaligned_16_rvv;
-        } else {
+        if (!high_bit_depth) {
             c->get_pixels = ff_get_pixels_unaligned_8_rvv;
             c->get_pixels_unaligned = ff_get_pixels_unaligned_8_rvv;
         }
diff --git a/libavcodec/riscv/pixblockdsp_rvv.S b/libavcodec/riscv/pixblockdsp_rvv.S
index 80c7415acf..7e35fc5b46 100644
--- a/libavcodec/riscv/pixblockdsp_rvv.S
+++ b/libavcodec/riscv/pixblockdsp_rvv.S
@@ -45,13 +45,6 @@ func ff_get_pixels_unaligned_8_rvv, zve32x
         ret
 endfunc
 
-func ff_get_pixels_unaligned_16_rvv, zve32x
-        vsetivli     zero, 8, e16, m1, ta, ma
-        vlsseg8e16.v v0, (a1), a2
-        vsseg8e16.v  v0, (a0)
-        ret
-endfunc
-
 func ff_diff_pixels_rvv, zve64x
         vsetivli zero, 8, e8, mf2, ta, ma
         li      t0, 8 * 8
-- 
2.42.0



More information about the ffmpeg-devel mailing list