summaryrefslogtreecommitdiff
path: root/libavcodec/dcadsp.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge commit '4cb6964244fd6c099383d8b7e99731e72cc844b9'Michael Niedermayer2014-02-281-1/+7
|\ | | | | | | | | | | | | | | | | | | | | * commit '4cb6964244fd6c099383d8b7e99731e72cc844b9': dcadec: simplify decoding of VQ high frequencies Conflicts: configure libavcodec/dcadec.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * dcadec: simplify decoding of VQ high frequenciesChristophe Gisquet2014-02-281-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge commit '87ec849fe9acba075c843e67bcd01f256f481a18'Michael Niedermayer2014-02-281-2/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | * commit '87ec849fe9acba075c843e67bcd01f256f481a18': dcadec: remove scaling in lfe_interpolation_fir Conflicts: libavcodec/dcadec.c libavcodec/dcadsp.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * dcadec: remove scaling in lfe_interpolation_firChristophe Gisquet2014-02-281-2/+1
| | | | | | | | | | | | | | 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>
| * dcadsp: split lfe_dir casesChristophe Gisquet2014-02-071-2/+2
| | | | | | | | | | | | | | | | | | 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: split lfe_dir casesChristophe Gisquet2014-02-081-2/+2
| | | | | | | | | | | | | | The x86 runs short on registers because numerous elements are not static. In addition, splitting them allows more optimized code, at least for x86. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '5b59a9fc6152169599561f04b4f66370edda5c9c'Michael Niedermayer2014-02-081-0/+1
|\ \ | |/ | | | | | | | | | | * commit '5b59a9fc6152169599561f04b4f66370edda5c9c': x86: dcadsp: implement int8x8_fmul_int32 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * x86: dcadsp: implement int8x8_fmul_int32Christophe Gisquet2014-02-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | For the callable function (as opposed to the inline one): C SSE SSE2 SSE4 Win32: 47 42 29 26 Win64: 30 33 25 23 The SSE version is neither compiled nor set for ARCH_X86_64, as the inlinable function takes over. Signed-off-by: Janne Grunau <janne-libav@jannau.net>
| * dcadsp: add int8x8_fmul_int32 to dsp contextChristophe Gisquet2014-02-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | dcadsp: add int8x8_fmul_int32 to DSP contextChristophe Gisquet2014-02-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '800ffab48a7844dd5dc0a33b8f6b8e5ed718cf2e'Michael Niedermayer2013-07-221-0/+9
|\ \ | |/ | | | | | | | | | | * commit '800ffab48a7844dd5dc0a33b8f6b8e5ed718cf2e': dcadsp: Add a new method, qmf_32_subbands Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * dcadsp: Add a new method, qmf_32_subbandsBen Avison2013-07-221-0/+9
| | | | | | | | | | | | | | This does most of the work formerly carried out by the static function qmf_32_subbands() in dcadec.c. Signed-off-by: Martin Storsjö <martin@martin.st>
| * Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-191-4/+4
| | | | | | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
| * 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>
* | 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)
* DCA: ARM/NEON optimised lfe_firMåns Rullgård2010-04-121-0/+1
| | | | Originally committed as revision 22863 to svn://svn.ffmpeg.org/ffmpeg/trunk
* DCA: break out lfe_interpolation_fir() inner loops to a functionMåns Rullgård2010-04-121-0/+29
This enables SIMD optimisations of this function. Originally committed as revision 22861 to svn://svn.ffmpeg.org/ffmpeg/trunk