History

lavc/h264dsp: stick R-V V weight to 16-bit precision

T-Head C908 (ns): h264_weight2_8_c: 1607.8 h264_weight2_8_rvv_i32: 515.0 (before) h264_weight2_8_rvv_i32: 348.5 (after) h264_weight4_8_c: 2255.8 h264_weight4_8_rvv_i32: 1015.0 (before) h264_weight4_8_rvv_i32: 691.0 (after) h264_weight8_8_c: 3857.5 h264_weight8_8_rvv_i32: 2218.8 (before) h264_weight8_8_rvv_i32: 1561.3 (after) h264_weight16_8_c: 7431.5 h264_weight16_8_rvv_i32: 2737.3 (before) h264_weight16_8_rvv_i32: 1848.3 (after) SpacemiT X60 (ns): h264_weight2_8_c: 1624.1 h264_weight2_8_rvv_i32: 352.6 (before) h264_weight2_8_rvv_i32: 259.3 (after) h264_weight4_8_c: 2259.3 h264_weight4_8_rvv_i32: 685.8 (before) h264_weight4_8_rvv_i32: 530.3 (after) h264_weight8_8_c: 4103.3 h264_weight8_8_rvv_i32: 1581.8 (before) h264_weight8_8_rvv_i32: 1238.6 (after) h264_weight16_8_c: 7624.3 h264_weight16_8_rvv_i32: 2738.1 (before) h264_weight16_8_rvv_i32: 1853.3 (after)

Rémi Denis-Courmont committed 2 years ago

Commit 677f28b1 parent afd45c71 file · +16 −21Browse files

Unified · Split

libavcodec/riscv/h264dsp_rvv.S+16−21
@@ -32,17 +32,15 @@ func ff_h264_weight_pixels_simple_8_rvv, zve32x · 31 unmodified lines
32 csrwi vxrm, 032 csrwi vxrm, 0
33 sll a5, a5, a333 sll a5, a5, a3
341:341:
35 vsetvli zero, a6, e32, m4, ta, ma35 vsetvli zero, a6, e16, m2, ta, ma
36 vle8.v v8, (a0)36 vle8.v v8, (a0)
37 addi a2, a2, -137 addi a2, a2, -1
38 vmv.v.x v16, a5
39 vsetvli zero, zero, e16, m2, ta, ma
40 vzext.vf2 v24, v838 vzext.vf2 v24, v8
41 vwmaccsu.vx v16, a4, v2439 vmul.vx v16, v24, a4
42 vnclip.wx v16, v16, a340 vsadd.vx v16, v16, a5
43 vmax.vx v16, v16, zero41 vmax.vx v16, v16, zero
44 vsetvli zero, zero, e8, m1, ta, ma42 vsetvli zero, zero, e8, m1, ta, ma
45 vnclipu.wi v8, v16, 043 vnclipu.wx v8, v16, a3
46 vse8.v v8, (a0)44 vse8.v v8, (a0)
47 add a0, a0, a145 add a0, a0, a1
48 bnez a2, 1b46 bnez a2, 1b
@@ -85,23 +83,20 @@ func ff_h264_weight_pixels_8_rvv, zve32x · 36 unmodified lines
85 mv t0, a083 mv t0, a0
86 mv t6, a684 mv t6, a6
872:852:
88 vsetvli t2, a2, e32, m8, ta, ma86 vsetvli t2, a2, e16, m8, ta, ma
89 vlsseg2e8.v v0, (t0), a187 vlsseg2e8.v v0, (t0), a1
90 addi t6, t6, -288 addi t6, t6, -2
91 vmv.v.x v16, a589 vzext.vf2 v16, v0
92 vmv.v.x v24, a590 vzext.vf2 v24, v4
93 vsetvli zero, zero, e16, m4, ta, ma91 vmul.vx v16, v16, a4
94 vzext.vf2 v8, v092 vmul.vx v24, v24, a4
95 vzext.vf2 v12, v293 vsadd.vx v16, v16, a5
96 vwmaccsu.vx v16, a4, v894 vsadd.vx v24, v24, a5
97 vwmaccsu.vx v24, a4, v1295 vmax.vx v16, v16, zero
98 vnclip.wx v8, v16, a396 vmax.vx v24, v24, zero
99 vnclip.wx v12, v24, a397 vsetvli zero, zero, e8, m4, ta, ma
100 vmax.vx v8, v8, zero98 vnclipu.wx v0, v16, a3
101 vmax.vx v12, v12, zero99 vnclipu.wx v4, v24, a3
102 vsetvli zero, zero, e8, m2, ta, ma
103 vnclipu.wi v0, v8, 0
104 vnclipu.wi v2, v12, 0
105 vssseg2e8.v v0, (t0), a1100 vssseg2e8.v v0, (t0), a1
106 addi t0, t0, 2101 addi t0, t0, 2
107 bnez t6, 2b102 bnez t6, 2b

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