Stone Chen
0e52a4e434
libavcodec/x86/vvc: Add AVX2 DMVR SAD functions for VVC
...
Implements AVX2 DMVR (decoder-side motion vector refinement) SAD functions. DMVR SAD is only calculated if w >= 8, h >= 8, and w * h > 128. To reduce complexity, SAD is only calculated on even rows. This is calculated for all video bitdepths, but the values passed to the function are always 16bit (even if the original video bitdepth is 8). The AVX2 implementation uses min/max/sub.
Additionally this changes parameters dx and dy from int to intptr_t. This allows dx & dy to be used as pointer offsets without needing to use movsxd.
Benchmarks ( AMD 7940HS )
Before:
BQTerrace_1920x1080_60_10_420_22_RA.vvc | 106.0 |
Chimera_8bit_1080P_1000_frames.vvc | 204.3 |
NovosobornayaSquare_1920x1080.bin | 197.3 |
RitualDance_1920x1080_60_10_420_37_RA.266 | 174.0 |
After:
BQTerrace_1920x1080_60_10_420_22_RA.vvc | 109.3 |
Chimera_8bit_1080P_1000_frames.vvc | 216.0 |
NovosobornayaSquare_1920x1080.bin | 204.0|
RitualDance_1920x1080_60_10_420_37_RA.266 | 181.7 |
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com >
Signed-off-by: James Almer <jamrial@gmail.com >
2024-05-22 20:36:21 -03:00
..
2024-05-13 13:02:02 +02:00
2024-05-13 14:54:10 +02:00
2024-04-18 08:38:14 +02:00
2024-05-20 12:06:31 +02:00
2024-04-23 08:31:40 +02:00
2024-05-22 19:15:39 +03:00
2024-05-13 14:54:10 +02:00
2024-05-21 20:20:25 +08:00
2024-05-22 20:36:21 -03:00
2024-05-19 11:40:07 +02:00
2024-05-20 12:06:50 +02:00
2024-05-20 11:58:07 +02:00
2024-04-23 08:31:30 +02:00
2024-05-20 12:06:31 +02:00
2024-04-23 08:31:28 +02:00
2024-05-12 16:01:44 +02:00
2024-04-28 13:59:57 +02:00
2024-04-23 08:31:28 +02:00
2024-04-23 08:31:40 +02:00
2024-04-23 08:31:40 +02:00
2024-04-23 08:31:40 +02:00
2024-05-07 12:33:50 +02:00
2024-04-23 08:31:40 +02:00
2024-05-07 12:33:50 +02:00
2024-04-23 08:31:41 +02:00
2024-05-06 23:56:40 +02:00
2024-05-20 11:58:07 +02:00
2024-05-20 11:58:07 +02:00
2024-05-20 11:58:07 +02:00
2024-04-18 14:52:26 +02:00
2024-04-18 14:52:26 +02:00
2024-05-20 14:11:03 +02:00
2024-05-20 14:11:25 +02:00
2024-05-20 14:11:25 +02:00
2024-05-20 12:06:31 +02:00
2024-05-20 12:06:31 +02:00
2024-05-20 12:06:31 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-06 14:51:56 +02:00
2024-05-06 03:00:41 +02:00
2024-05-19 11:40:07 +02:00
2024-05-01 02:57:11 +02:00
2024-05-06 20:17:50 +01:00
2024-05-06 20:17:50 +01:00
2024-05-02 10:39:56 -03:00
2024-05-13 14:54:10 +02:00
2024-04-10 13:22:18 +02:00
2024-05-19 11:40:55 +02:00
2024-05-03 02:35:49 +02:00
2024-05-03 02:35:50 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-08 21:15:05 -03:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-09 16:17:40 +02:00
2024-05-20 10:29:30 -03:00
2024-04-24 02:52:17 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:55 +02:00
2024-04-19 13:18:04 +02:00
2024-04-24 00:11:37 -03:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:39:45 +02:00
2024-04-11 11:46:23 -03:00
2024-05-07 13:24:32 +02:00
2024-05-19 11:40:07 +02:00
2024-04-22 12:17:05 +02:00
2024-04-22 12:17:56 +02:00
2024-04-22 12:17:05 +02:00
2024-05-13 03:40:18 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-06 20:17:50 +01:00
2024-04-19 13:18:04 +02:00
2024-05-20 11:58:07 +02:00
2024-05-20 14:11:25 +02:00
2024-04-11 12:53:26 +02:00
2024-05-19 11:40:55 +02:00
2024-05-08 21:15:05 -03:00
2024-05-13 03:40:19 +02:00
2024-05-13 14:54:10 +02:00
2024-05-13 14:54:10 +02:00
2024-04-19 13:18:04 +02:00
2024-04-19 13:18:04 +02:00
2024-05-19 11:40:07 +02:00
2024-05-12 17:23:58 -03:00
2024-05-12 17:23:58 -03:00
2024-05-12 17:23:58 -03:00
2024-04-11 12:53:26 +02:00
2024-05-13 03:40:17 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-20 12:06:31 +02:00
2024-05-22 19:15:39 +03:00
2024-05-22 19:15:39 +03:00
2024-05-13 03:40:17 +02:00
2024-04-19 13:18:04 +02:00
2024-04-28 19:13:17 +02:00
2024-05-19 10:03:49 +03:00
2024-05-19 10:03:49 +03:00
2024-05-13 03:40:17 +02:00
2024-04-11 11:48:39 -03:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-04-19 13:18:04 +02:00
2024-04-19 13:18:04 +02:00
2024-04-21 16:31:42 +02:00
2024-04-27 21:16:39 +02:00
2024-04-21 16:31:42 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-04-19 13:18:04 +02:00
2024-04-21 09:43:17 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:39:35 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-20 13:51:55 +02:00
2024-04-22 12:17:05 +02:00
2024-05-20 13:51:55 +02:00
2024-05-20 13:51:55 +02:00
2024-05-17 15:40:31 -07:00
2024-05-20 13:51:55 +02:00
2024-05-20 13:51:55 +02:00
2024-05-08 21:14:56 -03:00
2024-05-19 11:40:07 +02:00
2024-05-13 03:40:16 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-13 14:32:21 +02:00
2024-05-19 11:40:07 +02:00
2024-04-23 15:35:26 +08:00
2024-04-29 15:58:48 +08:00
2024-04-19 13:18:04 +02:00
2024-05-19 11:39:18 +02:00
2024-05-11 09:38:34 +02:00
2024-05-19 22:14:37 +02:00
2024-04-08 15:00:01 +02:00
2024-05-19 22:14:37 +02:00
2024-04-08 15:00:02 +02:00
2024-05-19 22:14:38 +02:00
2024-04-08 15:00:02 +02:00
2024-05-19 22:14:39 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 22:14:39 +02:00
2024-05-19 11:40:07 +02:00
2024-05-06 20:17:50 +01:00
2024-04-13 18:00:43 +02:00
2024-04-25 00:33:13 +02:00
2024-04-25 00:33:13 +02:00
2024-04-13 18:00:43 +02:00
2024-05-13 14:54:10 +02:00
2024-05-02 10:39:56 -03:00
2024-04-27 11:12:07 +02:00
2024-04-27 11:12:07 +02:00
2024-04-27 11:12:07 +02:00
2024-04-27 11:12:07 +02:00
2024-04-29 15:30:25 +02:00
2024-04-27 11:12:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:55 +02:00
2024-05-19 11:40:07 +02:00
2024-04-27 21:16:40 +02:00
2024-05-19 11:40:07 +02:00
2024-04-21 16:31:42 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:39:45 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-04-19 13:18:04 +02:00
2024-05-20 09:30:49 +08:00
2024-05-20 09:30:49 +08:00
2024-05-20 09:30:49 +08:00
2024-05-07 11:06:37 +08:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-04-19 13:18:04 +02:00
2024-05-19 11:40:07 +02:00
2024-04-19 13:18:04 +02:00
2024-05-03 18:00:53 +03:00
2024-04-19 13:18:04 +02:00
2024-05-03 18:00:53 +03:00
2024-04-23 08:31:40 +02:00
2024-04-23 08:31:40 +02:00
2024-04-23 08:31:40 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-04-19 13:18:04 +02:00
2024-04-19 13:07:48 +02:00
2024-04-19 13:07:48 +02:00
2024-05-20 14:15:48 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-04-19 13:18:04 +02:00
2024-04-19 13:18:04 +02:00
2024-04-19 13:18:04 +02:00
2024-04-19 13:18:04 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-07 23:53:26 +02:00
2024-05-19 11:40:07 +02:00
2024-05-06 20:17:50 +01:00
2024-05-21 16:57:46 +08:00
2024-05-11 15:21:57 +08:00
2024-04-18 14:43:07 +08:00
2024-04-18 14:43:07 +08:00
2024-04-19 13:18:04 +02:00
2024-05-19 22:12:54 +02:00
2024-05-19 11:40:55 +02:00
2024-05-19 11:49:33 +02:00
2024-05-19 11:40:07 +02:00
2024-05-06 20:17:50 +01:00
2024-05-17 15:40:31 -07:00
2024-05-19 11:40:07 +02:00
2024-05-19 22:12:54 +02:00
2024-05-19 22:12:54 +02:00
2024-04-19 13:18:04 +02:00
2024-05-10 18:41:13 +03:00
2024-05-10 18:41:13 +03:00
2024-04-19 13:18:04 +02:00
2024-04-24 11:47:34 +08:00
2024-04-19 13:18:04 +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-04-19 13:18:04 +02:00
2024-04-19 13:18:04 +02:00
2024-05-19 22:12:55 +02:00
2024-05-06 20:17:50 +01:00
2024-04-15 02:40:02 +02:00
2024-04-15 02:40:02 +02:00
2024-04-21 21:06:50 +08:00
2024-05-06 03:00:41 +02:00
2024-04-19 13:18:04 +02:00
2024-04-19 13:18:04 +02:00
2024-05-19 11:40:07 +02:00
2024-04-19 13:18:04 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:07 +02:00
2024-05-19 11:40:43 +02:00
2024-05-19 11:40:07 +02:00