On 5/21/2024 10:01 PM, Ronald S. Bultje wrote:
Hi,
On Tue, May 21, 2024 at 8:01 PM Stone Chen <chen.stonec...@gmail.com> wrote:
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 |
---
libavcodec/vvc/dsp.c | 2 +-
libavcodec/vvc/dsp.h | 2 +-
libavcodec/x86/vvc/Makefile | 3 +-
libavcodec/x86/vvc/vvc_sad.asm | 130 +++++++++++++++++++++++++++++++
libavcodec/x86/vvc/vvcdsp_init.c | 6 ++
5 files changed, 140 insertions(+), 3 deletions(-)
create mode 100644 libavcodec/x86/vvc/vvc_sad.asm
LGTM.
Ronald
Implemented my changes and applied.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".