ffmpeg/libavcodec/x86
Andreas Rheinhardt 436b74b725 avcodec/x86/hevc/dequant: Add SSSE3 dequant ASM function
hevc_dequant_4x4_8_c (GCC):                             20.2 ( 1.00x)
hevc_dequant_4x4_8_c (Clang):                           21.7 ( 1.00x)
hevc_dequant_4x4_8_ssse3:                                5.8 ( 3.51x)
hevc_dequant_8x8_8_c (GCC):                             32.9 ( 1.00x)
hevc_dequant_8x8_8_c (Clang):                           78.7 ( 1.00x)
hevc_dequant_8x8_8_ssse3:                                6.8 ( 4.83x)
hevc_dequant_16x16_8_c (GCC):                          105.1 ( 1.00x)
hevc_dequant_16x16_8_c (Clang):                        151.1 ( 1.00x)
hevc_dequant_16x16_8_ssse3:                             19.3 ( 5.45x)
hevc_dequant_32x32_8_c (GCC):                          415.7 ( 1.00x)
hevc_dequant_32x32_8_c (Clang):                        602.3 ( 1.00x)
hevc_dequant_32x32_8_ssse3:                             78.2 ( 5.32x)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2026-01-29 12:25:33 +01:00
..
h26x x86/vvcdec: sao, add avx2 support 2025-05-14 20:55:39 +08:00
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 x86: aacencdsp: Fix negating signed values in aac_quantize_bands 2025-02-10 14:03:24 +02:00
aacencdsp_init.c x86/aacencdsp: add AVX version of quantize_bands 2024-06-09 12:29:49 -03:00
aacpsdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
aacpsdsp_init.c avcodec/aacpsdsp: add restrict to function pointers to match declarations 2025-10-25 01:01:14 +02:00
ac3dsp.asm x86/ac3dsp: clear the upper 32 bits for input arguments where needed 2024-04-08 13:45:58 -03:00
ac3dsp_downmix.asm
ac3dsp_init.c x86/ac3dsp: add ff_float_to_fixed24_avx() 2023-11-25 21:50:56 -03:00
alacdsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
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 lavc/apv: AVX2 transquant for x86-64 2025-04-27 15:52:30 +01:00
audiodsp.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
audiodsp_init.c
blockdsp.asm x86/blockdsp: add sse2 and avx2 versions of fill_block_tab 2024-05-08 21:13:23 -03:00
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 get_cabac_inline_x86: Don't inline the assembly function on 32 bit 2023-04-02 00:34:10 +03:00
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 lavc/opus*: move to opus/ subdir 2024-09-02 11:56:53 +02:00
celt_pvq_search.asm all: fix typos found by codespell 2025-08-03 13:48:47 +02:00
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 all: fix typos found by codespell 2025-08-03 13:48:47 +02: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 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 avcodec/x86/fdct: guard usage of undefined functions with preprocessor 2025-07-25 21:10:16 +02:00
flac_dsp_gpl.asm
flacdsp.asm x86/flacdsp: remove unused parameters to pmacsdql macro 2024-05-13 12:18:38 -03:00
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 all: fix whitespace/new-line issues 2025-08-03 13:48:47 +02:00
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 x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
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 x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
h264_intrapred.asm x86: Update x86inc.asm 2024-03-24 14:53:57 +01:00
h264_intrapred_10bit.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
h264_intrapred_init.c x86/h264_pred: Convert ff_pred8x8_vertical_8_mmx to ff_pred8x8_vertical_8_sse2 2024-02-13 21:17:06 +00:00
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 x86/h264_weight: don't do arithmetic right shift of a 32bit values in 64bit registers 2024-09-01 15:43:18 -03:00
h264_weight_10bit.asm x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
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 x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
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 x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
jpeg2000dsp_init.c
lossless_audiodsp.asm x86/: clear the high bits for order in scalarproduct_and_madd functions 2023-11-22 14:18:42 -03:00
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 x86/lpc: remove HAVE_AVX2_EXTERNAL checks 2024-10-06 01:32:49 +02:00
lpc_init.c
Makefile {lib{avcodec,swscale}/x86/,}Makefile: Kill MMX-OBJS 2025-11-30 22:20:13 +01:00
mathops.h avcodec/x86/mathops: clip constants used with shift instructions within inline assembly 2023-07-20 16:51:53 -03:00
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/mpegvideodsp: Make MpegVideoDSP MPEG-4 only 2022-10-20 07:56:17 +02:00
mpegaudiodsp.c avcodec/mpegaudiodsp: Init dct32 directly 2023-10-01 01:53:32 +02:00
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: Port add_8x8basis_ssse3() to ASM 2025-11-18 20:41:12 +01:00
opusdsp.asm opusdsp: add ability to modify deemphasis constant 2024-04-27 11:12:07 +02:00
opusdsp_init.c lavc/opus*: move to opus/ subdir 2024-09-02 11:56:53 +02:00
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 avcodec/proresdsp: Pass necessary parameter directly 2023-09-11 00:26:34 +02:00
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 x86: Avoid using 'd' as an argument name 2024-03-24 14:53:57 +01:00
rv34dsp_init.c
rv40dsp.asm x86: Update x86inc.asm 2024-03-24 14:53:57 +01:00
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 x86: Update x86inc.asm 2024-03-24 14:53:57 +01:00
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 avcodec/snow: Move dsp helper functions to snow_dwt.h 2023-10-02 12:23:16 +02:00
svq1enc.asm
svq1enc_init.c avcodec/svq1enc: Add SVQ1EncDSPContext, make codec context private 2022-10-14 16:14:24 +02:00
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 x86/takdsp: add missing wrappers to AVX2 functions 2023-12-25 22:31:15 -03:00
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 x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
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 x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
v210enc.asm avcodec/x86/v210enc: change '0b' binary constant prefix to 'b' suffix 2022-12-03 16:44:24 +01:00
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 avcodec/x86/vc1dsp: add missing header for HAVE_6REGS 2025-08-14 00:08:10 +00:00
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 x86: replace explicit REP_RETs with RETs 2023-02-01 04:23:55 +01:00
vc1dsp_mmx.c
videodsp.asm lavc/x86/videodsp: Drop MMX usage 2024-12-01 13:26:34 +08:00
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 all: fix typos found by codespell 2025-08-03 13:48:47 +02:00
vp9itxfm_avx2.asm vp9: Add 8bpc AVX2 asm for inverse transforms 2025-09-19 23:12:59 +00:00
vp9itxfm_avx512.asm avcodec/x86/vp9: Add AVX-512ICL for 16x16 and 32x32 8bpc inverse transforms 2025-05-19 15:56:27 +02:00
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 avcodec/x86/constants: add pd_64 2025-04-25 23:20:58 -03:00
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