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