Skip to content

Conversation

@fhannebi
Copy link

  • vif_avx512.c : vif_statistic_8_avx512() optimized with new avx512 intrinsics code
  • integer_motion.c and motion_avx*.c : new avx2 and avx512 optimized functions which replace the corresponding C functions.
  • integer_adm.c and adm_avx*.c : new avx2 and avx512 optimized functions which replace the corresponding C functions.
  • Possibility to have further speedups by activating code in adm_avx512.c by setting the macros CALC_ANGLE1 and CALC_ANGLE2 at compilation.
  • All these modifications have passed the unittest test cases.

@kylophone
Copy link
Collaborator

Do you have benchmarks to share?

adm_decouple(buf, w, h, buf_stride, adm_enhn_gain_limit);
#if HAVE_AVX512
if (flags & VMAF_X86_CPU_FLAG_AVX512)
adm_decouple_avx512(buf, w, h, buf_stride, adm_enhn_gain_limit, div_lookup);
Copy link
Collaborator

@kylophone kylophone Oct 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here and elsewhere. Please check the CPU flags during init and set optimized path via function pointer.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is done with a new version of integer_adm.c provided in the commit 91942c5

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thank you.

@fhannebi
Copy link
Author

In e6ae1d0 commit: Modified the way picture.h is included in motion_avx512.c and motion_avx2.c to avoid errors of path finding in some configurations;

@lawrencecurtis

This comment was marked as outdated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants