1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-13 21:28:01 +02:00
FFmpeg/doc
Lynne 5ca40d6d94
lavu/tx: support in-place FFT transforms
This commit adds support for in-place FFT transforms. Since our
internal transforms were all in-place anyway, this only changes
the permutation on the input.

Unfortunately, research papers were of no help here. All focused
on dry hardware implementations, where permutes are free, or on
software implementations where binary bloat is of no concern so
storing dozen times the transforms for each permutation and version
is not considered bad practice.
Still, for a pure C implementation, it's only around 28% slower
than the multi-megabyte FFTW3 in unaligned mode.

Unlike a closed permutation like with PFA, split-radix FFT bit-reversals
contain multiple NOPs, multiple simple swaps, and a few chained swaps,
so regular single-loop single-state permute loops were not possible.
Instead, we filter out parts of the input indices which are redundant.
This allows for a single branch, and with some clever AVX512 asm,
could possibly be SIMD'd without refactoring.

The inplace_idx array is guaranteed to never be larger than the
revtab array, and in practice only requires around log2(len) entries.

The power-of-two MDCTs can be done in-place as well. And it's
possible to eliminate a copy in the compound MDCTs too, however
it'll be slower than doing them out of place, and we'd need to dirty
the input array.
2021-02-21 17:05:16 +01:00
..
dev_community doc: Add dev_community/community.md for general assembly and main elections process. 2020-10-19 14:35:14 +02:00
doxy Merge commit '257f00ec1ab06a2a161f535036c6512f3fc8e801' 2016-06-22 11:28:51 +02:00
examples doc/examples/transcoding: switch to the new encoding API 2020-11-20 15:20:24 +01:00
.gitignore Merge commit '257f00ec1ab06a2a161f535036c6512f3fc8e801' 2016-06-22 11:28:51 +02:00
APIchanges lavu/tx: support in-place FFT transforms 2021-02-21 17:05:16 +01:00
authors.texi
bitstream_filters.texi avcodec/setts_bsf: add sample rate for expressions 2021-02-15 20:52:44 +01:00
bootstrap.min.css
build_system.txt tools: add a fuzzer tool for bitstream filters 2019-12-05 20:49:15 -03:00
codecs.texi doc/codecs: add entries for export_side_data 2020-12-20 15:09:28 +05:30
decoders.texi avcodec/av1dec: add an option to select an operating point 2021-01-04 16:28:29 -03:00
default.css
demuxers.texi doc/demuxers: update mov section 2020-03-06 11:05:30 +05:30
developer.texi fftools/ffmpeg: update text requesting samples 2020-06-01 14:39:52 -04:00
devices.texi
doxy-wrapper.sh
Doxyfile doc: fix spelling errors 2016-10-21 23:58:47 +02:00
encoders.texi avcodec/libaomenc: add support for setting arbitrary libaom options 2021-02-10 11:52:46 +02:00
errno.txt
faq.texi doc/faq: update macOS and URLs 2019-02-11 10:13:31 +05:30
fate_config.sh.template Merge commit '35d1f726eb9fdd376ab900587fb02122b72f2b9a' 2017-05-05 09:27:18 +02:00
fate.texi doc/fate: Document how to request samples upload access 2019-08-09 01:33:49 +02:00
ffmpeg-bitstream-filters.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg-codecs.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg-devices.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg-filters.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg-formats.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg-protocols.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg-resampler.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg-scaler.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg-utils.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
ffmpeg.texi ffmpeg: add -fpsmax to clamp output framerate 2021-02-05 22:54:18 +05:30
ffmpeg.txt
ffplay.texi doc: include general in *-all pages. 2020-09-08 14:29:19 +02:00
ffprobe.texi doc: include general in *-all pages. 2020-09-08 14:29:19 +02:00
ffprobe.xsd fftools/ffprobe: show closed caption info in the stream dump 2020-05-02 19:14:08 +02:00
fftools-common-opts.texi doc/fftools-common-opts: document max_alloc 2021-01-23 14:59:47 +05:30
filter_design.txt doc: update filter_design.txt. 2017-09-12 11:03:51 +02:00
filters.texi avfilter: add vif filter 2021-02-16 15:00:50 +01:00
formats.texi avformat: Add max_probe_packets option 2019-11-03 11:52:32 +01:00
general_contents.texi doc/general_contents: add few more entries 2021-02-07 00:01:12 +01:00
general.texi doc/general: move contents into a separate file. 2020-09-08 14:29:19 +02:00
git-howto.texi Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb' 2016-06-21 21:55:34 +02:00
indevs.texi avdevice/decklink_dec: add support for 50/60 fps timecode 2020-12-03 18:32:57 +01:00
issue_tracker.txt Remove the ffserver program 2018-01-06 18:31:37 +00:00
lexicon doc: add a lexicon 2017-02-03 15:03:44 +01:00
libav-merge.txt doc/libav-merge: add a line about the previous skipped merge 2019-02-20 13:51:19 -03:00
libavcodec.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
libavdevice.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
libavfilter.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
libavformat.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
libavutil.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
libswresample.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
libswscale.texi Remove the ffserver program 2018-01-06 18:31:37 +00:00
mailing-list-faq.texi Revert "doc/mailing-list-faq: Mention current problem with GMX" 2020-05-08 13:29:43 +02:00
Makefile doc: Add mailing list FAQ 2017-10-03 15:25:07 -08:00
metadata.texi doc/metadata: fix error in timebase description 2018-12-14 12:57:34 +01:00
mips.txt
multithreading.txt avcodec: deprecate thread_safe_callbacks 2020-11-27 15:46:50 +01:00
muxers.texi avformat/hlsenc: use AV_OPT_TYPE_DURATION 2021-02-02 20:55:50 +08:00
nut.texi Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb' 2016-06-21 21:55:34 +02:00
optimization.txt build: Prefer NASM assembler over YASM 2017-06-21 17:00:30 -03:00
outdevs.texi lavdevice: Add AudioToolbox output device. 2020-06-15 15:09:33 +02:00
patchwork doc/patchwork: Document the patchwork states 2016-10-26 19:46:00 +02:00
platform.texi configure: error out on unsupported MSVC versions 2018-05-18 02:22:57 +01:00
print_options.c Merge commit '2025d3787158ba272a1b8fbc0493fa20dd7a8484' 2017-03-29 15:20:10 +02:00
protocols.texi doc/protocols: explain tcp listen option description 2021-01-09 17:08:27 +01:00
rate_distortion.txt
resampler.texi swresample/options: enable linear_interp and exact_rational by default 2017-03-17 00:08:03 +07:00
scaler.texi doc/swscaler: explain default Lanczos parameter 2019-05-27 21:32:33 +05:30
snow.txt doc/snow: fix typos 2019-02-10 16:46:56 +01:00
style.min.css
swresample.txt
swscale.txt cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
t2h.init doc/t2h: use container 2016-10-03 00:16:27 +01:00
t2h.pm doc/t2h: use container 2016-10-03 00:16:27 +01:00
tablegen.txt
texi2pod.pl doc/texi2pod: support @float. 2020-09-08 14:29:19 +02:00
texidep.pl
undefined.txt doc: Add initial documentation explaining undefined behavior and SUINT 2017-07-21 17:37:05 +02:00
utils.texi doc/utils: document the "s", "ms" and "us" suffixes for durations 2020-06-09 17:55:52 +05:30
writing_filters.txt doc/writing_filters: Use ff_filter_get_nb_threads() get number of threads 2019-05-22 17:43:41 +08:00