summaryrefslogtreecommitdiff
path: root/libavcodec/dcadsp.h
Commit message (Collapse)AuthorAgeFilesLines
* dca: use defines for subband related constantsAlexandra Hájková2015-12-311-3/+6
| | | | Signed-off-by: Janne Grunau <janne-libav@jannau.net>
* dca: remove unused decode_hf function and quant_d tablesAlexandra Hájková2015-12-241-7/+2
| | | | | They were superseded with their integer equivalents. Rename integer decode_hf to decode_hf.
* dca: change the core to work with integer coefficients.Alexandra Hájková2015-12-231-0/+6
| | | | | | | | | | | | The DCA core decoder converts integer coefficients read from the bitstream to floats just after reading them (along with dequantization). All the other steps of the audio reconstruction are done with floats which makes the output for the DTS lossless extension (XLL) actually lossy. This patch changes the DCA core to work with integer coefficients until QMF. At this point the integer coefficients are converted to floats. The coefficients for the LFE channel (lfe_data) are not touched. This is the first step for the really lossless XLL decoding.
* arm64: convert dcadsp neon asm from armJanne Grunau2015-12-141-0/+1
| | | | | | | | | | | | ~2% faster dts decoding overall. cortex-a57 cortex-a53 dca_decode_hf_c: 474.8 1659.9 dca_decode_hf_neon: 225.2 301.1 dca_lfe_fir0_c: 913.2 1537.7 dca_lfe_fir0_neon: 286.8 451.9 dca_lfe_fir1_c: 848.7 1711.5 dca_lfe_fir1_neon: 387.1 506.4
* 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.
* 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>
* 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 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>
* 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