ffmpeg/libavcodec/x86
Andreas Rheinhardt 3a7c09eb39 avcodec/x86/mpegvideoencdsp_init: Port draw_edges to SSSE3
Benchmarks:
draw_edges_8_1724_4_c:                                2672.2 ( 1.00x)
draw_edges_8_1724_4_mmx:                              3191.5 ( 0.84x)
draw_edges_8_1724_4_ssse3:                            2179.6 ( 1.23x)
draw_edges_8_1724_8_c:                                2852.3 ( 1.00x)
draw_edges_8_1724_8_mmx:                              3683.0 ( 0.77x)
draw_edges_8_1724_8_ssse3:                            2225.7 ( 1.28x)
draw_edges_8_1724_16_c:                               4169.4 ( 1.00x)
draw_edges_8_1724_16_mmx:                             4665.9 ( 0.89x)
draw_edges_8_1724_16_ssse3:                           2765.8 ( 1.51x)
draw_edges_128_407_4_c:                               1126.6 ( 1.00x)
draw_edges_128_407_4_mmx:                              943.9 ( 1.19x)
draw_edges_128_407_4_ssse3:                            925.7 ( 1.22x)
draw_edges_128_407_8_c:                               1208.8 ( 1.00x)
draw_edges_128_407_8_mmx:                             1119.1 ( 1.08x)
draw_edges_128_407_8_ssse3:                            997.8 ( 1.21x)
draw_edges_128_407_16_c:                              1352.4 ( 1.00x)
draw_edges_128_407_16_mmx:                            1368.7 ( 0.99x)
draw_edges_128_407_16_ssse3:                          1148.3 ( 1.18x)
draw_edges_1080_31_4_c:                                228.5 ( 1.00x)
draw_edges_1080_31_4_mmx:                              240.8 ( 0.95x)
draw_edges_1080_31_4_ssse3:                            226.7 ( 1.01x)
draw_edges_1080_31_8_c:                                411.1 ( 1.00x)
draw_edges_1080_31_8_mmx:                              432.9 ( 0.95x)
draw_edges_1080_31_8_ssse3:                            403.2 ( 1.02x)
draw_edges_1080_31_16_c:                              1121.2 ( 1.00x)
draw_edges_1080_31_16_mmx:                            1124.9 ( 1.00x)
draw_edges_1080_31_16_ssse3:                          1125.4 ( 1.00x)
draw_edges_1920_4_4_c:                                 310.8 ( 1.00x)
draw_edges_1920_4_4_mmx:                               311.6 ( 1.00x)
draw_edges_1920_4_4_ssse3:                             311.6 ( 1.00x)
draw_edges_1920_4_4_negstride_c:                       307.0 ( 1.00x)
draw_edges_1920_4_4_negstride_mmx:                     306.7 ( 1.00x)
draw_edges_1920_4_4_negstride_ssse3:                   306.7 ( 1.00x)
draw_edges_1920_4_8_c:                                 724.2 ( 1.00x)
draw_edges_1920_4_8_mmx:                               724.9 ( 1.00x)
draw_edges_1920_4_8_ssse3:                             717.3 ( 1.01x)
draw_edges_1920_4_8_negstride_c:                       719.2 ( 1.00x)
draw_edges_1920_4_8_negstride_mmx:                     717.1 ( 1.00x)
draw_edges_1920_4_8_negstride_ssse3:                   710.9 ( 1.01x)
draw_edges_1920_4_16_c:                               1752.9 ( 1.00x)
draw_edges_1920_4_16_mmx:                             1754.6 ( 1.00x)
draw_edges_1920_4_16_ssse3:                           1751.1 ( 1.00x)
draw_edges_1920_4_16_negstride_c:                     1783.2 ( 1.00x)
draw_edges_1920_4_16_negstride_mmx:                   1778.2 ( 1.00x)
draw_edges_1920_4_16_negstride_ssse3:                 1768.3 ( 1.01x)

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2026-02-11 11:15:06 +01:00
..
h26x
hevc avcodec/x86/hevc/dequant: Add SSSE3 dequant ASM function 2026-01-29 12:25:33 +01:00
vvc avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
aacencdsp.asm
aacencdsp_init.c
aacpsdsp.asm
aacpsdsp_init.c avcodec/aacpsdsp: add restrict to function pointers to match declarations 2025-10-25 01:01:14 +02:00
ac3dsp.asm
ac3dsp_downmix.asm
ac3dsp_init.c
alacdsp.asm
alacdsp_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
apv_dsp.asm avcodec/x86/apv_dsp: Don't export arrays unnecessarily 2025-09-24 01:21:32 +00:00
apv_dsp_init.c
audiodsp.asm
audiodsp_init.c
blockdsp.asm
blockdsp_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
bswapdsp.asm
bswapdsp_init.c
cabac.h
cavs_qpel.asm avcodec/x86/cavs_qpel: Add SSE2 vertical motion compensation 2025-10-08 20:40:08 +02:00
cavsdsp.c avcodec/x86/fpel: Port ff_put_pixels8_mmx() to SSE2 2025-10-17 13:27:56 +02:00
cavsidct.asm
celt_pvq_init.c
celt_pvq_search.asm
cfhddsp.asm avcodec/x86/cfhddsp: Reduce number of xmm registers used 2026-01-29 01:33:40 +01:00
cfhddsp_init.c
cfhdencdsp.asm avcodec/x86/cfhdencdsp: Avoid += x, -= x 2026-01-29 01:33:34 +01:00
cfhdencdsp_init.c
constants.c avcodec/x86/cavs_qpel: Add SSE2 vertical motion compensation 2025-10-08 20:40:08 +02:00
constants.h avcodec/x86/cavs_qpel: Add SSE2 vertical motion compensation 2025-10-08 20:40:08 +02:00
dcadsp.asm
dcadsp_init.c avcodec/dcadsp: constify lfe_samples parameter 2025-10-04 14:18:30 -03:00
dct32.asm
dirac_dwt.asm
dirac_dwt_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
diracdsp.asm avcodec/x86/cavs_qpel: Add SSE2 vertical motion compensation 2025-10-08 20:40:08 +02:00
diracdsp_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
dnxhdenc.asm
dnxhdenc_init.c avcodec/pixblockdsp: be consistent about restrict use in ff_{get,diff}_pixels 2025-10-25 01:01:15 +02:00
exrdsp.asm
exrdsp_init.c
fdct.c avcodec/x86/fdct: Remove obsolete comment 2025-11-04 11:41:32 +01:00
fdct.h
fdctdsp_init.c
flac_dsp_gpl.asm
flacdsp.asm
flacdsp_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
flacencdsp_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
fmtconvert.asm
fmtconvert_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
fpel.asm avcodec/x86/fpel: Port ff_put_pixels8_mmx() to SSE2 2025-10-17 13:27:56 +02:00
fpel.h avcodec/x86/fpel: Port ff_put_pixels8_mmx() to SSE2 2025-10-17 13:27:56 +02:00
g722dsp.asm
g722dsp_init.c
h263_loopfilter.asm avcodec/x86/h263_loopfilter: Port loop filter to SSE2 2025-10-03 17:05:46 +00:00
h263dsp_init.c avcodec/x86/h263_loopfilter: Port loop filter to SSE2 2025-10-03 17:05:46 +00:00
h264_cabac.c
h264_chromamc.asm avcodec/x86/h264_chromamc: Use xmm regs in chroma_mc4 SSSE3 functions 2025-11-06 02:16:28 +01:00
h264_chromamc_10bit.asm
h264_deblock.asm avcodec/x86/h264_deblock: Don't sign-extend stride 2026-01-25 22:53:21 +01:00
h264_deblock_10bit.asm avcodec/x86/h264_deblock_10bit: Simplify r0+4*r1 2026-01-25 22:53:21 +01:00
h264_idct.asm avcodec/x86/h264_idct: fix version check for NASM 3 and newer 2025-12-08 17:43:29 +00:00
h264_idct_10bit.asm
h264_intrapred.asm
h264_intrapred_10bit.asm
h264_intrapred_init.c
h264_qpel.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
h264_qpel_8bit.asm avcodec/x86/qpel: Add specializations for put_l2 functions 2025-11-01 15:17:05 +01:00
h264_qpel_10bit.asm avcodec/x86/h264_qpel_10bit: Remove SSE2 "cache64" duplicates 2025-10-04 07:06:33 +02:00
h264_weight.asm
h264_weight_10bit.asm
h264chroma_init.c avcodec/x86/h264_chromamc: Remove MMX(EXT) funcs overridden by SSSE3 2025-11-01 13:34:23 +01:00
h264dsp_init.c avcodec/h264dsp: Remove redundant h264 from H264DSPCtx member names 2026-01-25 22:53:25 +01:00
hpeldsp.asm avcodec/x86/hpeldsp: Don't use PAVGB macro 2025-11-02 12:05:52 +01:00
hpeldsp.h avcodec/x86/rv40dsp_init: Remove MMX(EXT) funcs overridden by SSSE3 2025-09-26 06:21:23 +02:00
hpeldsp_init.c avcodec/x86/fpel: Port ff_put_pixels8_mmx() to SSE2 2025-10-17 13:27:56 +02:00
huffyuvdsp.asm
huffyuvdsp_init.c
huffyuvdsp_template.asm
huffyuvencdsp.asm
huffyuvencdsp_init.c
idctdsp.asm
idctdsp.h avcodec/x86/idctdsp: add restrict to match function pointer types 2025-10-25 01:01:15 +02:00
idctdsp_init.c All: Removed reliance on compiler performing dead code elimination, changed various macro constant checks from if() to #if 2025-11-28 19:52:51 +01:00
imdct36.asm
jpeg2000dsp.asm
jpeg2000dsp_init.c
lossless_audiodsp.asm
lossless_audiodsp_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
lossless_videodsp.asm avcodec/x86/lossless_videodsp: Avoid unnecessary reg push,pop 2025-12-19 20:56:09 +01:00
lossless_videodsp_init.c avcodec/x86/lossless_videodsp: Remove SSSE3 functions using MMX regs 2025-12-19 20:54:44 +01:00
lossless_videoencdsp.asm avcodec/x86/lossless_videoencdsp: Port sub_median_pred to NASM 2025-12-14 10:16:43 +01:00
lossless_videoencdsp_init.c avcodec/x86/lossless_videoencdsp_init: Remove pointless av_unused 2025-12-14 10:16:46 +01:00
lpc.asm
lpc_init.c
Makefile {lib{avcodec,swscale}/x86/,}Makefile: Kill MMX-OBJS 2025-11-30 22:20:13 +01:00
mathops.h
me_cmp.asm avcodec/x86/me_cmp: Avoid call on UNIX64 2025-11-26 00:01:09 +00:00
me_cmp_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
mlpdsp.asm
mlpdsp_init.c All: Removed reliance on compiler performing dead code elimination, changed various macro constant checks from if() to #if 2025-11-28 19:52:51 +01:00
mpeg4videodsp.c
mpegaudiodsp.c
mpegvideo.c avcodec/mpegvideo: Port dct_unquantize_mpeg2_intra_mmx to SSE2 2025-12-03 10:23:43 +01:00
mpegvideoenc.c avcodec/x86/mpegvideoenc_template: Reduce number of registers used 2025-11-18 20:41:13 +01:00
mpegvideoenc_template.c avcodec/x86/mpegvideoenc_template: Reduce number of registers used 2025-11-18 20:41:13 +01:00
mpegvideoencdsp.asm avcodec/x86/mpegvideoencdsp: Port add_8x8basis_ssse3() to ASM 2025-11-18 20:41:12 +01:00
mpegvideoencdsp_init.c avcodec/x86/mpegvideoencdsp_init: Port draw_edges to SSSE3 2026-02-11 11:15:06 +01:00
opusdsp.asm
opusdsp_init.c
pixblockdsp.asm
pixblockdsp_init.c avcodec/pixblockdsp: be consistent about restrict use in ff_{get,diff}_pixels 2025-10-25 01:01:15 +02:00
pngdsp.asm avcodec/x86/pngdsp: Remove MMXEXT function overridden by SSSE3 2026-01-10 22:47:22 +01:00
pngdsp_init.c avcodec/x86/pngdsp: Remove MMXEXT function overridden by SSSE3 2026-01-10 22:47:22 +01:00
proresdsp.asm
proresdsp_init.c
qpel.asm avcodec/x86/h264_qpel: Add and use ff_{avg,put}_pixels16x16_l2_sse2() 2025-11-01 15:17:05 +01:00
qpel.h avcodec/x86/h264_qpel: Add and use ff_{avg,put}_pixels16x16_l2_sse2() 2025-11-01 15:17:05 +01:00
qpeldsp.asm avcodec/x86/qpel: Add specializations for put_l2 functions 2025-11-01 15:17:05 +01:00
qpeldsp_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
rv34dsp.asm
rv34dsp_init.c
rv40dsp.asm
rv40dsp_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
sbcdsp.asm
sbcdsp_init.c
sbrdsp.asm
sbrdsp_init.c
simple_idct.asm avcodec/x86/simple_idct: Port to SSE2 2025-11-08 18:48:54 +01:00
simple_idct.h avcodec/x86/simple_idct: Port to SSE2 2025-11-08 18:48:54 +01:00
simple_idct10.asm
simple_idct10_template.asm
snowdsp.c
svq1enc.asm
svq1enc_init.c
synth_filter.asm
synth_filter_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
takdsp.asm
takdsp_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
ttadsp.asm
ttadsp_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
ttaencdsp.asm
ttaencdsp_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
utvideodsp.asm
utvideodsp_init.c
v210-init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
v210.asm
v210enc.asm
v210enc_init.c All: Removed reliance on compiler performing dead code elimination, changed various macro constant checks from if() to #if 2025-11-28 19:52:51 +01:00
vc1dsp.h
vc1dsp_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
vc1dsp_loopfilter.asm
vc1dsp_mc.asm
vc1dsp_mmx.c
videodsp.asm
videodsp_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
vorbisdsp.asm
vorbisdsp_init.c
vp3dsp.asm avcodec/x86/vp3dsp: Remove remnants of MMX 2025-11-02 12:01:52 +01:00
vp3dsp_init.c avcodec/vp3dsp: Remove unused flags parameter from ff_vp3dsp_init() 2025-10-13 18:59:24 +02:00
vp6dsp.asm avcodec/x86/vp6dsp: Avoid packing+unpacking 2025-11-27 12:10:49 +01:00
vp6dsp_init.c avcodec/vp6dsp: Constify source in vp6_filter_diag4 2025-11-27 12:10:32 +01:00
vp8dsp.asm avcodec/x86/vp8dsp: Don't use saturated addition when unnecessary 2025-12-04 15:17:37 +01:00
vp8dsp_init.c avcodec/x86/vp8dsp_init: Remove unused macro 2025-12-04 15:17:37 +01:00
vp8dsp_loopfilter.asm
vp9dsp_init.c avcodec/vp9itxfm{,_16bpp}: Remove MMXEXT functions overridden by SSSE3 2025-12-08 19:27:51 +01:00
vp9dsp_init.h avcodec/vp9mc: Remove MMXEXT functions overridden by SSSE3 2025-12-08 19:27:05 +01:00
vp9dsp_init_10bpp.c
vp9dsp_init_12bpp.c
vp9dsp_init_16bpp.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00
vp9dsp_init_16bpp_template.c avcodec/vp9itxfm{,_16bpp}: Remove MMXEXT functions overridden by SSSE3 2025-12-08 19:27:51 +01:00
vp9intrapred.asm avcodec/vp9intrapred: Remove MMXEXT functions overridden by SSSE3 2025-12-08 19:27:44 +01:00
vp9intrapred_16bpp.asm
vp9itxfm.asm avcodec/vp9itxfm{,_16bpp}: Remove MMXEXT functions overridden by SSSE3 2025-12-08 19:27:51 +01:00
vp9itxfm_16bpp.asm avcodec/vp9itxfm{,_16bpp}: Remove MMXEXT functions overridden by SSSE3 2025-12-08 19:27:51 +01:00
vp9itxfm_16bpp_avx512.asm
vp9itxfm_avx2.asm vp9: Add 8bpc AVX2 asm for inverse transforms 2025-09-19 23:12:59 +00:00
vp9itxfm_avx512.asm
vp9itxfm_template.asm
vp9lpf.asm avcodec/x86/vp9lpf: Avoid vmovdqa 2026-01-29 11:54:57 +01:00
vp9lpf_16bpp.asm
vp9mc.asm avcodec/x86/vp9mc: Reindent after the previous commit 2025-12-08 19:35:07 +01:00
vp9mc_16bpp.asm
vpx_arith.h
w64xmmtest.c
xvididct.asm avcodec/x86/xvididct: Remove remnants of MMX 2025-11-08 18:48:54 +01:00
xvididct.h
xvididct_init.c avcodec/x86/Makefile: Only compile ASM init files when X86ASM is enabled 2025-11-30 22:20:13 +01:00