1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
FFmpeg/libavfilter/x86
Wu Jianhua 4041c1029b libavfilter/x86/vf_gblur: add localbuf and ff_horiz_slice_avx2/512()
We introduced a ff_horiz_slice_avx2/512() implemented on a new algorithm.
In a nutshell, the new algorithm does three things, gathering data from
8/16 rows, blurring data, and scattering data back to the image buffer.
Here we used a customized transpose 8x8/16x16 to avoid the huge overhead
brought by gather and scatter instructions, which is dependent on the
temporary buffer called localbuf added newly.

Performance data:
ff_horiz_slice_avx2(old): 109.89
ff_horiz_slice_avx2(new): 666.67
ff_horiz_slice_avx512: 1000

Co-authored-by: Cheng Yanfei <yanfei.cheng@intel.com>
Co-authored-by: Jin Jun <jun.i.jin@intel.com>
Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
2021-08-29 19:58:33 +02:00
..
af_afir_init.c
af_afir.asm
af_anlmdn_init.c
af_anlmdn.asm
af_volume_init.c
af_volume.asm
avf_showcqt_init.c avfilter/avf_showcqt: switch to TX FFT from avutil 2021-07-27 21:16:28 +02:00
avf_showcqt.asm
colorspacedsp_init.c
colorspacedsp.asm
Makefile
scene_sad_init.c
scene_sad.asm
vf_atadenoise_init.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_atadenoise.asm
vf_blend_init.c
vf_blend.asm x86/vf_blend: fix warnings about trailing empty parameters 2020-07-12 11:30:23 -03:00
vf_bwdif_init.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_bwdif.asm
vf_convolution_init.c avfilter/vf_convolution: add 16-column operation for filter_column() 2021-02-13 14:45:48 +01:00
vf_convolution.asm
vf_eq_init.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_eq.asm
vf_framerate_init.c
vf_framerate.asm
vf_fspp_init.c
vf_fspp.asm
vf_gblur_init.c libavfilter/x86/vf_gblur: add localbuf and ff_horiz_slice_avx2/512() 2021-08-29 19:58:33 +02:00
vf_gblur.asm libavfilter/x86/vf_gblur: add localbuf and ff_horiz_slice_avx2/512() 2021-08-29 19:58:33 +02:00
vf_gradfun_init.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_gradfun.asm
vf_hflip_init.c
vf_hflip.asm
vf_hqdn3d_init.c
vf_hqdn3d.asm
vf_idet_init.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_idet.asm
vf_interlace.asm
vf_limiter_init.c
vf_limiter.asm
vf_maskedclamp_init.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_maskedclamp.asm
vf_maskedmerge_init.c
vf_maskedmerge.asm
vf_noise.c
vf_overlay_init.c
vf_overlay.asm
vf_pp7_init.c
vf_pp7.asm
vf_psnr_init.c
vf_psnr.asm
vf_pullup_init.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_pullup.asm
vf_removegrain_init.c
vf_removegrain.asm
vf_spp.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_ssim_init.c
vf_ssim.asm vf_ssim: Fix loading doubles to float registers on i386 2020-02-05 14:38:26 +02:00
vf_stereo3d_init.c
vf_stereo3d.asm
vf_threshold_init.c
vf_threshold.asm
vf_tinterlace_init.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_transpose_init.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_transpose.asm
vf_v360_init.c avfilter/vf_v360: add mitchell interpolation 2020-10-04 19:23:52 +02:00
vf_v360.asm avfilter/vf_v360: add SIMD for lagrange9 interpolation 2020-04-02 12:25:37 +02:00
vf_w3fdif_init.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_w3fdif.asm
vf_yadif_init.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_yadif.asm
yadif-10.asm
yadif-16.asm