summaryrefslogtreecommitdiff
path: root/libavutil/lls.c
Commit message (Collapse)AuthorAgeFilesLines
* all: Replace if (ARCH_FOO) checks by #if ARCH_FOOAndreas Rheinhardt2022-06-151-2/+3
| | | | | | | | | | | | | | | | | | This is more spec-compliant because it does not rely on dead-code elimination by the compiler. Especially MSVC has problems with this, as can be seen in https://ffmpeg.org/pipermail/ffmpeg-devel/2022-May/296373.html or https://ffmpeg.org/pipermail/ffmpeg-devel/2022-May/297022.html This commit does not eliminate every instance where we rely on dead code elimination: It only tackles branching to the initialization of arch-specific dsp code, not e.g. all uses of CONFIG_ and HAVE_ checks. But maybe it is already enough to compile FFmpeg with MSVC with whole-programm-optimizations enabled (if one does not disable too many components). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* Remove unnecessary libavutil/(avutil|common|internal).h inclusionsAndreas Rheinhardt2022-02-241-1/+1
| | | | | | | | | | Some of these were made possible by moving several common macros to libavutil/macros.h. While just at it, also improve the other headers a bit. Reviewed-by: Martin Storsjö <martin@martin.st> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* Remove obsolete version.h inclusionsAndreas Rheinhardt2021-07-221-1/+0
| | | | | | | These have mostly been added because of FF_API_*; yet when these were removed, removing the header has been forgotten. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* Merge commit 'd12b5b2f135aade4099f4b26b0fe678656158c13'Derek Buitenhuis2016-05-111-38/+0
|\ | | | | | | | | | | | | | | * commit 'd12b5b2f135aade4099f4b26b0fe678656158c13': build: Split test programs off into separate files Some conversions done by: James Almer <jamrial@gmail.com> Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * build: Split test programs off into separate filesDiego Biurrun2016-04-071-38/+0
| | | | | | | | | | This avoids spurious library rebuilds when only the test program code is changed and simplifies the build system.
* | Merge commit '3b08d9d932eef09403074d5af31e10d8011e840b'Derek Buitenhuis2016-04-211-1/+1
|\ \ | |/ | | | | | | | | | | * commit '3b08d9d932eef09403074d5af31e10d8011e840b': testprogs: K&R formatting cosmetics Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * testprogs: K&R formatting cosmeticsDiego Biurrun2016-03-241-1/+1
| |
* | Merge commit '439929859ae0eb9542d3bb8a0c856bd5a1d1ec48'Derek Buitenhuis2016-04-211-1/+0
|\ \ | |/ | | | | | | | | | | * commit '439929859ae0eb9542d3bb8a0c856bd5a1d1ec48': testprogs: Clean up #includes Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * testprogs: Clean up #includesDiego Biurrun2016-03-241-1/+0
| |
* | Merge commit '50078c1c8070dd8d1c329e8117ff30ec72489039'Hendrik Leppkes2016-01-021-0/+2
|\ \ | |/ | | | | | | | | | | * commit '50078c1c8070dd8d1c329e8117ff30ec72489039': libavutil: move FFALIGN macro from common.h to macros.h Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * libavutil: move FFALIGN macro from common.h to macros.hJanne Grunau2015-12-141-0/+2
| | | | | | | | | | | | | | | | | | Include macros.h explicitly in common.h so that external code using FFALIGN does not break. It was already implicitly included through version.h. Include macros.h in lls.h and internal.h for FFALIGN. lls.h was including common.h only for FFALIGN and internal.h was missing the include for FFALIGN. `make checkheaders` did not catch it because it's an internal header.
| * lavu: Drop deprecated private lls functionsVittorio Giovara2015-08-281-19/+0
| | | | | | | | Deprecated in 02/2013.
* | avutil/lls: speed up performance of solve_llsGanesh Ajjanagadde2015-11-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a trivial rewrite of the loops that results in better prefetching and associated cache efficiency. Essentially, the problem is that modern prefetching logic is based on finite state Markov memory, a reasonable assumption that is used elsewhere in CPU's in for instance branch predictors. Surrounding loops all iterate forward through the array, making the predictor think of prefetching in the forward direction, but the intermediate loop is unnecessarily in the backward direction. Speedup is nontrivial. Benchmarks obtained by 10^6 iterations within solve_lls, with START/STOP_TIMER. File is tests/data/fate/flac-16-lpc-cholesky.err. Hardware: x86-64, Haswell, GNU/Linux. new: 17291 decicycles in solve_lls, 2096706 runs, 446 skips 17255 decicycles in solve_lls, 4193657 runs, 647 skips 17231 decicycles in solve_lls, 8384997 runs, 3611 skips 17189 decicycles in solve_lls,16771010 runs, 6206 skips 17132 decicycles in solve_lls,33544757 runs, 9675 skips 17092 decicycles in solve_lls,67092404 runs, 16460 skips 17058 decicycles in solve_lls,134188213 runs, 29515 skips old: 18009 decicycles in solve_lls, 2096665 runs, 487 skips 17805 decicycles in solve_lls, 4193320 runs, 984 skips 17779 decicycles in solve_lls, 8386855 runs, 1753 skips 18289 decicycles in solve_lls,16774280 runs, 2936 skips 18158 decicycles in solve_lls,33548104 runs, 6328 skips 18420 decicycles in solve_lls,67091793 runs, 17071 skips 18310 decicycles in solve_lls,134187219 runs, 30509 skips Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
* | avutil/lls: Make unchanged function arguments constMichael Niedermayer2014-09-281-2/+2
| | | | | | | | | | Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | drop LLS1, rename LLS2 to LLSMichael Niedermayer2014-08-091-0/+160
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avutil: rename lls to lls2Michael Niedermayer2013-11-171-179/+0
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '502ab21af0ca68f76d6112722c46d2f35c004053'Michael Niedermayer2013-06-301-3/+5
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | * commit '502ab21af0ca68f76d6112722c46d2f35c004053': x86: lpc: simd av_update_lls The versions are bumped due to changes in lls.h which is used across libraries affecting intra library ABI (This version bump also covers changes to lls.h in the immedeatly previous commits) Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * x86: lpc: simd av_update_llsLoren Merritt2013-06-291-3/+5
| | | | | | | | | | | | 4x-6x faster on sandybridge Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | Merge commit '41578f70cf8aec8e7565fba1ca7e07f3dc46c3d2'Michael Niedermayer2013-06-301-12/+14
|\ \ | |/ | | | | | | | | | | * commit '41578f70cf8aec8e7565fba1ca7e07f3dc46c3d2': lpc: use function pointers, in preparation for asm Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lpc: use function pointers, in preparation for asmLoren Merritt2013-06-291-12/+14
| | | | | | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | Merge commit 'cc6714bb16b1f0716ba43701d47273dbe9657b8b'Michael Niedermayer2013-06-301-4/+3
|\ \ | |/ | | | | | | | | | | * commit 'cc6714bb16b1f0716ba43701d47273dbe9657b8b': lpc: remove "decay" argument Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lpc: remove "decay" argumentLoren Merritt2013-06-291-4/+3
| | | | | | | | | | | | We never used the rolling-average mode, and this makes av_update_lls 15% faster. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | Merge commit '1fda184a85178cfd7b98d9e308d18e1ded76a511'Michael Niedermayer2013-05-051-2/+3
|\ \ | |/ | | | | | | | | | | * commit '1fda184a85178cfd7b98d9e308d18e1ded76a511': avutil: Add av_cold attributes to init functions missing them Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * avutil: Add av_cold attributes to init functions missing themDiego Biurrun2013-05-041-2/+3
| |
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-03-011-3/+3
|\ \ | |/ | | | | | | | | | | * qatar/master: lls: Do not return from void functions Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lls: Do not return from void functionsDiego Biurrun2013-03-011-3/+3
| |
* | Merge commit '4da950c0ae224b9b8ef952dadf614be2c050023e'Michael Niedermayer2013-03-011-2/+3
|\ \ | |/ | | | | | | | | | | * commit '4da950c0ae224b9b8ef952dadf614be2c050023e': lls: #ifndef --> #if in FF_API_ version guard Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lls: #ifndef --> #if in FF_API_ version guardDiego Biurrun2013-03-011-2/+3
| |
* | Merge commit '399663be9d4a839b894c48a21b62926eb8497d72'Michael Niedermayer2013-03-011-1/+1
|\ \ | |/ | | | | | | | | | | * commit '399663be9d4a839b894c48a21b62926eb8497d72': lls: mark max_order as unsigned short Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lls: mark max_order as unsigned shortLuca Barbato2013-02-281-1/+1
| | | | | | | | | | | | The value is within 0 and 32. Remove an `array subscript is below array bounds` warning.
* | Merge commit '9d4da474f5f40b019cb4cb931c8499deee586174'Michael Niedermayer2013-03-011-8/+27
|\ \ | |/ | | | | | | | | | | | | | | | | * commit '9d4da474f5f40b019cb4cb931c8499deee586174': lls: move to the private namespace Conflicts: libavutil/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lls: move to the private namespaceLuca Barbato2013-02-281-8/+27
| | | | | | | | The functions are private.
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2011-07-121-5/+8
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: changelog: misc typo and wording fixes H.264: add filter_mb_fast support for >8-bit decoding doc: Remove outdated comments about gcc 2.95 and gcc 3.3 support. lls: use av_lfg instead of rand() in test program build: remove unnecessary dependency on libs from 'all' target H.264: avoid redundant alpha/beta calculations in loopfilter H.264: optimize intra/inter loopfilter decision mpegts: fix Continuity Counter error detection build: remove unnecessary FFLDFLAGS variable vp8/mt: flush worker thread, not application thread context, on seek. mt: proper locking around release_buffer calls. DxVA2: unbreak build after [657ccb5ac75ce34e62bd67f228d9bd36db72189e] hwaccel: unbreak build Eliminate FF_COMMON_FRAME macro. Conflicts: Changelog Makefile doc/developer.texi libavcodec/avcodec.h libavcodec/h264.c libavcodec/mpeg4videodec.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lls: use av_lfg instead of rand() in test programMans Rullgard2011-07-111-5/+8
| | | | | | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2011-07-091-59/+74
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (28 commits) mp3enc: write a xing frame containing number of frames in the file lavf: update AVStream.nb_frames when muxing. ffmpeg: remove unused variables from InputStream. doc: update ffmpeg -ar and -ac documentation to reflect reality. ffmpeg: remove pointless if (nb_input_files) ffmpeg: merge input_files_ts_offset into input_files. ffmpeg: merge input_codecs into input_streams. ffmpeg: drop AV prefixes from struct names. ffmpeg: deprecate loop_input and loop_output options gif: add loop private option. img2: add loop private option. AVOptions: in av_opt_find() don't return named constants unless unit is specified. x11grab: replace undocumented nomouse hackery with a private option. dict: extend documentation. lls: whitespace cosmetics docs: Use proper markup for a literal command line option docs: Remove a remark that isn't relevant any longer docs: Explain how to regenerate import libraries with MSVC tools docs: Mention that libraries for MSVC can be built with a cross compiler docs: Remove old docs that mention setting up a build environment with lib.exe ... Conflicts: doc/ffmpeg.texi doc/general.texi ffmpeg.c libavcodec/Makefile libavcodec/dnxhddata.c libavformat/mp3enc.c libavformat/utils.c libavutil/Makefile tests/copycooker.sh Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lls: whitespace cosmeticsMans Rullgard2011-07-081-59/+74
| | | | | | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
| * Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-191-4/+4
|/ | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* Remove explicit filename from Doxygen @file commands.Diego Biurrun2010-04-201-1/+1
| | | | | | | | Passing an explicit filename to this command is only necessary if the documentation in the @file block refers to a file different from the one the block resides in. Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Remove disabled code cruft.Diego Biurrun2009-08-101-10/+0
| | | | Originally committed as revision 19616 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Align test program output columns.Diego Biurrun2009-03-201-1/+1
| | | | Originally committed as revision 18068 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Use full internal pathname in doxygen @file directives.Diego Biurrun2009-02-011-1/+1
| | | | | | | Otherwise doxygen complains about ambiguous filenames when files exist under the same name in different subdirectories. Originally committed as revision 16912 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Remove unused redefinition of av_log for test.Benoit Fouet2008-08-071-5/+1
| | | | Originally committed as revision 14657 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix the following using void* casts, proper casts are less readable andMichael Niedermayer2008-01-311-2/+2
| | | | | | | | avoiding casts would be even less readable, but other suggestions are welcome. lls.c:56: warning: initialization from incompatible pointer type lls.c:57: warning: initialization from incompatible pointer type Originally committed as revision 11697 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Remove unused variable variance.Diego Biurrun2008-01-081-1/+1
| | | | Originally committed as revision 11471 to svn://svn.ffmpeg.org/ffmpeg/trunk
* main() --> main(void)Diego Biurrun2007-11-231-1/+1
| | | | Originally committed as revision 11079 to svn://svn.ffmpeg.org/ffmpeg/trunk
* license header consistency cosmeticsDiego Biurrun2007-07-051-1/+1
| | | | Originally committed as revision 9484 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Change license headers to say 'FFmpeg' instead of 'this program/this library'Diego Biurrun2006-10-071-4/+6
| | | | | | and fix GPL/LGPL version mismatches. Originally committed as revision 6577 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix FSF postal address.Diego Biurrun2006-07-261-1/+1
| | | | Originally committed as revision 5829 to svn://svn.ffmpeg.org/ffmpeg/trunk
* calculate all coefficients for several orders during cholesky factorization, ↵Michael Niedermayer2006-07-151-28/+36
| | | | | | the resulting coefficients are not strictly optimal though as there is a small difference in the autocorrelation matrixes which is ignored for the smaller orders Originally committed as revision 5758 to svn://svn.ffmpeg.org/ffmpeg/trunk
* unneeded #includeMichael Niedermayer2006-07-141-3/+0
| | | | Originally committed as revision 5743 to svn://svn.ffmpeg.org/ffmpeg/trunk