[vlc-devel] [PATCH 00/25] miscellaneous x86 SIMD work
Victorien Le Couviour--Tuffet
victorien.lecouviour.tuffet at gmail.com
Tue Apr 14 12:40:11 CEST 2020
Some x86 SIMD work here and there.
Adds a test infrastructure for deinterlace video filters
Adds a benchmark tool for x86 asm (extendable to NEON)
Removes outdated SIMD technology deinterlace code
Adds / rewrites some SIMD
Lyndon Brown (2):
configure: fix AVX / AVX2 inline check
cpu: add missing VLC_AVX target attribute
Victorien Le Couviour--Tuffet (23):
cpu: detect AVX and AVX2 on Windows / macOS
cpu: add CPU feature masking
cpu: force feature support runtime check
test: add asm benchmark tool
nasm: update x86inc.asm to its most recent version
align planes to 32 instead of 16, for aligned AVX2 loads
packetizer: fix coding style in starcode_helper.h
packetizer: optimize startcode_FindAnnexB wrapper
bench_asm: add startcode
packetizer: rewrite startcode_FindAnnexB SSE2 asm
packetizer: add startcode_FindAnnexB SSSE3 asm
packetizer: add startcode_FindAnnexB AVX2 asm
deinterlace: remove AltiVec, 3dNow! and MMX
deinterlace: one function pointer per frame
deinterlace: fix Merge{8,16}BitGeneric
deinterlace: add tests for SIMD optimized implementations
bench_asm: add deinterlacer
deinterlace: rewrite render_linear SSE2 asm
deinterlace: rewrite render_mean SSE2 asm
deinterlace: rewrite render_blend SSE2 asm
deinterlace: add render_linear AVX2 asm
deinterlace: add render_mean AVX2 asm
deinterlace: add render_blend AVX2 asm
Makefile.am | 7 +
configure.ac | 4 +-
extras/include/x86/x86inc.asm | 215 +++++---
extras/include/x86/x86util.asm | 1 -
include/vlc_cpu.h | 125 +----
modules/codec/Makefile.am | 13 +-
modules/demux/Makefile.am | 6 +-
modules/mux/Makefile.am | 3 +-
modules/packetizer/Makefile.am | 11 +-
modules/packetizer/h264.c | 3 +-
modules/packetizer/hevc.c | 3 +-
modules/packetizer/hxxx_nal.h | 8 +-
modules/packetizer/mpeg4video.c | 3 +-
modules/packetizer/mpegvideo.c | 3 +-
modules/packetizer/startcode.asm | 276 ++++++++++
modules/packetizer/startcode_helper.h | 144 ++---
modules/packetizer/vc1.c | 3 +-
modules/stream_out/Makefile.am | 3 +-
modules/video_filter/Makefile.am | 1 +
modules/video_filter/deinterlace/algo_basic.c | 502 ++++++++++++++----
modules/video_filter/deinterlace/algo_basic.h | 12 +-
.../deinterlace/algo_basic_x86.asm | 153 ++++++
modules/video_filter/deinterlace/algo_ivtc.c | 6 +
modules/video_filter/deinterlace/algo_ivtc.h | 2 +-
.../video_filter/deinterlace/algo_phosphor.c | 12 +-
.../video_filter/deinterlace/algo_phosphor.h | 4 +-
modules/video_filter/deinterlace/algo_x.c | 8 +-
modules/video_filter/deinterlace/algo_x.h | 2 +-
modules/video_filter/deinterlace/algo_yadif.c | 31 +-
modules/video_filter/deinterlace/algo_yadif.h | 5 +-
.../video_filter/deinterlace/deinterlace.c | 66 +--
.../video_filter/deinterlace/deinterlace.h | 5 +
modules/video_filter/deinterlace/helpers.c | 1 -
modules/video_filter/deinterlace/merge.c | 150 +-----
modules/video_filter/deinterlace/merge.h | 83 +--
src/libvlccore.sym | 2 +
src/misc/cpu.c | 40 +-
src/misc/picture.c | 8 +-
test/Makefile.am | 25 +-
test/bench_asm/bench_asm.h | 30 ++
test/bench_asm/deinterlacing.c | 126 +++++
test/bench_asm/main.c | 94 ++++
test/bench_asm/startcode_annexb.c | 67 +++
test/modules/packetizer/helpers.c | 29 +-
test/modules/video_filter/deinterlace.c | 187 +++++++
45 files changed, 1748 insertions(+), 734 deletions(-)
create mode 100644 modules/packetizer/startcode.asm
create mode 100644 modules/video_filter/deinterlace/algo_basic_x86.asm
create mode 100644 test/bench_asm/bench_asm.h
create mode 100644 test/bench_asm/deinterlacing.c
create mode 100644 test/bench_asm/main.c
create mode 100644 test/bench_asm/startcode_annexb.c
create mode 100644 test/modules/video_filter/deinterlace.c
--
2.24.1
More information about the vlc-devel
mailing list