1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
Go to file
Martin Storsjö 70db14376c swscale: aarch64: Optimize the final summation in the hscale routine
Before:                     Cortex A53      A72      A73  Graviton 2  Graviton 3
hscale_8_to_15_width8_neon:     8273.0   4602.5   4289.5      2429.7      1629.1
hscale_8_to_15_width16_neon:   12405.7   6803.0   6359.0      3549.0      2378.4
hscale_8_to_15_width32_neon:   21258.7  11491.7  11469.2      5797.2      3919.6
hscale_8_to_15_width40_neon:   25652.0  14173.7  12488.2      6893.5      4810.4

After:
hscale_8_to_15_width8_neon:     7633.0   3981.5   3350.2      1980.7      1261.1
hscale_8_to_15_width16_neon:   11666.7   5951.0   5512.0      3080.7      2131.4
hscale_8_to_15_width32_neon:   20900.7  10733.2   9481.7      5275.2      3862.1
hscale_8_to_15_width40_neon:   24826.0  13536.2  11502.0      6397.2      4731.9

Thus, this gives overall a 8-29% speedup for the smaller filter
sizes, around 1-8% for the larger filter sizes.

Inspired by a patch by Jonathan Swinney <jswinney@amazon.com>.

Signed-off-by: Martin Storsjö <martin@martin.st>
2022-04-22 10:49:46 +03:00
compat Replace all occurences of av_mallocz_array() by av_calloc() 2021-09-20 01:03:52 +02:00
doc examples/decode_video: flush parser to fix missing frame 2022-04-22 11:26:51 +08:00
ffbuild Fix libversion.sh for split version headers, to unbreak shared library builds 2022-03-17 11:11:17 +02:00
fftools doc/ffprobe: clarify that the input file is not optional 2022-04-21 12:34:04 +05:30
libavcodec avcodec/mjpegenc: Don't unnecessarily grow buffer 2022-04-14 18:38:55 +02:00
libavdevice avdevice/dshow: Fix dshow device name/description 2022-04-09 21:29:39 +02:00
libavfilter avfilter/avf_showfreqs: add option to draw subset of channels 2022-04-22 01:20:21 +02:00
libavformat avformat/genh: Check sample rate 2022-04-21 22:42:20 +02:00
libavutil libavutil/hwcontext_qsv: Align width and heigh when download qsv frame 2022-04-13 13:41:27 +08:00
libpostproc Keep including the full version.h when headers are included externally 2022-03-19 00:01:57 +02:00
libswresample swresample/rematrix: fix typo in clean_layout() 2022-03-28 00:07:42 -03:00
libswscale swscale: aarch64: Optimize the final summation in the hscale routine 2022-04-22 10:49:46 +03:00
presets
tests fate/oma: Use REMUX where appropriate 2022-04-14 18:40:30 +02:00
tools avcodec/codec_internal: Add FFCodec, hide internal part of AVCodec 2022-03-21 01:33:09 +01:00
.gitattributes fate: add SCC test 2017-01-27 17:06:42 +01:00
.gitignore gitignore: add config_components.h 2022-03-17 18:35:41 -03:00
.mailmap mailmap: add entry for myself 2021-03-09 02:09:55 +00:00
.travis.yml Merge commit '899ee03088d55152a48830df0899887f055da1de' 2019-03-14 15:53:16 -03:00
Changelog avfilter: add pixelize video filter 2022-04-14 22:37:21 +02:00
configure avformat: Add IPFS protocol support. 2022-04-12 19:58:33 +02:00
CONTRIBUTING.md Add CONTRIBUTING.md 2016-09-18 10:02:13 +01:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
INSTALL.md INSTALL.md: Fix Markdown formatting 2019-01-31 10:29:16 -09:00
LICENSE.md avfilter/vf_geq: Relicense to LGPL 2019-12-28 11:20:48 +01:00
MAINTAINERS MAINTAINERS: add myself as maintainer for libsrt protocol 2022-04-01 09:21:50 +08:00
Makefile Makefile: check config_components.h when comparing timestamps in component list files 2022-03-17 18:35:41 -03:00
README.md README: fix typo and description of libavfilter 2021-10-08 09:44:34 +05:30
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 means to alter decoded audio and video through a directed graph of connected 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.