History

lavc/vp8dsp: R-V V vp8_idct_dc_add4uv

c908: vp8_idct_dc_add4uv_c: 387.7 vp8_idct_dc_add4uv_rvv_i32: 134.5

sunyuechi committed 2 years ago

Commit d897bbb1 parent e74e18c2 files · +17 −0Browse files

Unified · Split

2 files
  1. libavcodec/riscv/vp8dsp_init.c +4 −0
  2. libavcodec/riscv/vp8dsp_rvv.S +13 −0
libavcodec/riscv/vp8dsp_init.c+4−0
@@ -27,6 +27,7 @@ · 26 unmodified lines
2727
2828 void ff_vp8_idct_dc_add_rvv(uint8_t *dst, int16_t block[16], ptrdiff_t stride);
2929 void ff_vp8_idct_dc_add4y_rvv(uint8_t *dst, int16_t block[4][16], ptrdiff_t stride);
30+void ff_vp8_idct_dc_add4uv_rvv(uint8_t *dst, int16_t block[4][16], ptrdiff_t stride);
3031
3132 av_cold void ff_vp8dsp_init_riscv(VP8DSPContext *c)
3233 {
@@ -36,6 +37,9 @@ av_cold void ff_vp8dsp_init_riscv(VP8DSPContext *c) · 3 unmodified lines
3637 if (flags & AV_CPU_FLAG_RVV_I32 && ff_get_rv_vlenb() >= 16) {
3738 c->vp8_idct_dc_add = ff_vp8_idct_dc_add_rvv;
3839 c->vp8_idct_dc_add4y = ff_vp8_idct_dc_add4y_rvv;
40+ if (flags & AV_CPU_FLAG_RVB_ADDR) {
41+ c->vp8_idct_dc_add4uv = ff_vp8_idct_dc_add4uv_rvv;
42+ }
3943 }
4044 #endif
4145 }
libavcodec/riscv/vp8dsp_rvv.S+13−0
@@ -58,3 +58,16 @@ func ff_vp8_idct_dc_add4y_rvv, zve32x · 57 unmodified lines
5858
5959 ret
6060 endfunc
61+
62+func ff_vp8_idct_dc_add4uv_rvv, zve32x
63+ vsetivli zero, 4, e8, mf4, ta, ma
64+ vp8_idct_dc_addy
65+ vp8_idct_dc_add
66+ addi a0, a0, -4
67+ sh2add a0, a2, a0
68+ addi a1, a1, 32
69+ vp8_idct_dc_addy
70+ vp8_idct_dc_add
71+
72+ ret
73+endfunc

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t