FFmpeg/libavcodec/x86
Lynne 3ade6a8644
x86/lpc: implement a new Welch windowing function
Old one was written with the assumption only even inputs would be given.
This very messy replacement supports even and odd inputs, and supports
AVX2 for extra speed. The buffers given are usually quite big (4k samples),
so the speedup is worth it.
The new SSE version is still faster than the old inline asm version by 33%.

Also checkasm is provided to make sure this monstrosity works.

This fixes some FATE tests.
2022-09-21 07:12:39 +02:00
..
aacencdsp.asm
aacencdsp_init.c
aacpsdsp.asm
aacpsdsp_init.c
ac3dsp.asm avcodec/x86/ac3dsp_init: Remove obsolete 3dnow, MMX(EXT), SSE functions 2022-06-22 13:29:57 +02:00
ac3dsp_downmix.asm
ac3dsp_init.c avcodec/x86/ac3dsp_init: Remove obsolete 3dnow, MMX(EXT), SSE functions 2022-06-22 13:29:57 +02:00
alacdsp.asm
alacdsp_init.c
audiodsp.asm avcodec/x86/audiodsp: add scalarproduct avx2 2022-09-13 17:43:16 +02:00
audiodsp_init.c avcodec/x86/audiodsp: add scalarproduct avx2 2022-09-13 17:43:16 +02:00
blockdsp.asm avcodec/x86/blockdsp: Remove obsolete MMX functions 2022-06-22 13:33:41 +02:00
blockdsp_init.c avcodec/x86/blockdsp: Remove obsolete MMX functions 2022-06-22 13:33:41 +02:00
bswapdsp.asm
bswapdsp_init.c
cabac.h get_cabac_inline_x86: Don't inline if 32-bit clang on windows 2021-08-19 22:29:23 +03:00
cavsdsp.c avcodec/x86/cavsdsp: Remove obsolete MMX(EXT), 3dnow functions 2022-06-22 13:31:40 +02:00
cavsidct.asm avcodec/x86/cavsdsp: Remove obsolete MMX(EXT), 3dnow functions 2022-06-22 13:31:40 +02:00
celt_pvq_init.c
celt_pvq_search.asm
cfhddsp.asm
cfhddsp_init.c Remove/replace some unnecessary avcodec.h inclusions 2021-07-22 15:29:46 +02:00
cfhdencdsp.asm
cfhdencdsp_init.c avcodec/cfhdencdsp: Constify input pointers 2022-07-31 03:18:19 +02:00
constants.c
constants.h
dcadsp.asm avcodec/x86/dcadsp: Remove obsolete SSE function 2022-06-22 13:39:44 +02:00
dcadsp_init.c avcodec/x86/dcadsp: Remove obsolete SSE function 2022-06-22 13:39:44 +02:00
dct32.asm avcodec/x86/dct32: Remove obsolete SSE function 2022-06-22 13:39:06 +02:00
dct_init.c avcodec/x86/dct32: Remove obsolete SSE function 2022-06-22 13:39:06 +02:00
dirac_dwt.asm avcodec/x86/dirac_dwt: Remove obsolete MMX functions 2022-06-22 13:40:23 +02:00
dirac_dwt_init.c avcodec/x86/dirac_dwt: Remove obsolete MMX functions 2022-06-22 13:40:23 +02:00
diracdsp.asm avcodec/x86/diracdsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:28 +02:00
diracdsp_init.c avcodec/x86/diracdsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:28 +02:00
dnxhdenc.asm
dnxhdenc_init.c
exrdsp.asm
exrdsp_init.c
fdct.c avcodec/x86/fdct: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:59 +02:00
fdct.h avcodec/x86/fdct: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:59 +02:00
fdctdsp_init.c avcodec/x86/fdct: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:59 +02:00
fft.asm avcodec/x86/fft: Remove obsolete 3dnow functions 2022-06-22 13:36:57 +02:00
fft.h avcodec/x86/fft: Remove obsolete 3dnow functions 2022-06-22 13:36:57 +02:00
fft_init.c avcodec/x86/fft: Remove obsolete 3dnow functions 2022-06-22 13:36:57 +02:00
flac_dsp_gpl.asm
flacdsp.asm avcodec/x86/flacdsp: fix bug in decorrelation 2022-09-05 12:27:49 +02:00
flacdsp_init.c avcodec/x86/flacdsp_init: Remove double ';' 2022-09-05 20:54:57 +02:00
flacencdsp_init.c avcodec/flacdsp: Split encoder-only parts into a ctx of its own 2022-08-05 03:28:45 +02:00
fmtconvert.asm avcodec/x86/fmtconvert: Remove obsolete SSE functions 2022-06-22 13:34:32 +02:00
fmtconvert_init.c avcodec/x86/fmtconvert: Remove obsolete SSE functions 2022-06-22 13:34:32 +02:00
fpel.asm avcodec/x86/hpeldsp: Remove obsolete MMX/3dnow functions 2022-06-22 13:34:58 +02:00
fpel.h
g722dsp.asm
g722dsp_init.c
h263_loopfilter.asm
h263dsp_init.c
h264_cabac.c
h264_chromamc.asm avcodec/h264chroma: Constify src in h264_chroma_mc_func 2022-08-05 03:02:13 +02:00
h264_chromamc_10bit.asm avcodec/h264chroma: Constify src in h264_chroma_mc_func 2022-08-05 03:02:13 +02:00
h264_deblock.asm avcodec/x86/h264dsp_init: Remove obsolete MMX(EXT) functions 2022-06-22 13:32:47 +02:00
h264_deblock_10bit.asm avcodec/x86/h264dsp_init: Remove obsolete MMX(EXT) functions 2022-06-22 13:32:47 +02:00
h264_idct.asm avcodec/x86/h264dsp_init: Remove obsolete MMX(EXT) functions 2022-06-22 13:32:47 +02:00
h264_idct_10bit.asm
h264_intrapred.asm avcodec/x86/h264_intrapred: Remove obsolete MMX(EXT) functions 2022-06-22 13:31:53 +02:00
h264_intrapred_10bit.asm avcodec/x86/h264_intrapred: Remove obsolete MMX(EXT) functions 2022-06-22 13:31:53 +02:00
h264_intrapred_init.c avcodec/x86/h264_intrapred: Remove obsolete MMX(EXT) functions 2022-06-22 13:31:53 +02:00
h264_qpel.c avutil/mem_internal: Fix headers 2022-08-24 03:43:52 +02:00
h264_qpel_8bit.asm avcodec/x86/h264_qpel: Remove obsolete MMXEXT functions 2022-06-22 13:35:11 +02:00
h264_qpel_10bit.asm avcodec/x86/h264_qpel: Remove obsolete MMXEXT functions 2022-06-22 13:35:11 +02:00
h264_weight.asm avcodec/x86/h264dsp_init: Remove obsolete MMX(EXT) functions 2022-06-22 13:32:47 +02:00
h264_weight_10bit.asm
h264chroma_init.c avcodec/h264chroma: Constify src in h264_chroma_mc_func 2022-08-05 03:02:13 +02:00
h264dsp_init.c avcodec/x86/h264dsp_init: Remove obsolete MMX(EXT) functions 2022-06-22 13:32:47 +02:00
hevc_add_res.asm avcodec/hevcdsp: Constify src pointers 2022-08-05 02:54:04 +02:00
hevc_deblock.asm
hevc_idct.asm avcodec/x86/hevcdsp_init: Remove obsolete MMXEXT functions 2022-06-22 13:31:12 +02:00
hevc_mc.asm avcodec/hevcdsp: Constify src pointers 2022-08-05 02:54:04 +02:00
hevc_sao.asm avcodec/hevcdsp: Constify src pointers 2022-08-05 02:54:04 +02:00
hevc_sao_10bit.asm avcodec/hevcdsp: Constify src pointers 2022-08-05 02:54:04 +02:00
hevcdsp.h avcodec/hevcdsp: Constify src pointers 2022-08-05 02:54:04 +02:00
hevcdsp_init.c avcodec/hevcdsp: Constify src pointers 2022-08-05 02:54:04 +02:00
hpeldsp.asm avcodec/x86/hpeldsp: Remove obsolete MMX/3dnow functions 2022-06-22 13:34:58 +02:00
hpeldsp.h avcodec/x86/hpeldsp: Remove obsolete MMX/3dnow functions 2022-06-22 13:34:58 +02:00
hpeldsp_init.c avcodec/x86/hpeldsp: Remove obsolete MMX/3dnow functions 2022-06-22 13:34:58 +02:00
hpeldsp_rnd_template.c
hpeldsp_vp3.asm avcodec/x86/hpeldsp_vp3: Remove obsolete 3dnow functions 2022-06-22 13:34:45 +02:00
hpeldsp_vp3_init.c avcodec/x86/hpeldsp_vp3: Remove obsolete 3dnow functions 2022-06-22 13:34:45 +02:00
huffyuvdsp.asm avcodec/x86/huffyuvdsp: Remove obsolete MMX functions 2022-06-22 13:40:10 +02:00
huffyuvdsp_init.c avcodec/x86/huffyuvdsp: Remove obsolete MMX functions 2022-06-22 13:40:10 +02:00
huffyuvdsp_template.asm
huffyuvencdsp.asm avcodec/x86/huffyuvencdsp: Remove obsolete MMX function 2022-06-22 13:40:36 +02:00
huffyuvencdsp_init.c avcodec/x86/huffyuvencdsp: Remove obsolete MMX function 2022-06-22 13:40:36 +02:00
idctdsp.asm avcodec/x86/idctdsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:33:27 +02:00
idctdsp.h avcodec/x86/idctdsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:33:27 +02:00
idctdsp_init.c avcodec/x86/idctdsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:33:27 +02:00
imdct36.asm avcodec/x86/mpegaudiodsp: Remove obsolete SSE function 2022-06-22 13:38:52 +02:00
inline_asm.h
jpeg2000dsp.asm
jpeg2000dsp_init.c
lossless_audiodsp.asm avcodec/x86/lossless_audiodsp: Remove obsolete MMXEXT function 2022-06-22 13:34:06 +02:00
lossless_audiodsp_init.c avcodec/x86/lossless_audiodsp: Remove obsolete MMXEXT function 2022-06-22 13:34:06 +02:00
lossless_videodsp.asm avcodec/x86/lossless_videodsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:41:02 +02:00
lossless_videodsp_init.c avcodec/x86/lossless_videodsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:41:02 +02:00
lossless_videoencdsp.asm avcodec/lossless_videoencdsp: Constify src sub_left_predict 2022-07-31 03:16:35 +02:00
lossless_videoencdsp_init.c avcodec/lossless_videoencdsp: Constify src sub_left_predict 2022-07-31 03:16:35 +02:00
lpc.asm x86/lpc: implement a new Welch windowing function 2022-09-21 07:12:39 +02:00
lpc_init.c x86/lpc: implement a new Welch windowing function 2022-09-21 07:12:39 +02:00
Makefile x86/lpc: implement a new Welch windowing function 2022-09-21 07:12:39 +02:00
mathops.h
mdct15.asm
mdct15_init.c all: Replace if (ARCH_FOO) checks by #if ARCH_FOO 2022-06-15 04:56:37 +02:00
me_cmp.asm avcodec/me_cmp: Constify me_cmp_func buffer parameters 2022-07-31 03:31:53 +02:00
me_cmp_init.c x86: Don't hardcode the height to 8 in sad8_xy2_mmx 2022-08-17 00:00:50 +03:00
mlpdsp.asm
mlpdsp_init.c Remove/replace some unnecessary avcodec.h inclusions 2021-07-22 15:29:46 +02:00
mpegaudiodsp.c avcodec/x86/mpegaudiodsp: Remove obsolete SSE function 2022-06-22 13:38:52 +02:00
mpegvideo.c
mpegvideodsp.c avcodec/mpegvideodsp: Constify src pointers 2022-07-31 03:44:16 +02:00
mpegvideoenc.c avcodec/x86/mpegvideoenc: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:43 +02:00
mpegvideoenc_qns_template.c avcodec/mpegvideoencdsp: Allow pointers to const where possible 2022-07-31 03:32:40 +02:00
mpegvideoenc_template.c avcodec/x86/mpegvideoenc: Remove obsolete MMX(EXT) functions 2022-06-22 13:30:43 +02:00
mpegvideoencdsp.asm avcodec/mpegvideoencdsp: Allow pointers to const where possible 2022-07-31 03:32:40 +02:00
mpegvideoencdsp_init.c avcodec/mpegvideoencdsp: Allow pointers to const where possible 2022-07-31 03:32:40 +02:00
opusdsp.asm
opusdsp_init.c
pixblockdsp.asm avcodec/x86/pixblockdsp: Remove obsolete MMX functions 2022-06-22 13:33:54 +02:00
pixblockdsp_init.c avcodec/x86/pixblockdsp: Remove obsolete MMX functions 2022-06-22 13:33:54 +02:00
pngdsp.asm avcodec/x86/pngdsp: Remove obsolete ff_add_bytes_l2_mmx() 2022-07-25 16:00:57 +02:00
pngdsp_init.c avcodec/x86/pngdsp: Remove obsolete ff_add_bytes_l2_mmx() 2022-07-25 16:00:57 +02:00
proresdsp.asm
proresdsp_init.c
qpel.asm
qpeldsp.asm avcodec/x86/qpeldsp: Remove unused ff_put_no_rnd_pixels16_l2_3dnow 2022-06-11 16:29:07 +02:00
qpeldsp_init.c
rnd_template.c avcodec/x86/hpeldsp: Remove obsolete MMX/3dnow functions 2022-06-22 13:34:58 +02:00
rv34dsp.asm avcodec/x86/rv34dsp: Remove obsolete MMX function 2022-06-22 13:39:31 +02:00
rv34dsp_init.c avcodec/x86/rv34dsp: Remove obsolete MMX function 2022-06-22 13:39:31 +02:00
rv40dsp.asm avcodec/x86/rv40dsp_init: Remove obsolete MMX(EXT), 3dnow functions 2022-06-22 13:31:26 +02:00
rv40dsp_init.c avcodec/h264chroma: Constify src in h264_chroma_mc_func 2022-08-05 03:02:13 +02:00
sbcdsp.asm
sbcdsp_init.c
sbrdsp.asm avcodec/x86/sbrdsp: Remove obsolete SSE function 2022-06-22 13:33:01 +02:00
sbrdsp_init.c avcodec/x86/sbrdsp: Remove obsolete SSE function 2022-06-22 13:33:01 +02:00
simple_idct.asm avcodec/x86/idctdsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:33:27 +02:00
simple_idct.h
simple_idct10.asm
simple_idct10_template.asm
snowdsp.c Remove/replace some unnecessary avcodec.h inclusions 2021-07-22 15:29:46 +02:00
svq1enc.asm avcodec/x86/svq1enc: Remove obsolete MMXEXT function 2022-06-22 13:34:19 +02:00
svq1enc_init.c avcodec/x86/svq1enc: Remove obsolete MMXEXT function 2022-06-22 13:34:19 +02:00
synth_filter.asm avcodec/x86/synth_filter: Remove obsolete SSE function 2022-06-22 13:39:18 +02:00
synth_filter_init.c avcodec/x86/synth_filter: Remove obsolete SSE function 2022-06-22 13:39:18 +02:00
takdsp.asm
takdsp_init.c
ttadsp.asm
ttadsp_init.c
ttaencdsp.asm
ttaencdsp_init.c
utvideodsp.asm
utvideodsp_init.c
v210-init.c
v210.asm
v210enc.asm
v210enc_init.c
vc1dsp.h
vc1dsp_init.c avcodec/h264chroma: Constify src in h264_chroma_mc_func 2022-08-05 03:02:13 +02:00
vc1dsp_loopfilter.asm avcodec/x86/vc1dsp_init: Remove obsolete 3dnow, MMX(EXT) functions 2022-06-22 13:28:57 +02:00
vc1dsp_mc.asm
vc1dsp_mmx.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
videodsp.asm avcodec/x86/videodsp: Remove obsolete MMX, 3dnow, SSE functions 2022-06-22 13:37:35 +02:00
videodsp_init.c avcodec/videodsp: Constify buf in VideoDSPContext.prefetch 2022-07-31 03:14:34 +02:00
vorbisdsp.asm avcodec/x86/vorbisdsp: Remove obsolete 3dnow functions 2022-06-22 13:37:10 +02:00
vorbisdsp_init.c lavc/vorbisdsp: use ptrdiff_t rather than intptr_t 2022-09-19 13:51:00 -03:00
vp3dsp.asm avcodec/x86/vp3dsp: Remove obsolete MMX functions 2022-06-22 13:38:27 +02:00
vp3dsp_init.c avcodec/x86/vp3dsp: Remove obsolete MMX functions 2022-06-22 13:38:27 +02:00
vp6dsp.asm avcodec/x86/vp6dsp: Remove obsolete MMX ff_vp6_filter_diag4_mmx 2022-06-22 13:38:40 +02:00
vp6dsp_init.c avcodec/x86/vp6dsp: Remove obsolete MMX ff_vp6_filter_diag4_mmx 2022-06-22 13:38:40 +02:00
vp8dsp.asm avcodec/vp8dsp: Constify src in vp8_mc_func 2022-09-11 20:57:51 +02:00
vp8dsp_init.c avcodec/vp8dsp: Constify src in vp8_mc_func 2022-09-11 20:57:51 +02:00
vp8dsp_loopfilter.asm avcodec/x86/vp8dsp: Remove obsolete MMX(EXT) functions 2022-06-22 13:39:57 +02:00
vp9dsp_init.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vp9dsp_init.h
vp9dsp_init_10bpp.c
vp9dsp_init_12bpp.c
vp9dsp_init_16bpp.c avcodec/vp9: ipred_hd_16x16_16 avx2 implementation 2022-05-31 08:07:57 -04:00
vp9dsp_init_16bpp_template.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vp9intrapred.asm
vp9intrapred_16bpp.asm avcodec/vp9: ipred_hd_16x16_16 avx2 implementation 2022-05-31 08:07:57 -04:00
vp9itxfm.asm
vp9itxfm_16bpp.asm
vp9itxfm_template.asm
vp9lpf.asm
vp9lpf_16bpp.asm
vp9mc.asm vp9: don't overread by 4 pixels in ff_vp9_avg4_mmxext(). 2022-06-01 14:31:32 -04:00
vp9mc_16bpp.asm
vpx_arith.h avcodec/vp56: Move VP5-9 range coder functions to a header of their own 2022-07-28 03:49:54 +02:00
w64xmmtest.c
xvididct.asm avcodec/x86/xvididct: Remove obsolete MMX(EXT) functions 2022-06-22 13:33:14 +02:00
xvididct.h avcodec/x86/xvididct: Remove obsolete MMX(EXT) functions 2022-06-22 13:33:14 +02:00
xvididct_init.c avcodec/x86/xvididct: Remove obsolete MMX(EXT) functions 2022-06-22 13:33:14 +02:00