1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
FFmpeg/libavcodec/riscv
Rémi Denis-Courmont 4936bb2508 lavc/h264dsp: optimise R-V V weight for shorter heights
The height is a power of two of up to 16 rows. The current code was
optimised for large sample counts.

T-Head C908:
h264_weight2_8_c:                                      211.7 ( 1.00x)
h264_weight2_8_rvv_i32:                   before       184.0 ( 1.15x)
h264_weight2_8_rvv_i32:                   after         54.2 ( 3.90x)
h264_weight4_8_c:                                      285.7 ( 1.00x)
h264_weight4_8_rvv_i32:                   before       341.2 ( 0.86x)
h264_weight4_8_rvv_i32:                   after         82.2 ( 3.47x)
h264_weight8_8_c:                                      498.7 ( 1.00x)
h264_weight8_8_rvv_i32:                   before       683.7 ( 0.73x)
h264_weight8_8_rvv_i64:                   after        128.5 ( 3.95x)
h264_weight16_8_c:                                     878.2 ( 1.00x)
h264_weight16_8_rvv_i32:                  unchanged    239.5 ( 3.67x)

SpacemiT X60:
h264_weight2_8_c:                                      207.2 ( 1.00x)
h264_weight2_8_rvv_i32:                   before       259.6 ( 0.80x)
h264_weight2_8_rvv_i32:                   after         82.2 ( 2.52x)
h264_weight4_8_c:                                      290.8 ( 1.00x)
h264_weight4_8_rvv_i32:                   before       509.6 ( 0.57x)
h264_weight4_8_rvv_i32:                   after         61.5 ( 4.73x)
h264_weight8_8_c:                                      498.8 ( 1.00x)
h264_weight8_8_rvv_i32:                   before      1019.8 ( 0.49x)
h264_weight8_8_rvv_i64:                   after         71.8 ( 6.95x)
h264_weight16_8_c:                                     874.0 ( 1.00x)
h264_weight16_8_rvv_i32:                  unchanged    249.0 ( 3.51x)
2024-09-24 20:04:51 +03:00
..
vvc lavc/vvc_mc: R-V V avg w_avg 2024-09-24 20:04:51 +03:00
aacencdsp_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
aacencdsp_rvv.S
aacpsdsp_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
aacpsdsp_rvv.S
ac3dsp_init.c
ac3dsp_rvb.S
ac3dsp_rvv.S
ac3dsp_rvvb.S
alacdsp_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
alacdsp_rvv.S
audiodsp_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
audiodsp_rvv.S
blockdsp_init.c
blockdsp_rvv.S
bswapdsp_init.c lavc/bswapdsp: add RV Zvbb bswap16 and bswap32 2024-08-01 18:43:04 +03:00
bswapdsp_rvb.S
bswapdsp_rvv.S
bswapdsp_rvvb.S lavc/bswapdsp: add RV Zvbb bswap16 and bswap32 2024-08-01 18:43:04 +03:00
cpu_common.c
exrdsp_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
exrdsp_rvv.S
fixed_vtype.S
flacdsp_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
flacdsp_rvv.S
fmtconvert_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
fmtconvert_rvv.S
g722dsp_init.c
g722dsp_rvv.S
h263dsp_init.c
h263dsp_rvv.S
h264_chroma_init_riscv.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
h264_mc_chroma.S
h264addpx_rvv.S
h264dsp_init.c lavc/h264dsp: optimise R-V V weight for shorter heights 2024-09-24 20:04:51 +03:00
h264dsp_rvv.S lavc/h264dsp: optimise R-V V weight for shorter heights 2024-09-24 20:04:51 +03:00
h264idct_rvv.S lavc/h264dsp: R-V V idct4_add8 (all depths) 2024-08-05 21:16:26 +03:00
huffyuvdsp_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
huffyuvdsp_rvv.S
idctdsp_init.c
idctdsp_rvv.S
jpeg2000dsp_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
jpeg2000dsp_rvv.S
llauddsp_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
llauddsp_rvv.S
llviddsp_init.c
llviddsp_rvv.S
llvidencdsp_init.c
llvidencdsp_rvv.S
lpc_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
lpc_rvv.S
Makefile lavc/mpegvideoencdsp: R-V V pix_sum 2024-08-19 22:41:13 +03:00
me_cmp_init.c
me_cmp_rvv.S
mpegvideoencdsp_init.c avcodec/mpegvideoencdsp: convert stride parameters from int to ptrdiff_t 2024-09-01 13:42:30 +02:00
mpegvideoencdsp_rvv.S lavc/mpegvideoencdsp: R-V V add_8x8basis 2024-08-19 22:41:13 +03:00
opusdsp_init.c lavc/opus*: move to opus/ subdir 2024-09-02 11:56:53 +02:00
opusdsp_rvv.S
pixblockdsp_init.c
pixblockdsp_rvi.S
pixblockdsp_rvv.S
rv34dsp_init.c
rv34dsp_rvv.S lavc/rv34dsp: use saturating add/sub for R-V V DC add 2024-08-01 18:43:04 +03:00
rv40dsp_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
rv40dsp_rvv.S
sbrdsp_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
sbrdsp_rvv.S
startcode_rvb.S
startcode_rvv.S
svqenc_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
svqenc_rvv.S
takdsp_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
takdsp_rvv.S
utvideodsp_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
utvideodsp_rvv.S
vc1dsp_init.c
vc1dsp_rvi.S
vc1dsp_rvv.S lavc/vc1dsp: use saturating arithmetic for RVV inv_trans_dc 2024-07-30 18:41:51 +03:00
videodsp_init.c lavc/videodsp: RISC-V zicbop prefetch 2024-07-30 18:41:51 +03:00
videodsp.S lavc/videodsp: work-around LLVM-as 2024-08-02 21:24:01 +03:00
vorbisdsp_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
vorbisdsp_rvv.S
vp7dsp_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
vp7dsp_rvv.S
vp8dsp_init.c lavc/riscv: depend on RVB and simplify accordingly 2024-08-05 21:16:26 +03:00
vp8dsp_rvi.S
vp8dsp_rvv.S
vp8dsp.h
vp9_intra_rvv.S
vp9_mc_rvi.S
vp9_mc_rvv.S lavc/vp9dsp: R-V V mc bilin hv 2024-08-19 22:29:20 +03:00
vp9dsp_init.c lavc/vp9dsp: R-V V mc bilin hv 2024-08-19 22:29:20 +03:00
vp9dsp.h lavc/vp9dsp: R-V V mc bilin h v 2024-08-19 22:29:20 +03:00