Commit graph

38 commits

Author SHA1 Message Date
Jean-Marc Valin
2e6876c07a Using SSAT in SIG2WORD16() on ARMv6 2014-01-22 19:22:05 -05:00
Jean-Marc Valin
9134e96cb2 Fixes SMALL_FOOTPRINT for float 2014-01-07 17:50:46 -05:00
Jean-Marc Valin
e17ca25617 Don't allocate pulses on the stack when calling the SILK PLC.
Also minor C89 fix for the previous commit
2014-01-07 15:27:02 -05:00
Jean-Marc Valin
b63e7110cb Moves CELT PLC pitch search to a separate function to reduce peak stack 2014-01-07 15:02:43 -05:00
Jean-Marc Valin
5f807c176f Adds SMALL_FOOTPRINT hack to the CELT PLC too 2014-01-07 04:48:42 -05:00
Jean-Marc Valin
9d1b6fef2a Moves deemphasis() call out of celt_decode_lost() to reduce peak stack 2014-01-07 04:32:41 -05:00
Jean-Marc Valin
ad8371d172 Cleaning up leftovers of "freq" in celt_decode_with_ec() 2014-01-06 17:45:57 -05:00
Jean-Marc Valin
4d07b1357e Reduces the decoder stack use by removing the pcm_silk buffer in fixed-point
We only keep when concealing less than 10ms with SILK.
2014-01-06 17:43:20 -05:00
Jean-Marc Valin
14ca4ed682 Moves the remains of compute_inv_mdcts() to celt_synthesis() 2014-01-06 09:31:09 -05:00
Jean-Marc Valin
32454dcadc Hack that makes the SMALL_FOOTPRINT CELT decoder use only 4.25 kB of stack. 2014-01-06 09:11:52 -05:00
Jean-Marc Valin
bdc7b93358 Reduces decoder stack usage by only storing one channel of denormalized MDCT 2014-01-06 08:58:38 -05:00
Jean-Marc Valin
4a6744a446 Some cleaning up of the synthesis code. 2014-01-05 21:40:02 -05:00
Jean-Marc Valin
e1f846208e Minor cleanup -- nothing to see here 2013-12-29 18:45:49 -05:00
Jean-Marc Valin
91f8010108 Removing indirections 2013-12-10 22:09:33 -05:00
Jean-Marc Valin
d5553e8aca Using OPUS_COPY()/OPUS_CLEAR() in the decoder too 2013-12-10 02:32:26 -05:00
Jean-Marc Valin
96408b6295 Fixes Opus-custom preemphasis
Also adds denorm avoidance for non-48 kHz rates
2013-12-02 20:02:37 -05:00
Timothy B. Terriberry
39386e0b85 Adds Neon assembly for correlation/convolution
Optimizing celt_pitch_xcorr()/xcorr_kernel() which also speeds up
FIRs, IIRs and auto-correlations

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2013-11-18 13:41:17 -05:00
Gregory Maxwell
60429d366f Avoid a bogus uninitialized warning and simplify some code. 2013-10-28 12:55:41 -07:00
Gregory Maxwell
7830cf1bd2 Replace "inline" with OPUS_INLINE.
Newer versions of MSVC are unhappy with the strategy of the build
 environment redefining "inline" (even though they don't support the
 actual keyword). Instead we define OPUS_INLINE to the right thing
 in opus_defines.h.

This is the same approach we use for restrict.
2013-10-28 10:18:54 -07:00
Jean-Marc Valin
260474fb81 Fixes a denorm problem when the input goes silent after active audio 2013-07-12 01:22:09 -04:00
Jean-Marc Valin
ee2506b2c7 Moves log2Amp inside denormalise_bands() and get rid of bandE[]
Also get rid of the MSE measurement code which is outdated and no longer useful
2013-06-16 20:24:52 -04:00
Jean-Marc Valin
3afc6ffff0 Don't call denormalise_bands() on silence 2013-06-16 15:40:10 -04:00
Aurélien Zanelli
cd4c8249bc Add run-time CPU detection and support for ARM architecture
Run-time CPU detection (RTCD) is enabled by default if target platform support
it.
It can be disable at compile time with --disable-rtcd option.

Add RTCD support for ARM architecture.

Thanks to Timothy B. Terriberry for help and code review

Signed-off-by: Timothy B. Terriberry <tterribe@xiph.org>
2013-06-04 16:23:22 -07:00
Jean-Marc Valin
2fe4700f76 Skip down-sampling in deemphasis() when not needed. 2013-05-26 18:54:25 -04:00
Jean-Marc Valin
efdd314305 Fixes fixed-point PLC issue reported in trac ticket #1954
A fixed shift factor was insufficient to properly estimate the decay
factor, resulting in extreme attenuation of the PLC excitation.
2013-05-18 02:18:42 -04:00
Timothy B. Terriberry
c152d602aa Use dynamic stack allocation in the SILK encoder.
This makes all remaining large stack allocations use the vararray
 macros.
This continues the work of 6f2d9f50 to allow compiling with
 NONTHREADSAFE_PSEUDOSTACK to move the memory for large buffers
 off the stack for devices where it is very limited.

It also does this for some additional large buffers used by the
 PLC in the decoder.
2013-05-08 10:37:17 -07:00
Jean-Marc Valin
ebdfbfb743 Fixes stupid preprocessor-related bug introduced in e368e6209.
Would cause the preemphasis and deemphasis to fail, but only with
custom modes enabled.
2013-01-09 11:13:00 -05:00
Jean-Marc Valin
e368e62092 Remove condition in pre/de-emphasis when not building with custom modes
Should slightly improve coverage and reduce code size
2013-01-03 14:28:28 -05:00
Jean-Marc Valin
5fb50adb7a skip bands with no energy 2012-12-21 11:52:03 -05:00
Timothy B. Terriberry
8eb9bb7939 Numerous PLC cleanups.
This should reduce computation, reduce stack usage, and be
 substantially easier to read, but should not change behavior.
It's not quite bit-exact because I collapsed the application of the
 decay and the fading into a single pass to save one multiply per
 sample, but the difference signal is silent.

It also changes the comments into complete sentences.
2012-12-07 14:07:22 -08:00
Jean-Marc Valin
027a202151 More comments in the PLC 2012-12-01 22:01:09 -05:00
Nils Wallménius
e0884feb36 Window both sides of overlap when adding them.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2012-12-01 15:54:04 -05:00
Jean-Marc Valin
0094c88105 Better comments in the PLC 2012-11-29 18:00:02 -05:00
Jean-Marc Valin
e0491e7d18 Fixes many many issues in the CELT PLC
Previous code was so broken that it's`not worth listing the changes.
Aside from quality, one obvious improvement is a 3.75k reduction in stack size
2012-11-29 16:51:49 -05:00
Ralph Giles
83f8012ca5 Remove obsolete #ifdef OPUS_BUILD.
We always define OPUS_BUILD, so this code has no effect.
Likewise there is no reason for it to be conditional.
According to Jean-Marc it's left over from when we had
an alternate CELT_BUILD define.
2012-11-29 10:36:12 -08:00
Nils Wallménius
4357e9390d Follow up to commit 8b906c102b
Remove two now redundant zeroing loops

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2012-11-12 21:23:20 -05:00
Jean-Marc Valin
1ecb7eaeaf Fixes issues with multiple files defining CELT_C 2012-11-08 11:25:20 -05:00
Jean-Marc Valin
6906210cb0 Splits out the CELT encoder and decoder 2012-11-08 09:42:27 -05:00