summaryrefslogtreecommitdiff
path: root/libavcodec/arm
Commit message (Collapse)AuthorAge
...
* arm: hpeldsp: prevent overreads in armv6 asmJanne Grunau2014-03-05
| | | | | | | 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-28
|
* dcadec: simplify decoding of VQ high frequenciesChristophe Gisquet2014-02-28
| | | | | | | | | | | | | | | | | | | 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-28
| | | | | | | 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-09
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* dca: include dcadsp.h in {arm,x86}/dca.h for checkheadersJanne Grunau2014-02-08
|
* dcadsp: split lfe_dir casesChristophe Gisquet2014-02-07
| | | | | | | | | 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-07
| | | | | | | | | | | | | | 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-07
| | | | | | 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-06
| | | | | | 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-14
|
* arm: Add an option for making sure NEON registers aren't clobberedMartin Storsjö2014-01-11
| | | | | | 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-07
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Allow overriding the alignment set in the function macroMartin Storsjö2014-01-07
| | | | | | | | | | | | | | | 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-07
| | | | | | | 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-07
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* Rename CONFIG_FFT_FLOAT ---> FFT_FLOATDiego Biurrun2014-01-06
| | | | | 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-06
| | | | | | | 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-04
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Add a missing endfunc macro callMartin Storsjö2014-01-04
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Don't clobber callee saved registers in scalarproductMartin Storsjö2013-12-20
| | | | | | | 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-20
| | | | | | | | 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-20
| | | | | | | | | | | | | 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-08
| | | | The (optimized) functions are used nowhere else.
* arm: fmtconvert: Split armv6 fmtconvert code off from vfp codeDiego Biurrun2013-08-29
|
* arm: dcadsp: Move synth filter initialization to dcadsp fileDiego Biurrun2013-08-29
|
* arm: h264chroma: Do not compile h264_chroma_mc* dependent on h264 decoderDiego Biurrun2013-08-23
| | | | | 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-23
| | | | | 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-08
| | | | | | | | | | | | | | 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-24
| | | | | | | | | | | | | | | | | 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-22
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Add VFP-accelerated version of qmf_32_subbandsBen Avison2013-07-22
| | | | | | | | | 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-22
| | | | | | | | | 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-22
| | | | | | | | | 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-22
| | | | | | | | | 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-22
| | | | | | | | | 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>
* arm: Add VFP-accelerated version of int32_to_float_fmul_scalarBen Avison2013-07-22
| | | | | | | | | Before After Mean StdDev Mean StdDev Change This function 1175.0 4.4 366.2 18.3 +220.8% Overall 19285.5 292.0 18420.5 489.1 +4.7% Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Add VFP-accelerated version of synth_filter_floatBen Avison2013-07-22
| | | | | | | | | 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>
* fmtconvert: Explicitly use int32_t instead of intChristophe Gisquet2013-07-17
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Include hpeldsp_neon.o if h264qpel is enabledMartin Storsjö2013-05-30
| | | | | | | | | A few of the h264qpel neon functions are shared with other hpeldsp functions in this file. This fixes standalone compilation of the h264 decoder on arm. Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Don't unconditionally build dsputil filesMartin Storsjö2013-05-30
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Only build the FFT init files if FFT is enabledMartin Storsjö2013-05-30
| | | | | | This fixes build errors in cases where FFT is disabled. Signed-off-by: Martin Storsjö <martin@martin.st>
* build: cosmetics: Place unconditional before conditional OBJS linesDiego Biurrun2013-05-30
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* build: arm: cosmetics: Place all OBJS declarations in alphabetical orderDiego Biurrun2013-05-30
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: Drop unnecessary ff_ name prefixes from static functionsDiego Biurrun2013-04-30
|
* arm: hpeldsp: Move half-pel assembly from dsputil to hpeldspRonald S. Bultje2013-04-19
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* vp3: Use full transpose for all IDCTsRonald S. Bultje2013-04-15
| | | | | | | | | | | This way, the special IDCT permutations are no longer needed. This is similar to how H264 does it, and removes the dsputil dependency imposed by the scantable code. Also remove the unused type == 0 cases from the plain C version of the idct. Signed-off-by: Martin Storsjö <martin@martin.st>
* h264: Integrate clear_blocks calls with IDCTRonald S. Bultje2013-04-10
| | | | | | | | | The non-intra-pcm branch in hl_decode_mb (simple, 8bpp) goes from 700 to 672 cycles, and the complete loop of decode_mb_cabac and hl_decode_mb (in the decode_slice loop) goes from 1759 to 1733 cycles on the clip tested (cathedral), i.e. almost 30 cycles per mb faster. Signed-off-by: Martin Storsjö <martin@martin.st>
* dsputil: convert remaining functions to use ptrdiff_t stridesLuca Barbato2013-03-12
| | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* Remove unnecessary dsputil.h #includesDiego Biurrun2013-02-26
|