aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/arm/fft_init_arm.c
Commit message (Collapse)AuthorAgeFilesLines
* avcodec: Remove DCT, FFT, MDCT and RDFTAndreas Rheinhardt2023-10-011-63/+0
| | | | | | | | | | | | | They were replaced by TX from libavutil; the tremendous work to get to this point (both creating TX as well as porting the users of the components removed in this commit) was completely performed by Lynne alone. Removing the subsystems from configure may break some command lines, because the --disable-fft etc. options are no longer recognized. Co-authored-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* arm/fft: disable NEON optimizations for 131072pt transformsLynne2022-08-291-2/+4
| | | | | | | | | This has been broken since the start, and it was only discovered when I started testing my replacement for the FFT. Disable it, since there's no point in fixing slower code that's about to be removed anyway. The vfp version is not affected.
* Merge commit '4c297249ac0f513a610a62691ce96d6b62f65b94'Derek Buitenhuis2016-04-121-13/+0
|\ | | | | | | | | | | | | * commit '4c297249ac0f513a610a62691ce96d6b62f65b94': rdft: arm: Split RDFT initialization into a separate file Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * rdft: arm: Split RDFT initialization into a separate fileDiego Biurrun2016-02-261-13/+0
| |
* | Merge commit '97aec6e75ef36ed0402653519daa8e1fc8ddb555'Derek Buitenhuis2016-04-121-1/+3
|\| | | | | | | | | | | | | * commit '97aec6e75ef36ed0402653519daa8e1fc8ddb555': fft: arm: Drop unnecessary #include, add missing ones Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * fft: arm: Drop unnecessary #include, add missing onesDiego Biurrun2016-02-261-1/+3
| |
* | Merge commit 'e2710e790c09e49e86baa58c6063af0097cc8cb0'Hendrik Leppkes2016-01-021-1/+1
|\| | | | | | | | | | | | | * commit 'e2710e790c09e49e86baa58c6063af0097cc8cb0': arm: add a cpu flag for the VFPv2 vector mode Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * arm: add a cpu flag for the VFPv2 vector modeJanne Grunau2015-12-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The vector mode was deprecated in ARMv7-A/VFPv3 and various cpu implementations do not support it in hardware. Vector mode code will depending the OS either be emulated in software or result in an illegal instruction on cpus which does not support it. This was not really problem in practice since NEON implementations of the same functions are preferred. It will however become a problem for checkasm which tests every cpu flag separately. Since this is a cpu feature newer cpu do not support anymore the behaviour of this flag differs from the other flags. It can be only activated by runtime cpu feature selection.
* | Merge commit '87552d54d3337c3241e8a9e1a05df16eaa821496'Michael Niedermayer2014-07-181-3/+5
|\| | | | | | | | | | | | | * commit '87552d54d3337c3241e8a9e1a05df16eaa821496': armv6: Accelerate ff_fft_calc for general case (nbits != 4) Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * armv6: Accelerate ff_fft_calc for general case (nbits != 4)Ben Avison2014-07-181-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous implementation targeted DTS Coherent Acoustics, which only requires nbits == 4 (fft16()). This case was (and still is) linked directly rather than being indirected through ff_fft_calc_vfp(), but now the full range from radix-4 up to radix-65536 is available. This benefits other codecs such as AAC and AC3. The implementaion is based upon the C version, with each routine larger than radix-16 calling a hierarchy of smaller FFT functions, then performing a post-processing pass. This pass benefits a lot from loop unrolling to counter the long pipelines in the VFP. A relaxed calling standard also reduces the overhead of the call hierarchy, and avoiding the excessive inlining performed by GCC probably helps with I-cache utilisation too. I benchmarked the result by measuring the number of gperftools samples that hit anywhere in the AAC decoder (starting from aac_decode_frame()) or specifically in the FFT routines (fft4() to fft512() and pass()) for the same sample AAC stream: Before After Mean StdDev Mean StdDev Confidence Change Audio decode 2245.5 53.1 1599.6 43.8 100.0% +40.4% FFT routines 940.6 22.0 348.1 20.8 100.0% +170.2% Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'bd549cbaacd33dfb7be81d0619c9b107b8a85be7'Michael Niedermayer2013-08-291-24/+0
|\| | | | | | | | | | | | | * commit 'bd549cbaacd33dfb7be81d0619c9b107b8a85be7': arm: dcadsp: Move synth filter initialization to dcadsp file Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * arm: dcadsp: Move synth filter initialization to dcadsp fileDiego Biurrun2013-08-291-24/+0
| |
* | Merge commit 'b63bb251ea6d6ba23295294e37a92625c0192206'Michael Niedermayer2013-07-221-0/+9
|\| | | | | | | | | | | | | * commit 'b63bb251ea6d6ba23295294e37a92625c0192206': arm: Add VFP-accelerated version of imdct_half Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * arm: Add VFP-accelerated version of imdct_halfMartin Storsjö2013-07-221-0/+9
| | | | | | | | | | | | | | | | | | Before After Mean StdDev Mean StdDev Change This function 2653.0 28.5 1108.8 51.4 +139.3% Overall 17049.5 408.2 15973.0 223.2 +6.7% Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '41ef1d360bac65032aa32f6b43ae137666507ae5'Michael Niedermayer2013-07-221-0/+8
|\| | | | | | | | | | | | | * commit '41ef1d360bac65032aa32f6b43ae137666507ae5': arm: Add VFP-accelerated version of synth_filter_float Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * arm: Add VFP-accelerated version of synth_filter_floatBen Avison2013-07-221-0/+8
| | | | | | | | | | | | | | | | | | Before After Mean StdDev Mean StdDev Change This function 9295.0 114.9 4853.2 83.5 +91.5% Overall 23699.8 397.6 19285.5 292.0 +22.9% Signed-off-by: Martin Storsjö <martin@martin.st>
* | Only set accelerated arm fft functions if fft is enabled.Carl Eugen Hoyos2013-02-171-0/+2
| | | | | | | | | | | | | | Fixes lavc compilation (linking) for configurations without fft. Reported-by: tyler wear Tested-by: Gavin Kinsey
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-04-221-3/+10
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: ARM: allow runtime masking of CPU features dsputil: remove unused functions mov: Treat keyframe indexes as 1-origin if starting at non-zero. mov: Take stps entries into consideration also about key_off. Remove lowres video decoding Conflicts: ffmpeg.c ffplay.c libavcodec/arm/vp8dsp_init_arm.c libavcodec/libopenjpegdec.c libavcodec/mjpegdec.c libavcodec/mpegvideo.c libavcodec/utils.c libavformat/mov.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ARM: allow runtime masking of CPU featuresMans Rullgard2012-04-221-3/+10
| | | | | | | | | | | | | | This allows masking CPU features with the -cpuflags avconv option which is useful for testing different optimisations without rebuilding. Signed-off-by: Mans Rullgard <mans@mansr.com>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-01-211-0/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: Add a tool that uses avio to read and write, doing a plain copy of data ARM: fix build with FFT enabled and MDCT disabled lavf: force single-threaded decoding in avformat_find_stream_info avidec: migrate last of lavf from FF_ER_* to AV_EF_* avserver: fix build after the next bump. Conflicts: libavformat/Makefile libavformat/avidec.c libavformat/utils.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ARM: fix build with FFT enabled and MDCT disabledFelipe Contreras2012-01-201-0/+2
| | | | | | | | | | Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Mans Rullgard <mans@mansr.com>
* | Merge remote-tracking branch 'newdev/master'Michael Niedermayer2011-03-211-0/+1
|\| | | | | | | Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Move dct and rdft definitions to separate filesMans Rullgard2011-03-201-0/+1
| | | | | | | | | | | | | | This leaves fft.h with only the core FFT and MDCT definitions thus making it more managable. 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>
| * FFT: factor a shuffle out of the inner loop and merge it into fft_permute.Loren Merritt2011-02-131-1/+1
| | | | | | | | | | | | 6% faster SSE FFT on Conroe, 2.5% on Penryn. Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
| * Remove unneeded add bias from 3 functions.Justin Ruggles2011-01-311-1/+1
| | | | | | | | | | | | | | | | DSPContext.vector_fmul_window() DCADSPContext.lfe_fir() SynthFilterContext.synth_filter_float() Signed-off-by: Mans Rullgard <mans@mansr.com>
* | FFT: factor a shuffle out of the inner loop and merge it into fft_permute.Loren Merritt2011-02-141-1/+1
| | | | | | | | | | | | | | 6% faster SSE FFT on Conroe, 2.5% on Penryn. Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net> (cherry picked from commit e6b1ed693ae4098e6b9eabf938fc31ec0b09b120)
* | Remove unneeded add bias from 3 functions.Justin Ruggles2011-02-021-1/+1
|/ | | | | | | | | DSPContext.vector_fmul_window() DCADSPContext.lfe_fir() SynthFilterContext.synth_filter_float() Signed-off-by: Mans Rullgard <mans@mansr.com> (cherry picked from commit 80ba1ddb58b5923b9f36a6acd542affc4ca722eb)
* ARM: NEON optimised synth_filter_floatMåns Rullgård2010-04-101-0/+15
| | | | | | 2.7x faster DCA decoding on Cortex-A8 Originally committed as revision 22828 to svn://svn.ffmpeg.org/ffmpeg/trunk
* ARM: NEON optimised RDFTMåns Rullgård2010-03-231-0/+10
| | | | Originally committed as revision 22641 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Move FFT parts from dsputil.h to fft.hMåns Rullgård2010-03-061-1/+1
| | | | Originally committed as revision 22235 to svn://svn.ffmpeg.org/ffmpeg/trunk
* ARM: interleave cos/sin tables for improved NEON MDCTMåns Rullgård2009-09-211-0/+1
| | | | Originally committed as revision 19940 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Merge FFTContext and MDCTContextMåns Rullgård2009-09-201-3/+3
| | | | Originally committed as revision 19931 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Move per-arch fft init bits into the corresponding subdirsMåns Rullgård2009-09-151-0/+39
Originally committed as revision 19864 to svn://svn.ffmpeg.org/ffmpeg/trunk