ffmpeg/libavcodec/x86
Andreas Rheinhardt bb65b54f2f avcodec/x86/sbcdsp: Port MMX sbc_calc_scalefactors to SSE4
Besides giving a nice speedup over the MMX version,
it also avoids processing unnecessarily much input and
touching unnecessarily much output in the 2ch-4subbands case.

calc_scalefactors_1ch_4subbands_c:                     106.9 ( 1.00x)
calc_scalefactors_1ch_4subbands_mmx:                    46.7 ( 2.29x)
calc_scalefactors_1ch_4subbands_sse4:                   11.8 ( 9.05x)
calc_scalefactors_1ch_8subbands_c:                     220.5 ( 1.00x)
calc_scalefactors_1ch_8subbands_mmx:                    92.3 ( 2.39x)
calc_scalefactors_1ch_8subbands_sse4:                   23.8 ( 9.28x)
calc_scalefactors_2ch_4subbands_c:                     222.5 ( 1.00x)
calc_scalefactors_2ch_4subbands_mmx:                   139.3 ( 1.60x)
calc_scalefactors_2ch_4subbands_sse4:                   23.6 ( 9.41x)
calc_scalefactors_2ch_8subbands_c:                     440.3 ( 1.00x)
calc_scalefactors_2ch_8subbands_mmx:                   196.8 ( 2.24x)
calc_scalefactors_2ch_8subbands_sse4:                   46.5 ( 9.48x)

The MMX version has been removed.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2026-03-28 11:25:38 +01:00
..
h26x
hevc avcodec/x86/hevc/dequant: Add SSSE3 dequant ASM function 2026-01-29 12:25:33 +01:00
vvc avcodec/x86/vvc/alf: Simplify vb_pos comparisons 2026-03-06 20:02:42 +01:00
aacencdsp.asm
aacencdsp_init.c
aacpsdsp.asm
aacpsdsp_init.c
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 clip unnecessarily 2026-03-14 19:31:45 +01: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 avcodec/x86/bswapdsp: Avoid aligned vs unaligned codepaths for AVX2 2026-02-27 18:25:43 +01:00
bswapdsp_init.c
cabac.h
cavs_qpel.asm
cavsdsp.c
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
constants.h
dcadsp.asm
dcadsp_init.c
dct32.asm
dirac_dwt.asm avcodec/x86/dirac_dwt: Remove MMX in comment 2026-02-13 09:21:33 +01:00
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
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
exrdsp.asm
exrdsp_init.c
fdct.c
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
fpel.h
g722dsp.asm
g722dsp_init.c
h263_loopfilter.asm
h263dsp_init.c
h264_cabac.c
h264_chromamc.asm
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
h264_qpel_10bit.asm
h264_weight.asm
h264_weight_10bit.asm
h264chroma_init.c
h264dsp_init.c avcodec/h264dsp: Remove redundant h264 from H264DSPCtx member names 2026-01-25 22:53:25 +01:00
hpeldsp.asm
hpeldsp.h
hpeldsp_init.c
huffyuvdsp.asm
huffyuvdsp_init.c
huffyuvdsp_template.asm
huffyuvencdsp.asm avcodec/x86/huffyuvencdsp: Remove MMX sub_hfyu_median_pred_int16 2026-03-01 12:04:14 +01:00
huffyuvencdsp_init.c avcodec/x86/huffyuvencdsp_init: Remove pointless av_unused 2026-03-01 12:04:14 +01:00
idctdsp.asm
idctdsp.h
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 avcodec/x86/mpeg4videodsp: Use SSE2 emulated_edge_mc 2026-03-19 14:44:40 +01:00
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
pngdsp.asm avcodec/x86/pngdsp: Don't use 64bit unnecessarily 2026-03-09 07:28:29 +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
qpel.h
qpeldsp.asm
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 avcodec/x86/rv34dsp: Port ff_rv34_idct_dc_noround_mmxext to sse2 2026-03-18 18:04:44 +01:00
rv34dsp_init.c avcodec/x86/rv34dsp: Port ff_rv34_idct_dc_noround_mmxext to sse2 2026-03-18 18:04:44 +01:00
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 avcodec/x86/sbcdsp: Port MMX sbc_calc_scalefactors to SSE4 2026-03-28 11:25:38 +01:00
sbcdsp_init.c avcodec/x86/sbcdsp: Port MMX sbc_calc_scalefactors to SSE4 2026-03-28 11:25:38 +01:00
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.h avcodec/x86/mpeg4videodsp: Use SSE2 emulated_edge_mc 2026-03-19 14:44:40 +01:00
videodsp_init.c avcodec/x86/mpeg4videodsp: Use SSE2 emulated_edge_mc 2026-03-19 14:44:40 +01:00
vorbisdsp.asm
vorbisdsp_init.c
vp3dsp.asm
vp3dsp_init.c
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
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