Jean-Marc Valin
e69fc1995e
Hardening asserts for SILK float
2018-03-27 15:13:27 -04:00
Jean-Marc Valin
7e3352ef51
Converting some silk_assert()s into hardening celt_assert()s
...
Only converted the ones that are really sure (not signal-dependent)
and that shouldn't add much run-time complexity
2018-03-27 15:13:27 -04:00
Jean-Marc Valin
69bcb28d3d
Some missing checks
2018-03-27 15:13:27 -04:00
Jean-Marc Valin
3995a0c150
Adding multistream decoder validation
2018-03-27 15:13:26 -04:00
Jean-Marc Valin
a29504cca7
Asserting on some ctl() calls that should never fail
2018-03-27 15:13:26 -04:00
Jean-Marc Valin
bf1d4420c2
Adds Opus decoder state validation
2018-03-27 15:13:26 -04:00
Jean-Marc Valin
574d50cb57
Adding decoder state validation
2018-03-27 15:13:26 -04:00
Jean-Marc Valin
92ffce621d
Fixing no-redundancy CELT->SILK and CELT->hybrid transitions
...
We make sure the CELT PLC we do in the transition uses the same bandwidth
as the previous (CELT) packet and not the new bandwidth
2018-03-27 15:13:26 -04: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
Andrew Allen
9b092dd388
Support for Ambisonics.
...
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2018-03-21 13:59:30 -04:00
Jean-Marc Valin
a4b5282f94
Using a first-order filter for DC rejection
...
A second-order DC rejection filter is uselsss unless we have complex
poles. However, complex poles means we have to compute the filter as a
single pass (rather than two casdaded first-order filters), which has
numerical issues that would require a higher complexity to solve.
So rather than waste cycles with a second-order filter (with a longer
impulse response), we just go with a first-order filter.
2018-03-12 12:01:45 -04:00
Jean-Marc Valin
e1c0770a49
Don't enable -fstack-protector-strong on Windows for now
...
It adds a libssp-0.dll dependency and prevents static linking
2018-03-02 15:08:21 -05:00
Jean-Marc Valin
610c14ce80
Adding -D_FORTIFY_SOURCE=2 when possible
2018-02-22 17:18:57 -05:00
Gustaf Ullberg
cea38f1c8c
Fixed off-by-one issue in Silk DTX
...
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2018-02-22 16:33:05 -05:00
Jean-Marc Valin
76d966f436
Enable -fstack-protector-strong by default on x86
...
The size overhead seems to be about 1% and the speed overhead is
"in the noise" (<2%).
The automake code is copied from opus-tools
2018-02-22 15:51:25 -05:00
Jean-Marc Valin
e3e1f89029
Fix comment to take into account previous commit
2018-02-21 03:15:52 -05:00
Jean-Marc Valin
59b1a521f4
Increasing the CELT bit allocation slightly for stereo hybrid
...
Fixes a "regression" from 1.2 to 1.3-beta that was especially noticeable
on a Korean speech sample. (it wasn't a real regression since 1.2 only
worked because it was using CELT)
2018-02-21 01:39:40 -05:00
Jean-Marc Valin
475fa4a98c
Fix divide-by-zeros in opus_demo stats code
2018-02-20 02:07:18 -05:00
Jean-Marc Valin
4b6af2da93
Fixes integer overflow in SILK VAD for 10-ms frames
...
Reported by Chandrakala Madhira on the mailing list
2018-02-18 02:17:07 -05:00
Jean-Marc Valin
4503261d0f
Forgot one RFC8251 behaviour to disable with --disable-rfc8251
...
Reported by daddesio in #opus
2018-02-18 02:15:49 -05:00
Jean-Marc Valin
cdcb2f7d2b
Disabling weak transients and 5ms resolution on voiced frames
2018-02-15 14:58:53 -05:00
Jean-Marc Valin
e04e86e0e7
Add a simple masking model to the spreading decision
...
This improves cases where a whole region is dominated by a handful of tones
2018-02-13 14:11:07 -05:00
Jean-Marc Valin
3b90ff8a33
Making sure importance[] is initialized even when we don't use dynalloc
2018-02-13 14:09:40 -05:00
Jean-Marc Valin
5edcfaf6b1
oops
2018-02-13 13:39:06 -05:00
Jean-Marc Valin
3e3a2ff127
Improve TF analysis RDO to take into account how important each band is
...
Also adds the error terms for band 0 that were previously omitted
2018-02-13 13:14:19 -05:00
Jean-Marc Valin
8299edfc0c
Scaling back the pitch filter when most of the energy is above 3.2 kHz
...
That corresponds to the fundamental for the shortest pitch period allowed
2018-01-26 15:52:20 -05:00
Jean-Marc Valin
693421ea23
Fixes NaN issues in compute_stereo_width()
2017-12-31 15:29:28 -05:00
Jean-Marc Valin
ff6532c3be
Making opus-uninstalled.pc use the .la instead of the .a
...
This makes it possible to link dynamically with an uninstalled libopus.
It does require the executable to use libtool however.
2017-12-19 15:17:10 -05:00
Andrew Allen
058e8177cb
Decouple OpusProjection* API from static matrices.
...
Change-Id: I3db285875b6b5548decc436be00096b97be1be3c
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-12-07 18:04:37 -05:00
Andrew Allen
cae4445fb7
Ensure mapping matrix size is always valid.
...
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-12-07 18:04:19 -05:00
Andrew Allen
65f11d326d
Fix memory issues in Projection API.
...
Modified by Jean-Marc Valin
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-12-07 13:04:19 -05:00
Jean-Marc Valin
eee6898242
fix float constants
2017-11-16 17:21:03 -05:00
Kári Tristan Helgason
46560534fc
Define integer types from stdint.h where it's available
...
This fixes issues when using neon intrinsics on 64-bit
systems.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-11-16 16:16:33 -05:00
Jean-Marc Valin
ab7ab106b2
Tuning decision thresholds for low-bitrate music
2017-11-16 14:45:03 -05:00
Andrew Allen
ff83843939
Fix matrix export via CTL func.
...
Ensure matrix is properly exported from
projection encoder.
Change-Id: I5ede77e4f4d0dc82074e2230780777af542a416e
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-11-10 14:17:22 -05:00
Jean-Marc Valin
ff98202e0a
Retrained speech/music RNN
...
Larger network, using 8-bit weights
2017-11-09 22:45:32 -05:00
Jean-Marc Valin
877d3d2cef
Add missing include to the list
2017-11-07 20:03:10 -05:00
Andrew Allen
f643c03fba
Support for Channel Mapping 253
...
OpusProjection* classes
MixingMatrix class
Projection tests
Change-Id: I98644466abf4ffd36e48bdecad1204d69e1539b9
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-11-07 17:44:36 -05:00
Roman Kalashnikov
e12df85a62
Fix unnecessary assignment.
...
Fixes a warning from PVS-Studio. This was a cut-and-paste error
from the stanza above and had no effect.
Signed-off-by: Ralph Giles <giles@thaumas.net>
2017-10-30 13:44:07 -07:00
Jean-Marc Valin
d8b1fd4ad0
Enable RFC 8251 changes by default
2017-10-29 01:01:35 -04:00
Ralph Giles
9f7e7c8ce0
Fix configure output formatting.
...
Put the colon ':' before the continuation dots like all the
other entries.
2017-10-23 12:50:14 -07:00
Jean-Marc Valin
43dfdc08ba
Fix entropy coder doc
...
Addresses issue https://github.com/xiph/opus/issues/54
2017-10-08 03:26:30 -04:00
Jean-Marc Valin
2da3721b16
Simplifying celt_fir5() since x==y and mem[]={0}
...
Addresses issue https://github.com/xiph/opus/issues/58
2017-10-08 03:21:38 -04:00
Jean-Marc Valin
82e6cf79c1
Fix #undef of constant
...
Reported in https://github.com/xiph/opus/issues/55
2017-10-08 03:09:58 -04:00
Jean-Marc Valin
072d133f78
Fixes CELT PLC
...
The regression was introduced in 783ad76766
by changes to celt_fir() that make it no longer in-place.
2017-10-06 18:24:57 -04:00
Jean-Marc Valin
b30f45b9a8
Fixing (hopefully) bandwidth detection for 24 kHz analysis
...
The masking term was previously completely broken (even in 1.1). The
bandwidth detection relies mostly on the noise floor and can only use
masking to cut one extra band. The 12-24 kHz energy is now normalized properly
but uses a higher noise floor due to the leakage in the resampler. Bandwidth
detection is still mostly useless at identifying SWB speech (it usually says
FB).
2017-10-06 16:45:41 -04:00
Jean-Marc Valin
251fc07640
float constants
2017-10-05 20:07:29 -04:00
Jean-Marc Valin
af93fbd55f
Add RNN for VAD and speech/music classification
...
Based on two dense layers with a GRU layer in the middle
2017-10-05 17:40:27 -04:00
Jean-Marc Valin
f3cff05eeb
Better rate allocation for stereo SILK in hybrid mode
...
SILK was being allocated too few bits for stereo hybrid, often resulting
in forced narrowing of the width. We now allocate more bits to SILK
and reduce the threshold for narrowing. This improves quality enough that
the bitrate threshold for switching to SILK can be increased to 44 kb/s.
2017-09-28 16:37:39 -04:00
Jean-Marc Valin
95c48711f6
update draft version -10
2017-09-19 14:29:54 -04:00