PR #21159 opened by Rémi Denis-Courmont (Courmisch) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21159 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21159.patch
SpacemiT X60: sub_left_predict_c: 51836.0 ( 1.00x) sub_left_predict_rvv_i32: 5843.1 ( 8.87x) From 0909d13e178a492c5ef57f46922ac51a3f36b023 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <[email protected]> Date: Wed, 10 Dec 2025 20:35:59 +0200 Subject: [PATCH] lavc/llvidencdsp: R-V V sub_left_predict SpacemiT X60: sub_left_predict_c: 51836.0 ( 1.00x) sub_left_predict_rvv_i32: 5843.1 ( 8.87x) --- libavcodec/riscv/llvidencdsp_init.c | 4 ++++ libavcodec/riscv/llvidencdsp_rvv.S | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/libavcodec/riscv/llvidencdsp_init.c b/libavcodec/riscv/llvidencdsp_init.c index e35406dc41..bd2ffef42f 100644 --- a/libavcodec/riscv/llvidencdsp_init.c +++ b/libavcodec/riscv/llvidencdsp_init.c @@ -26,6 +26,9 @@ void ff_llvidenc_diff_bytes_rvv(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, intptr_t w); +void ff_llvidenc_sub_left_predict_rvv(uint8_t *dst, const uint8_t *src, + ptrdiff_t stride, ptrdiff_t width, + int height); av_cold void ff_llvidencdsp_init_riscv(LLVidEncDSPContext *c) { @@ -34,6 +37,7 @@ av_cold void ff_llvidencdsp_init_riscv(LLVidEncDSPContext *c) if (flags & AV_CPU_FLAG_RVV_I32) { c->diff_bytes = ff_llvidenc_diff_bytes_rvv; + c->sub_left_predict = ff_llvidenc_sub_left_predict_rvv; } #endif } diff --git a/libavcodec/riscv/llvidencdsp_rvv.S b/libavcodec/riscv/llvidencdsp_rvv.S index 44bf3ac7e5..506e62d1e1 100644 --- a/libavcodec/riscv/llvidencdsp_rvv.S +++ b/libavcodec/riscv/llvidencdsp_rvv.S @@ -36,3 +36,30 @@ func ff_llvidenc_diff_bytes_rvv, zve32x ret endfunc + +func ff_llvidenc_sub_left_predict_rvv, zve32x + lpad 0 + li a5, 0x80 + sub a2, a2, a3 +1: + mv t3, a3 + addi a4, a4, -1 +2: + vsetvli t0, t3, e8, m8, ta, ma + vle8.v v16, (a1) + sub t3, t3, t0 + vle8.v v8, (a0) + add a1, a1, t0 + vslide1up.vx v24, v16, a5 + vadd.vv v8, v8, v16 + lb a5, -1(a1) + vsub.vv v8, v8, v24 + vse8.v v8, (a0) + add a0, a0, t0 + bnez t3, 2b + + add a1, a1, a2 + bnez a4, 1b + + ret +endfunc -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
