FFmpeg git repo
Go to file
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
compat compat/cuda: add __expf() implementation 2021-08-14 15:06:47 +02:00
doc avfilter: add grayworld video filter 2021-08-29 13:31:37 +02:00
ffbuild avfilter: compress CUDA PTX code if possible 2021-06-22 14:05:44 +02:00
fftools ffmpeg_filter: do not override -filter_threads with -threads 2021-08-29 18:44:09 +02:00
libavcodec avcodec/libx264: add support for setting chroma sample location 2021-08-29 15:05:37 +03:00
libavdevice avdevice/decklink: support for more duplex mode for Decklink 8K Pro 2021-08-16 10:00:39 +08:00
libavfilter libavfilter/x86/vf_gblur: add localbuf and ff_horiz_slice_avx2/512() 2021-08-29 19:58:33 +02:00
libavformat avformat/avidec: Use 64bit for frame number in odml index parsing 2021-08-28 20:47:24 +02:00
libavutil lavu/slicethread: return ENOSYS rather than EINVAL in the dummy func 2021-08-29 18:45:04 +02:00
libpostproc postproc/postprocess: Remove legacy cruft 2021-07-29 22:02:06 +02:00
libswresample (postproc|swresample)/version: Don't include libavutil/avutil.h 2021-07-29 22:02:05 +02:00
libswscale avutil/internal, swresample/audioconvert: Remove cpu.h inclusions 2021-07-22 14:33:45 +02:00
presets
tests tests/checkasm/vf_gblur.c: add check_verti_slice() for unit test 2021-08-29 19:58:33 +02:00
tools tools/dvd2concat: use option keyword 2021-08-22 11:44:17 +02:00
.gitattributes
.gitignore avfilter: compress CUDA PTX code if possible 2021-06-22 14:05:44 +02:00
.mailmap
.travis.yml
Changelog avfilter: add grayworld video filter 2021-08-29 13:31:37 +02:00
configure avfilter/vf_convolve: switch to TX FFT from avutil 2021-08-17 09:15:06 +02:00
CONTRIBUTING.md
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
INSTALL.md
LICENSE.md
MAINTAINERS avformat: add Argonaut Games CVG demuxer 2021-05-12 20:25:50 +10:00
Makefile FATE: add a test for sliced scaling 2021-08-08 19:26:05 +02:00
README.md
RELEASE Bump Versions before release/4.4 branch 2021-03-20 01:01:12 +01:00

FFmpeg README

FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.

Libraries

  • libavcodec provides implementation of a wider range of codecs.
  • libavformat implements streaming protocols, container formats and basic I/O access.
  • libavutil includes hashers, decompressors and miscellaneous utility functions.
  • libavfilter provides a mean to alter decoded Audio and Video through chain of filters.
  • libavdevice provides an abstraction to access capture and playback devices.
  • libswresample implements audio mixing and resampling routines.
  • libswscale implements color conversion and scaling routines.

Tools

  • ffmpeg is a command line toolbox to manipulate, convert and stream multimedia content.
  • ffplay is a minimalistic multimedia player.
  • ffprobe is a simple analysis tool to inspect multimedia content.
  • Additional small tools such as aviocat, ismindex and qt-faststart.

Documentation

The offline documentation is available in the doc/ directory.

The online documentation is available in the main website and in the wiki.

Examples

Coding examples are available in the doc/examples directory.

License

FFmpeg codebase is mainly LGPL-licensed with optional components licensed under GPL. Please refer to the LICENSE file for detailed information.

Contributing

Patches should be submitted to the ffmpeg-devel mailing list using git format-patch or git send-email. Github pull requests should be avoided because they are not part of our review process and will be ignored.