summaryrefslogtreecommitdiff
path: root/src/libFLAC/include/private/lpc.h
Commit message (Collapse)AuthorAgeFilesLines
* Add Aarch64 Supportcoreyjjames2020-01-051-0/+6
|
* Add VSX optimised versions of autocorrelation loopsAnton Blanchard2018-08-201-0/+14
| | | | | | | | Add a POWER8 and POWER9 version of the autocorrelation functions. flac --best is about 3.3x faster on POWER9 with this patch. Signed-off-by: Anton Blanchard <anton@ozlabs.org>
* SIMD: remove outdated SSE2 codeErik de Castro Lopo2017-02-211-3/+0
| | | | | | | | | Removes FLAC__lpc_restore_signal_16_intrin_sse2() which was faster than than C code, but not faster than MMX-accelerated ASM functions. It's also slower than the new SSE4.1 functions that were added by the previous patch. Patch-from: lvqcl <lvqcl.mail@gmail.com>
* SIMD: Accelerate decoding of 16 bit FLACErik de Castro Lopo2017-02-191-0/+2
| | | | | | | | | | | | This patch removes FLAC__lpc_restore_signal_16_intrin_sse2(). It's faster than C code, but not faster than MMX-accelerated ASM functions. It's also slower than the new SSE4.1 functions that were added by the previous patch. So this function wasn't very useful before, and now it's even less useful. I don't see a reason to keep it. Patch-from: lvqcl <lvqcl.mail@gmail.com>
* Purge usage of `unsigned` typeErik de Castro Lopo2017-01-141-38/+38
| | | | | | | As pointed out by Ozkan Sezer, on some platforms `int32_t` is actually a typedef for `long` so `unsigned` cannot be used interchangably with `FLAC__uint32`. Fix is to switch from `unsigned` to explicit sized ISO C types defined in <stdint.h>.
* Fix use of FLAC__HAS_X86INTRIN configure variableErik de Castro Lopo2016-06-201-3/+3
|
* Retire FLAC__float and FLAC__double typesThomas Zander2016-02-091-5/+5
| | | | | | | | | | | | Usage of internal aliases for float and double do not provide substantial value. For integer-only libs, the macro FLAC__INTEGER_ONLY_LIBRARY is used in the appropriate places already. Also, adapt copyright messages to include 2016. Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com> Closes: https://github.com/xiph/flac/pull/10
* Improve encoding speed on older Intel CPUs.Erik de Castro Lopo2014-12-041-8/+12
| | | | | | | | | | | | The commit http://git.xiph.org/?p=flac.git;a=commit;h=e9d805dd4374 changed the that calculate autocorrelation. However, the new code worked slightly (about 4%) slower on Core 2, but with the new presets the speed decrease can reach ~25%. This patch enables both old and new functions and chooses between them at runtime. Patch-from: lvqcl <lvqcl.mail@gmail.com>
* Update copyright years to include 2014.Erik de Castro Lopo2014-11-251-1/+1
|
* Add AVX2 CPU support stream encoder.Erik de Castro Lopo2014-10-041-0/+5
| | | | Patch-from: lvqcl <lvqcl.mail@gmail.com>
* Remove support for AMD's 3Dnow.Erik de Castro Lopo2014-10-041-1/+0
| | | | | | AMD stopped release new chips withe 3DNow in 2010. Patch-from: lvqcl <lvqcl.mail@gmail.com>
* lpc_intrin* : Remove unused code.Erik de Castro Lopo2014-09-211-1/+0
| | | | | | | Which in turn simplifies FLAC__lpc_restore_signal_16_intrin_sse2() function. Patch-from: lvqcl <lvqcl.mail@gmail.com>
* Remove old/broken PPC/Altivec code.Erik de Castro Lopo2014-09-171-4/+1
| | | | | | | | | | | | | * Removes FLAC__lpc_restore_signal_asm_ppc_altivec_16* from lpc.h and stream_decoder.c * Removes PPC-specific code from cpu.c and cpu.h * Removes PPC stuff from libFLAC/Makefile.lite and build/*.mk * Removes as/gas/PPC-specific stuff from configure.ac and libFLAC/Makefile.am* * Removes libFLAC/ppc folder and remove "src/libFLAC/ppc*/Makefile" lines from configure.ac Patch-from: lvqcl <lvqcl.mail@gmail.com>
* libFLAC : SSE optimisations.Erik de Castro Lopo2014-07-281-0/+1
| | | | | | | | | | | | | | | | Add new function: FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse41() and rewrite function: FLAC__lpc_compute_residual_from_qlp_coefficients_16_intrin_sse2() Testing shows noticeable speed increase on Intel Core i3/5/7 (up to 30% for -8 mode), AMD Athlon64, Phenom, Bulldozer/Piledriver, but no increase or even very small speed decrease (~2% for -8 mode) on Intel Core2. Patch-from: lvqcl <lvqcl.mail@gmail.com>
* Revert "Replace FLAC__CPU_X86_64 with FLaC__CPU_X86_64."Erik de Castro Lopo2014-06-151-3/+3
| | | | | | | This reverts commit 151739921b74fbf31420358a5fbeb094efa017ed. This patch only when part way to replace all FLAC_* with FLaC_* and its really not worth going all the way.
* Replace FLAC__CPU_X86_64 with FLaC__CPU_X86_64.Erik de Castro Lopo2014-06-011-3/+3
| | | | | | | Previous autorconf versions had problems with variable begining witj 'FLAC_' (autoconf uses 'AC_'). Reported-by: lvqcl <lvqcl.mail@gmail.com>
* Add sse2 intrinscics code for lpc_restore_signal_...()Erik de Castro Lopo2014-02-021-0/+4
| | | | | | | The new functions are analogous to FLAC__lpc_restore_signal_asm_ia32_mmx. FLAC uses them for x86-64 arch and also for ia32 if NASM is not available. Patch-from: lvqcl <lvqcl.mail@gmail.com>
* Add FLAC__SSE_SUPPORTED and FLAC__SSE2_SUPPORTED flags.Erik de Castro Lopo2014-01-301-3/+8
| | | | | | | * Allow compiling using GCC GCC w/o SSE support. * Allow SSE4.1 intrinsic functions to be enabled. Patch-from: lvqcl <lvqcl.mail@gmail.com>
* libFLAC : Add asm versions for two _wide() functions.Erik de Castro Lopo2014-01-071-0/+2
| | | | | | | | | GCC generates slow ia32 code for FLAC__lpc_restore_signal_wide() and FLAC__lpc_compute_residual_from_qlp_coefficients_wide() so 24-bit encoding/decoding is slower for GCC compile than for MSVS or ICC compile. This patch adds ia32 asm versions of these functions. Patch-from: lvqcl <lvqcl.mail@gmail.com>
* Improve x86 instrinsic implementation.Erik de Castro Lopo2013-10-041-1/+10
| | | | | | | | | | | | | | * Splits lpc_x86intrin.c to lpc_intrin_sse.c and lpc_intrin_sse2.c * Add FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse2() function to lpc_intrin_sse2.c * Add lpc_intrin_sse41.c with two ..._wide_intrin_sse41() functions (useful for 24-bit en-/decoding) * Add precompute_partition_info_sums_intrin_sse2() / ...ssse3() and disables precompute_partition_info_sums_32bit_asm_ia32_(). SSE2 version uses 4 SSE2 instructions instead of 1 SSSE3 instruction PABSD so it is slightly slower. Patch-from: lvqcl <lvqcl.mail@gmail.com>
* Fix/re-enable SSE/SSE2 lpc optimisations.Erik de Castro Lopo2013-09-171-6/+2
|
* Adds SSE-accelerated lpc functions.Erik de Castro Lopo2013-09-151-0/+13
| | | | | | | | | | | New functions are: FLAC__lpc_compute_autocorrelation_intrin_sse_lag_4() FLAC__lpc_compute_autocorrelation_intrin_sse_lag_8() FLAC__lpc_compute_autocorrelation_intrin_sse_lag_12() FLAC__lpc_compute_autocorrelation_intrin_sse_lag_16() FLAC__lpc_compute_residual_from_qlp_coefficients_16_intrin_sse2() Patch-from: lvqcl <lvqcl.mail@gmail.com>
* Add ASM function FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_16.Erik de Castro Lopo2013-08-311-0/+1
| | | | | | | | | | For the 32 bit x86 ASM functions there were already versions of this function for lags (N = 4, 8, 12). They require lpc_order less than N. The best compression preset (flac -8) uses lpc_order up to 12; it means that during encoding FLAC also uses unaccelerated C function. Patch-from: lvqcl <lvqcl.mail@gmail.com> Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
* Set version to 1.3.0 and update coyprights throughout.Erik de Castro Lopo2013-05-261-1/+2
|
* add 2009 copyrightJosh Coalson2009-01-071-1/+1
|
* update copyright for 2008Josh Coalson2008-02-281-1/+1
|
* window the integer_signal instead of real_signal, remove unused real_signal ↵Josh Coalson2007-04-041-1/+1
| | | | from datapath
* minor commentsJosh Coalson2007-02-071-1/+1
|
* add 2007 copyrightJosh Coalson2007-02-021-1/+1
|
* quick fix for SF#1601812 where an error of exactly 0 (very rare) in ↵Josh Coalson2006-11-271-1/+1
| | | | FLAC__lpc_compute_lp_coefficients() could cause an infinite loop later in FLAC__lpc_quantize_coefficients()
* minor commentsJosh Coalson2006-09-161-1/+1
|
* minor commentsJosh Coalson2006-06-121-1/+4
|
* fix a calcuation bug in FLAC__lpc_compute_best_order()Josh Coalson2006-04-281-2/+3
|
* add 2206 to copyright noticeJosh Coalson2006-04-251-1/+1
|
* add support for specifying which apodization functions to use to window data ↵Josh Coalson2006-04-251-0/+13
| | | | before lpc analysis
* fix ANSI C violation w.r.t. const arraysJosh Coalson2005-01-261-4/+4
|
* add 2005 to copyright noticesJosh Coalson2005-01-251-1/+1
|
* finished integerized flavor of library; sections with floating point are ↵Josh Coalson2004-11-091-0/+8
| | | | either #ifdef'd out or written in fixed-point
* first pass at making an integer-only flavor of the libraries. move ↵Josh Coalson2004-10-201-6/+7
| | | | FLAC__real out of ordinals.h to src/libFLAC/include/private/float.h, add FLAC__double and FLAC__float and use these everywhere instead of double and float, and don't typedef FLAC__real/float/double when building in integer-only mode. still need to provide integer substitutes in several places.
* fix #ifdef problems that existed when FLAC__NO_ASM is definedJosh Coalson2004-10-061-14/+14
|
* finish hooking up altivec asm routinesJosh Coalson2004-07-281-1/+4
|
* update copyright to 2004Josh Coalson2004-01-171-1/+1
|
* change license verbiage to Xiph'sJosh Coalson2003-01-311-12/+24
|
* Add 2003 to copyright noticeJosh Coalson2003-01-021-1/+1
|
* #include config.hJosh Coalson2002-12-041-2/+4
|
* add wide (64-bit) versions of the FIR filter and inverse filter, remove ↵Josh Coalson2002-10-041-2/+3
| | | | unused arg from quantizing routine
* update copyright date to include 2002Josh Coalson2002-01-261-1/+1
|
* add 3DNOW stuff from MiroslavJosh Coalson2001-07-161-0/+1
|
* use double instead of FLAC__real in some places internallyJosh Coalson2001-07-031-1/+1
|
* revamp the ordinal typesJosh Coalson2001-06-231-17/+17
|