summaryrefslogtreecommitdiffstats
path: root/libavcodec/arm
Commit message (Collapse)AuthorAgeFilesLines
...
* truehd: add hand-scheduled ARM asm version of mlp_filter_channel.Ben Avison2014-03-263-0/+475
| | | | | | | | | | | | | | | | | | | | | | | | | Profiling results for overall audio decode and the mlp_filter_channel(_arm) function in particular are as follows: Before After Mean StdDev Mean StdDev Confidence Change 6:2 total 380.4 22.0 370.8 17.0 87.4% +2.6% (insignificant) 6:2 function 60.7 7.2 36.6 8.1 100.0% +65.8% 8:2 total 357.0 17.5 343.2 19.0 97.8% +4.0% (insignificant) 8:2 function 60.3 8.8 37.3 3.8 100.0% +61.8% 6:6 total 717.2 23.2 658.4 15.7 100.0% +8.9% 6:6 function 140.4 12.9 81.5 9.2 100.0% +72.4% 8:8 total 981.9 16.2 896.2 24.5 100.0% +9.6% 8:8 function 193.4 15.0 103.3 11.5 100.0% +87.2% Experiments with adding preload instructions to this function yielded no useful benefit, so these have not been included. The assembly version has also been tested with a fuzz tester to ensure that any combinations of inputs not exercised by my available test streams still generate mathematically identical results to the C version. Signed-off-by: Martin Storsjö <martin@martin.st>
* dsputil: Refactor duplicated CALL_2X_PIXELS / PIXELS16 macrosDiego Biurrun2014-03-221-1/+1
|
* dsputil: Use correct type in me_cmp_func function pointerDiego Biurrun2014-03-201-5/+6
|
* build: Group general components separate from de/encoders in arch MakefilesDiego Biurrun2014-03-201-17/+20
| | | | This is in line with how the top-level libavcodec Makefile is structured.
* dsputil: Propagate bit depth information to all (sub)init functionsDiego Biurrun2014-03-205-24/+28
| | | | This avoids recalculating the value over and over again.
* arm: dsputil: K&R formatting cosmeticsDiego Biurrun2014-03-204-21/+29
|
* arm: dsputil: Drop restrict keyword from add_pixels_clamped_armv6 prototypeDiego Biurrun2014-03-141-2/+1
| | | | | | | | The function is assigned to a function pointer that does not have the restrict keyword for that parameter. This fixes compilation for MSVC builds that don't recognize "restrict", broken since ed9625eb62.
* Update dsputil- and SIMD-related comments to match reality more closelyDiego Biurrun2014-03-133-3/+3
|
* arm: dsputil: Add a bunch of missing #includesDiego Biurrun2014-03-134-0/+13
|
* dsputil: Remove prototypes for nonexisting optimization functionsDiego Biurrun2014-03-131-1/+0
|
* armv6: vp8: use explicit labels in motion compensation asmJanne Grunau2014-03-121-1/+7
| | | | | The integrated arm assembler in clang-503.0.38 (Xcode-5.1) fails to assemble a branch to 'label + offset' in thumb mode.
* arm: get_cabac inline asmJanne Grunau2014-03-091-0/+102
| | | | | | | | | | Based on the aarch64 asm. CPU cycle counts on cortex-a9 compared to gcc 4.8.2: before: 475 decicycles in get_cabac_noinline, 67106035 runs, 2829 skips after: 393 decicycles in get_cabac_noinline, 67106474 runs, 2390 skips Overall speedup is above 2%. Code generated by clang 3.4 is slower on the same hardware and the relative change is a little larger.
* arm: vp3: remove incorrect const in ff_vp3_idct_dc_add_neon declarationJanne Grunau2014-03-091-1/+1
| | | | | Was missed in aeaf268e52fc11c1f64914a319e0edddf1346d6a when integrating clear_blocks into the idct.
* arm: hpeldsp: fix put_pixels8_y2_{,no_rnd_}armv6Janne Grunau2014-03-081-6/+4
| | | | | | | | The overread avoidance fix in cbddee1cca0ebd01e8c5aa694d31228eb4de4b41 broke the computation for the last row since it prevented the safe reading from the height+1-th row. CC: libav-stable@libav.org
* arm: hpeldsp: prevent overreads in armv6 asmJanne Grunau2014-03-051-8/+12
| | | | | | | Based on a patch by Russel King <rmk+libav@arm.linux.org.uk> Bug-Id: 646 CC: libav-stable@libav.org
* arm: dcadsp: implement decode_hf as external NEON asmJanne Grunau2014-02-282-0/+36
|
* dcadec: simplify decoding of VQ high frequenciesChristophe Gisquet2014-02-281-23/+0
| | | | | | | | | | | | | | | | | | | The vector dequantization has a test in a loop preventing effective SIMD implementation. By moving it out of the loop, this loop can be DSPized. Therefore, modify the current DSP implementation. In particular, the DSP implementation no longer has to handle null loop sizes. The decode_hf implementations have following timings: For x86 Arrandale: C SSE SSE2 SSE4 win32: 260 162 119 104 win64: 242 N/A 89 72 The arm NEON optimizations follow in a later patch as external asm. The now unused check for the y modifier in arm inline asm is removed from configure.
* dcadec: remove scaling in lfe_interpolation_firChristophe Gisquet2014-02-283-21/+5
| | | | | | | The scaling factor is constant so it is faster to scale the FIR coefficients in the tables during compilation. Signed-off-by: Janne Grunau <janne-libav@jannau.net>
* arm: Remove a stray .fpu directiveMartin Storsjö2014-02-091-2/+0
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* dca: include dcadsp.h in {arm,x86}/dca.h for checkheadersJanne Grunau2014-02-081-0/+1
|
* dcadsp: split lfe_dir casesChristophe Gisquet2014-02-073-33/+40
| | | | | | | | | The x86 runs short on registers because numerous elements are not static. In addition, splitting them allows more optimized code, at least for x86. Arm asm changes by Janne Grunau. Signed-off-by: Janne Grunau <janne-libav@jannau.net>
* dcadsp: add int8x8_fmul_int32 to dsp contextChristophe Gisquet2014-02-071-1/+2
| | | | | | | | | | | | | | It is currently declared as a macro who is set to inlinable functions, among which a Neon and a default C implementations. Add a DSP parameter to each inline function, unused except by the default C implementation which calls a function from the DSP context. On an Arrandale CPU, gain for an inlined SSE2 function vs. a call: - Win32: 29 to 26 cycles - Win64: 25 to 23 cycles Signed-off-by: Janne Grunau <janne-libav@jannau.net>
* arm: Add X() around all references to extern symbolsMartin Storsjö2014-02-077-22/+22
| | | | | | Don't rely on the fact that an unprefixed label currently exists. Signed-off-by: Martin Storsjö <martin@martin.st>
* vp8: Use 2 registers for dst_stride and src_stride in neon bilin filterMartin Storsjö2014-02-061-60/+60
| | | | | | Based on a patch by Ronald S. Bultje. Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Use full filenames as multiple inclusion guardsDiego Biurrun2014-01-143-9/+9
|
* arm: Add an option for making sure NEON registers aren't clobberedMartin Storsjö2014-01-112-0/+80
| | | | | | This is pretty much based on the same test for XMM registers. Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Add a missing # as prefix for an immediate constantMartin Storsjö2014-01-071-1/+1
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Allow overriding the alignment set in the function macroMartin Storsjö2014-01-072-18/+9
| | | | | | | | | | | | | | | The function macro always sets .align 2 before declaring the function label (since 5c5e1ea3) and always sets the section to .text (since 278caa6a). The .align 5 before certain functions, added in fc252eba, were added before .text and .align were added to the function macro and thus became useless/unused when the function macro got them. This restores the original intention, to align the loop entry points. Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Remove a leftover define for the pld instructionMartin Storsjö2014-01-071-4/+0
| | | | | | | This file no longer uses the pld instruction at all, all such uses have been split into hpeldsp_arm.S. Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: cosmetics: Reindent the h264dsp neon init functionMartin Storsjö2014-01-071-19/+19
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* Rename CONFIG_FFT_FLOAT ---> FFT_FLOATDiego Biurrun2014-01-061-1/+1
| | | | | The define does not originate from configure, so it should not have a name that is CONFIG_-prefixed.
* h264: do not use 422 functions for monochromeAnton Khirnov2014-01-061-1/+1
| | | | | | | Fixes invalid memory access. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC:libav-stable@libav.org
* arm: Use the matching endfunc macro instead of the assembler directive directlyMartin Storsjö2014-01-041-1/+1
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Add a missing endfunc macro callMartin Storsjö2014-01-041-0/+1
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Don't clobber callee saved registers in scalarproductMartin Storsjö2013-12-201-6/+6
| | | | | | | q4-q7/d8-d15 are supposed to not be clobbered by the callee. CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
* vc1: arm: Add NEON no_rnd chroma MCMason Carter2013-12-202-0/+27
| | | | | | | | Apply David Conrad's old patch to the modern codebase. http://ffmpeg.org/pipermail/ffmpeg-devel/2009-April/059877.html Signed-off-by: Martin Storsjö <martin@martin.st>
* vc1: arm: Add NEON assemblyMason Carter2013-12-205-0/+1331
| | | | | | | | | | | | | For: ff_vc1_inv_trans_{8,4}x{8,4}_{dc_,}neon ff_put_pixels8x8_neon ff_put_vc1_mspel_mc{0,1,2,3}{0,1,2,3}_neon (except for 00) Based on ARM assembly code in libavcodec/arm by Rob Clark and Mans Rullgard. Signed-off-by: Martin Storsjö <martin@martin.st>
* dsputil: Move apply_window_int16 to ac3dspDiego Biurrun2013-12-084-28/+26
| | | | The (optimized) functions are used nowhere else.
* arm: fmtconvert: Split armv6 fmtconvert code off from vfp codeDiego Biurrun2013-08-294-63/+85
|
* arm: dcadsp: Move synth filter initialization to dcadsp fileDiego Biurrun2013-08-292-24/+22
|
* arm: h264chroma: Do not compile h264_chroma_mc* dependent on h264 decoderDiego Biurrun2013-08-231-2/+0
| | | | | The functions are used by all codecs that enable the h264chroma component and the file is already compiled conditional on h264chroma being enabled.
* vp56: Mark VP6-only optimizations as such.Diego Biurrun2013-08-233-6/+4
| | | | | Most of our VP56 optimizations are VP6-only and will stay that way. So avoid compiling them for VP5-only builds.
* arm: Add assembly version of h264_find_start_code_candidateBen Avison2013-08-083-0/+258
| | | | | | | | | | | | | | Before After Mean StdDev Mean StdDev Change This function 508.8 23.4 185.4 9.0 +174.4% Overall 3068.5 31.7 2752.1 29.4 +11.5% In combination with the preceding patch: Before After Mean StdDev Mean StdDev Change Overall 2925.6 26.2 2752.1 29.4 +6.3% Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Comment out unused labels in simple_idct_armMartin Storsjö2013-07-241-8/+8
| | | | | | | | | | | | | | | | | When building for iOS in thumb mode, gas-preprocessor.pl doesn't mark unused labels as thumb functions (as it does for other local labels, where it can figure out that they are functions due to being referenced in branch instructions). This leads to linker warnings for some of those local labels, such as: ld: warning: ARM function not 4-byte aligned: __a_evaluation from libavcodec/libavcodec.a(simple_idct_arm.o) Therefore, comment them out since they don't have any function. They do still have a value in documenting key points in the assembly source though. Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Mangle external symbols properly in new vfp assembly filesMartin Storsjö2013-07-223-4/+4
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Add VFP-accelerated version of qmf_32_subbandsBen Avison2013-07-222-1/+282
| | | | | | | | | Before After Mean StdDev Mean StdDev Change This function 1323.0 98.0 746.2 60.6 +77.3% Overall 15400.0 336.4 14147.5 288.4 +8.9% Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Add VFP-accelerated version of fft16Martin Storsjö2013-07-223-3/+301
| | | | | | | | | 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>
* arm: Add VFP-accelerated version of dca_lfe_firMartin Storsjö2013-07-223-1/+226
| | | | | | | | | Before After Mean StdDev Mean StdDev Change This function 868.2 33.5 436.0 27.0 +99.1% Overall 15973.0 223.2 15577.5 83.2 +2.5% Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Add VFP-accelerated version of imdct_halfMartin Storsjö2013-07-224-1/+217
| | | | | | | | | 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>
* arm: Add VFP-accelerated version of int32_to_float_fmul_array8Ben Avison2013-07-222-1/+167
| | | | | | | | | Before After Mean StdDev Mean StdDev Change This function 366.2 18.3 277.8 13.7 +31.9% Overall 18420.5 489.1 17049.5 408.2 +8.0% Signed-off-by: Martin Storsjö <martin@martin.st>
OpenPOWER on IntegriCloud