Commit graph

29 commits

Author SHA1 Message Date
Mark Harris
196511de23
Fix build errors using Makefile.mips
Broken by earlier ARM optimizations.
2019-04-08 21:39:15 -07:00
Jean-Marc Valin
ef203135b4
Adding ENABLE_HARDENING
Enables "safes" assertions even with ENABLE_ASSERTIONS isn't set
2018-03-27 15:13:25 -04:00
Jean-Marc Valin
4507637ccc
Fixes unit tests that need arch-specific code
We now include the object files for those rather than attempt to
problems.
2017-05-25 19:30:59 -04:00
Mark Harris
d6d70371e8
Fix compiler warnings
- celt/modes.c:430:14: warning: cast from 'const unsigned char *' to
  'opus_int16 *' increases required alignment from 1 to 2 [-Wcast-align]
- 'C[0][1]' may be used uninitialized [-Wmaybe-uninitialized]
- Unused variable/parameter
- Value stored is never read
- MSVC warnings about "possible loss of data" due to type conversions
- MSVC warning C4146: unary minus operator applied to unsigned type
- silk/NLSF_del_dec_quant.c:137:20: warning: array subscript is above
  array bounds [-Warray-bounds] (gcc -O3 false positive)
- src/mlp_train.h:39:20: warning: function declaration isn't a prototype
  [-Wstrict-prototypes]
- Remove SMALL_FOOTPRINT code from SSE 4.1 FIR implementation, matching
  the C implementation.

The clang -Wcast-align warnings with SSE intrinsics are a known
clang issue: https://llvm.org/bugs/show_bug.cgi?id=20670
2017-02-26 19:10:45 -08:00
Jean-Marc Valin
18335e8e4d Removed a float operation that sneaked in in the fixed-point code 2016-08-15 19:50:45 -04:00
Jean-Marc Valin
b7c7653941 Speeding up PVQ search by allocating even more pulses in the projection. 2016-08-15 17:30:00 -04:00
Jean-Marc Valin
2ff6556f1f Making stereo_itheta() use the same atan2() approximation as tonality_analysis() 2016-08-11 11:05:51 -04:00
Jean-Marc Valin
76674feae2 SSE2 implementation of the PVQ search
We used the SSE reciprocal square root instruction to vectorize the serch rather
than compare one at a time with multiplies. Speeds up the entire encoder by 8-10%.
2016-08-09 23:22:27 -04:00
Jean-Marc Valin
e806d6a741 Making signx[] an int in alg_quant() and removes unnecessary sign copying
No measurable speed change.
2016-08-06 15:49:55 -04:00
Jean-Marc Valin
c7bbc3e31f Speeding up PVQ using unlikely() and moving first position out of the loop
Speeds up encoding by another ~1-2%
2016-08-06 15:09:39 -04:00
Jean-Marc Valin
09b5352928 Getting gcc to use cmovs rather than branches in alg_quant()
Speeds up CELT encoding by around 5% on x86
2016-08-06 00:06:48 -04:00
Jean-Marc Valin
9eee106214 cleanup: putting resynth flag in the context 2016-07-28 15:16:13 -04:00
Jean-Marc Valin
b66080a879 Fixes minor code quality issues in CELT
Reported by Durandal.
2016-06-20 12:11:05 -04:00
Rhishikesh Agashe
c9c2035355 Fixes compile problems for MIPS
Brings MIPS in sync with the ARM/SSE optimizations that added "arch" parameters.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2015-10-07 13:55:12 -04:00
xiangmingzhu
c95c9a048f Cisco optimization for x86 & fixed point
1. Only for fixed point on x86 platform (32bit and 64bit, uses SIMD
   intrinsics up to SSE4.2)
2. Use "configure --enable-fixed-point --enable-intrinsics" to enable
   optimization, default is disabled.
3. Official test cases are verified and passed.

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2014-10-03 21:16:00 -04:00
Rhishikesh Agashe
f133bac6f9 MIPS optimizations
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2014-06-19 04:04:51 -04:00
Jean-Marc Valin
c543ec1bd3 Speeding up extract_collapse_mask() slightly 2014-01-23 00:02:12 -05:00
Jean-Marc Valin
6218cba258 Making decode_pulses() compute the L2-norm on the fly 2014-01-21 15:17:01 -05:00
Jean-Marc Valin
29354ff6e0 Save more integer divisions on ARM when we know the operands are positive 2014-01-21 10:39:33 -05:00
Jean-Marc Valin
ed01a596dc Making exp_rotation1() use MAC16_16(), which saves a few cycles on ARM 2014-01-04 21:06:24 -05:00
Jean-Marc Valin
e0f26246b0 fixed-point: adds rounding to some shifts to eliminate bias
This reduces the peak decoding error by removing small (inaudible) spikes in
the error at the frame boundaries. These were due to the frequency-domain bias
ending up as a small pulse in the middle of the IMDCT overlap. None of this
was ever audible, but fixing it is still cleaner.
2013-12-14 11:07:13 -05:00
Jean-Marc Valin
5607d5d1c8 Annotating pointer arguments with OPUS_RESTRICT and const 2013-12-10 22:09:29 -05:00
Jean-Marc Valin
57cd849cf7 Defining celt_inner_prod() and using it instead of explicit loops.
Also adds an SSE-optimized celt_inner_prod().
2013-12-09 15:26:58 -05:00
Gregory Maxwell
de0b5324b6 Replace C99 restrict keyword with OPUS_RESTRICT.
We had previously advised people to -Drestrict on
non-C99 compilers, but this creates problems for
some of the MSVC headers. Instead this just
uses a macro and defines it sanely.
2012-07-18 12:12:35 -04:00
Jean-Marc Valin
cb05e7cd96 s/FOUNDATION/COPYRIGHT OWNER/ in CELT code and "glue code"
Also added 3rd clause to "master" COPYING file
2012-04-20 16:41:42 -04:00
Jean-Marc Valin
72273000ec Misc changes to address Robert Sparks' comments
See http://www.ietf.org/mail-archive/web/codec/current/msg02833.html
Still more changes to come
2012-04-20 10:26:08 -04:00
Koen Vos
43a0de4af1 Optimization of the CBR loop
Also some comment/warning fixes
2011-10-24 09:10:58 -04:00
Jean-Marc Valin
0da4f238e0 Avoiding more left shifts of negative values 2011-09-25 00:11:46 -04:00
Jean-Marc Valin
c37499090b renames the libcelt/ directory to celt/ 2011-09-13 18:21:18 -07:00
Renamed from libcelt/vq.c (Browse further)