1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
Go to file
Lynne 4d2f62150d aarch64/opusdsp: implement NEON accelerated postfilter and deemphasis
153372 UNITS in postfilter_c,   65536 runs,      0 skips
73164 UNITS in postfilter_neon,   65536 runs,      0 skips -> 2.1x speedup

80591 UNITS in deemphasis_c,  131072 runs,      0 skips
43969 UNITS in deemphasis_neon,  131072 runs,      0 skips -> 1.83x speedup

Total decoder speedup: ~15% on a Raspberry Pi 3 (from 28.1x to 33.5x realtime)

Deemphasis SIMD based on the following unrolling:
const float c1 = CELT_EMPH_COEFF, c2 = c1*c1, c3 = c2*c1, c4 = c3*c1;
float state = coeff;

for (int i = 0; i < len; i += 4) {
    y[0] = x[0] + c1*state;
    y[1] = x[1] + c2*state + c1*x[0];
    y[2] = x[2] + c3*state + c1*x[1] + c2*x[0];
    y[3] = x[3] + c4*state + c1*x[2] + c2*x[1] + c3*x[0];

    state = y[3];
    y += 4;
    x += 4;
}

Unlike the x86 version, duplication is used instead of pslldq so
the structure and tables are different.
2019-04-10 01:08:54 +02:00
compat additional math.h functions for djgpp 2018-11-28 22:16:07 +11:00
doc doc/examples/metadata: fix the example can't dump FLV metadata 2019-04-07 10:18:42 +08:00
ffbuild Merge commit '7e5bde93a1e7641e1622814dafac0be3f413d79b' 2019-03-10 19:31:13 -03:00
fftools fftools/ffmpeg: Check if we do have also a filter_complex filter. 2019-03-28 21:29:20 +01:00
libavcodec aarch64/opusdsp: implement NEON accelerated postfilter and deemphasis 2019-04-10 01:08:54 +02:00
libavdevice lavd/x11grab: fix vertical repositioning 2019-04-06 15:20:36 +02:00
libavfilter avfilter/af_asetnsamples: use correct function 2019-04-07 21:15:13 +02:00
libavformat avformat/matroskaenc: fix leak on error 2019-04-09 10:49:05 -03:00
libavresample avresample: remove deprecated attribute from the AVAudioResampleContext struct 2018-01-09 10:56:53 -03:00
libavutil libavutil/hwcontext_opencl: Fix channel order in format support check 2019-04-09 22:16:01 +01:00
libpostproc postproc/postprocess_template: remove FF_REG_sp from clobber list 2018-12-22 17:41:44 +01:00
libswresample Bump minor version for master after 4.1 branchpoint 2018-11-02 00:53:07 +01:00
libswscale swscale/ppc: VSX-optimize yuv2rgb_full_X 2019-04-07 09:20:34 +03:00
presets presets: remove moldering iPod presets 2014-06-17 16:15:04 -08:00
tests FATE: Add test for HEVC files that claim to have two first slices 2019-04-05 14:16:52 +01:00
tools tools/target_dec_fate.list: add issues 4000 to 6000 2019-03-20 21:12:45 +01:00
.gitattributes fate: add SCC test 2017-01-27 17:06:42 +01:00
.gitignore Remove the ffserver program 2018-01-06 18:31:37 +00:00
.travis.yml Merge commit '899ee03088d55152a48830df0899887f055da1de' 2019-03-14 15:53:16 -03:00
Changelog lavf/flvdec: added support for KUX container 2019-04-06 15:54:38 +02:00
configure configure: include pkgconfig path as vaapi header search 2019-03-28 21:47:15 +08:00
CONTRIBUTING.md Add CONTRIBUTING.md 2016-09-18 10:02:13 +01:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1 cosmetics: Delete empty lines at end of file. 2012-02-09 12:26:45 +01:00
COPYING.LGPLv3
CREDITS CREDITS: redirect to Git log, remove current outdated content 2013-01-31 18:02:52 +01:00
INSTALL.md INSTALL.md: Fix Markdown formatting 2019-01-31 10:29:16 -09:00
LICENSE.md Merge commit '4fef648d10bf3bcfd4b8fa5755c1128966a2427c' 2017-03-15 22:07:47 +01:00
MAINTAINERS MAINTAINERS: remove myself as mailing list maintainer 2019-03-21 11:34:13 -08:00
Makefile Merge commit '7e5bde93a1e7641e1622814dafac0be3f413d79b' 2019-03-10 19:31:13 -03:00
README.md Remove the ffserver program 2018-01-06 18:31:37 +00:00
RELEASE RELEASE: bump to 4.1.git 2018-11-02 00:55:49 +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.