aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/arm/fft_vfp.S
Commit message (Collapse)AuthorAgeFilesLines
* avcodec: Remove DCT, FFT, MDCT and RDFTAndreas Rheinhardt2023-10-011-530/+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>
* Merge commit 'f963f80399deb1a2b44c1bac3af7123e8a0c9e46'Michael Niedermayer2014-12-091-1/+1
|\ | | | | | | | | | | | | | | | | | | * commit 'f963f80399deb1a2b44c1bac3af7123e8a0c9e46': arm: Use .data.rel.ro for const data with relocations Conflicts: configure Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * arm: Use .data.rel.ro for const data with relocationsMartin Storsjö2014-12-091-1/+1
| | | | | | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'b280c6202b28b371a8d96850194fd69d7ad5dcc0'Michael Niedermayer2014-12-081-10/+5
|\| | | | | | | | | | | | | * commit 'b280c6202b28b371a8d96850194fd69d7ad5dcc0': arm: fft_vfp: Unify the behaviour in ff_fft_calc_vfp between arm/thumb Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * arm: fft_vfp: Unify the behaviour in ff_fft_calc_vfp between arm/thumbMartin Storsjö2014-12-081-10/+5
| | | | | | | | | | | | | | | | | | | | | | | | Don't include the function pointer table in the code segment in arm mode. This shouldn't have any significant performance effect. It does end up as a few more instructions than before, for ARM, but only at the entry to this function, not within the fft functions themselves. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'ae81576414f2d2083d3118fb4abe1ebc5a7a4c54'Michael Niedermayer2014-12-081-0/+1
|\| | | | | | | | | | | | | * commit 'ae81576414f2d2083d3118fb4abe1ebc5a7a4c54': arm: fft_vfp: Add a missing "endconst" when building in thumb mode Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * arm: fft_vfp: Add a missing "endconst" when building in thumb modeMartin Storsjö2014-12-081-0/+1
| | | | | | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '87552d54d3337c3241e8a9e1a05df16eaa821496'Michael Niedermayer2014-07-181-14/+250
|\| | | | | | | | | | | | | * 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-14/+250
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 '8b9eba664edaddf9a304d3acbf0388b5c520781d'Michael Niedermayer2013-07-221-4/+4
|/ | | | | | | * commit '8b9eba664edaddf9a304d3acbf0388b5c520781d': arm: Add VFP-accelerated version of fft16 Merged-by: Michael Niedermayer <michaelni@gmx.at>
* arm: Add VFP-accelerated version of fft16Martin Storsjö2013-07-221-0/+298
Before After Mean StdDev Mean StdDev Change This function 1389.3 4.2 967.8 35.1 +43.6% Overall 15577.5 83.2 15400.0 336.4 +1.2% Signed-off-by: Martin Storsjö <martin@martin.st>