History

[Common] Add AVX2 motion compensation routines

The resulting per-block speedup is measured to between ~1.96x and ~3.27x for horizontal filtering, between ~1.43x and ~2.09x for vertical filtering, and between ~1.47x and ~3.04x for 2-dimensional filtering on Haswell, depending on block size, as compared with the existing SSE2 routines. Outliers are 4-wide vertical and 2-dimensional filtering with a speedups of ~5.94x and ~8.41x respectively on Haswell (with clang-703.0.31) due to the C routines used previously.

Sindre Aamås committed 10 years ago

Commit b397b391 parent 2ecbc514 files · +1673 −1Browse files

Showing the changes to test/encoder/EncUT_MotionCompensation.cpp (1 of 4 files). Show all

Unified · Split

test/encoder/EncUT_MotionCompensation.cpp+6−0
@@ -222,6 +222,9 @@ DEF_LUMA_MCTESTS(~0, native) · 221 unmodified lines
222#ifdef X86_ASM222#ifdef X86_ASM
223DEF_LUMA_MCTESTS(WELS_CPU_SSE2, sse2)223DEF_LUMA_MCTESTS(WELS_CPU_SSE2, sse2)
224DEF_LUMA_MCTESTS(WELS_CPU_SSE2 | WELS_CPU_SSSE3, ssse3)224DEF_LUMA_MCTESTS(WELS_CPU_SSE2 | WELS_CPU_SSSE3, ssse3)
225#ifdef HAVE_AVX2
226DEF_LUMA_MCTESTS(WELS_CPU_SSE2 | WELS_CPU_SSSE3 | WELS_CPU_AVX2, avx2)
227#endif
225#endif228#endif
226 229
227#define DEF_CHROMA_MCTEST(iW,iH) \230#define DEF_CHROMA_MCTEST(iW,iH) \
@@ -392,4 +395,7 @@ DEF_HALFPEL_MCTESTS(~0, native) · 164 unmodified lines
392#ifdef X86_ASM395#ifdef X86_ASM
393DEF_HALFPEL_MCTESTS(WELS_CPU_SSE2, sse2)396DEF_HALFPEL_MCTESTS(WELS_CPU_SSE2, sse2)
394DEF_HALFPEL_MCTESTS(WELS_CPU_SSE2 | WELS_CPU_SSSE3, ssse3)397DEF_HALFPEL_MCTESTS(WELS_CPU_SSE2 | WELS_CPU_SSSE3, ssse3)
398#ifdef HAVE_AVX2
399DEF_HALFPEL_MCTESTS(WELS_CPU_SSE2 | WELS_CPU_SSSE3 | WELS_CPU_AVX2, avx2)
400#endif
395#endif401#endif

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t