On 5/21/2024 10:01 PM, Ronald S. Bultje wrote:
Hi,

On Tue, May 21, 2024 at 8:01 PM Stone Chen <[email protected]> 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
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to