Files
FFmpeg/libavcodec
Rémi Denis-Courmont 225de53c9d lavc/vp8dsp: rework R-V V idct_dc_add4y
DCT-related FFmpeg functions often add an unsigned 8-bit sample to a
signed 16-bit coefficient, then clip the result back to an unsigned
8-bit value. RISC-V has no signed 16-bit to unsigned 8-bit clip, so
instead our most common sequence is:
    VWADDU.WV
    set SEW to 16 bits
    VMAX.VV zero     # clip negative values to 0
    set SEW to 8 bits
    VNCLIPU.WI       # clip values over 255 to 255 and narrow

Here we use a different sequence which does not require toggling the
vector type. This assumes that the wide addend vector is biased by
-128:
    VWADDU.WV
    VNCLIP.WI    # clip values to signed 8-bit and narrow
    VXOR.VX 0x80 # flip sign bit (convert signed to unsigned)

Also the VMAX is effectively replaced by a VXOR of half-width. In this
function, this comes for free as we anyway add a constant to the wide
vector in the prologue.

On C908, this has no observable effects. On X60, this improves
microbenchmarks by about 20%.
2024-06-04 17:42:07 +03:00
..
2024-06-04 11:46:27 +02:00
2024-06-04 11:46:27 +02:00
2024-06-04 11:46:27 +02:00
2024-06-04 11:46:27 +02:00
2024-06-04 11:46:27 +02:00
2024-06-04 11:46:27 +02:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-02-27 00:11:21 +01:00
2024-02-27 00:11:21 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-04-06 09:26:30 +02:00
2024-03-25 08:54:18 +01:00
2024-04-10 13:22:18 +02:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-15 12:51:15 +01:00
2024-03-15 12:51:15 +01:00
2024-02-12 22:00:03 +02:00
2024-02-12 22:00:03 +02:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-06-04 11:46:27 +02:00
2024-06-04 11:46:27 +02:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-15 12:51:15 +01:00
2024-04-04 23:58:57 +02:00
2024-04-04 23:58:57 +02:00
2024-03-31 00:08:43 +01:00
2024-06-04 11:46:27 +02:00
2024-03-31 00:08:43 +01:00
2024-03-04 17:45:00 +01:00
2024-05-13 03:40:19 +02:00
2023-11-14 19:15:51 +02:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-05-13 03:40:17 +02:00
2024-03-31 00:08:43 +01:00
2024-03-10 13:51:37 +01:00
2024-06-04 11:46:27 +02:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-15 12:51:15 +01:00
2024-03-15 12:51:15 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2023-11-08 17:37:58 +11:00
2024-01-25 11:07:28 -05:00
2024-05-31 13:36:02 -03:00
2024-06-04 11:46:27 +02:00
2024-02-21 20:08:25 +02:00
2024-02-21 20:08:25 +02:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-06-04 11:46:27 +02:00
2024-06-04 11:46:27 +02:00
2024-03-31 00:08:43 +01:00
2024-04-29 15:30:25 +02:00
2024-03-31 00:08:43 +01:00
2024-03-29 09:01:54 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-15 12:51:15 +01:00
2024-03-15 12:51:15 +01:00
2023-11-09 12:53:35 +01:00
2024-03-31 00:08:43 +01:00
2024-05-28 03:48:04 +02:00
2024-05-29 10:46:54 +08:00
2024-06-04 11:46:27 +02:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-05-03 18:00:53 +03:00
2024-05-03 18:00:53 +03:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-06-03 14:13:34 +02:00
2024-03-31 00:08:43 +01:00
2023-12-22 09:28:04 -03:00
2023-12-22 09:28:04 -03:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-15 12:51:15 +01:00
2024-06-04 11:46:27 +02:00
2024-03-31 00:08:43 +01:00
2023-12-08 17:20:48 +02:00
2023-12-08 17:20:48 +02:00
2024-06-04 11:46:27 +02:00
2024-03-31 00:08:43 +01:00
2024-05-19 22:12:54 +02:00
2024-04-19 13:18:04 +02:00
2024-04-29 20:46:05 +03:00
2024-04-29 20:46:05 +03:00
2024-04-19 13:18:04 +02:00
2024-04-19 13:18:04 +02:00
2024-03-31 00:08:43 +01:00
2024-06-04 11:46:27 +02:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00