Commit graph

33 commits

Author SHA1 Message Date
Jean-Marc Valin
278389defe Automatic bandwidth decisions get more conservative as rate increases.
This should prevent errors in the bandwidth detection from affecting quality
when we have enough bits to be close to transparent.
2013-05-17 02:03:33 -04:00
Jean-Marc Valin
6862b44e7d Slight simplification of the bandwidth detection code
New code is especially easier to justify
2013-05-13 22:35:09 -04:00
Jean-Marc Valin
a8783a15b4 Converts the analysis to ALLOC() 2013-04-15 15:49:40 -04:00
Jean-Marc Valin
c37834b27e Fixes a minor bug found by valgrind in the bandwidth detector
The energy calculation from the packed FFTs ended up reading out-of-bound
memory for frequency zero. The bug was exposed by c5e04e4.
2013-04-15 02:53:09 -04:00
Jean-Marc Valin
c5e04e4aa4 Makes bandwidth detection less aggressive.
The original code was causing parts of a sine sweep to be completely dropped
due to the 300 Hz margin and the hysteresis. Also, fixes scaling for the
analysis downmix when the input is 16-bit PCM.
2013-03-12 11:24:53 -04:00
Robert Meakins
097fd4b111 Fixes C90 issues for obsolete compilers
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2013-03-11 13:39:17 -04:00
Jean-Marc Valin
73142b100a Makes the speech/music probability estimation mode conservative
This is done using an adaptive beta and an estimate of the speech
and music detection confidence
2013-02-28 15:30:51 -05:00
Jean-Marc Valin
742aac1056 Adds silence probability to speech/music detector
Avoids biasing the decision when it's all silence/noise.
2013-02-22 16:44:56 -05:00
Jean-Marc Valin
51f4a32ec2 Adds support for delayed decision
Variable duration option renamed to OPUS_SET_EXPERT_FRAME_DURATION,
with new API.
Also moves up the analysis to avoid having to do int->float conversion
on large buffers.
2013-02-20 04:08:34 -05:00
Jean-Marc Valin
48ac122141 Makes analysis usable for all frame sizes 2013-02-10 00:15:49 -05:00
Jean-Marc Valin
7ebacf430a Moves analysis to the beginning of opus_encode() 2013-02-10 00:05:46 -05:00
Jean-Marc Valin
d683c76b88 Fixes MSVC warnings for double->float and float->int conversion 2012-12-21 16:17:38 -05:00
Jean-Marc Valin
7509fdb813 New bandwidth detection code
Can now work up to full-band and uses lsb_depth to fix the noise issue.
2012-12-21 11:51:45 -05:00
Joshua Bowman
3b60e81d79 Fix the MSVC build.
Updates the project files to include the new encoder source files.
Use OPUS_RESTRICT and include config.h to set the proper defines
for build under MSVC.
2012-10-23 12:20:32 -07:00
Jean-Marc Valin
b2e19ecd0c copysignf() was C99-only 2012-10-09 19:13:04 -04:00
Jean-Marc Valin
0e490591b7 Gets rid of unused boost analysis code that never worked anyway.
Also removes the -exp_analysis suffix from opus_get_version_string()
and fixes a "ISO C90 forbids mixed declarations and code" warning.
2012-10-09 13:51:44 -04:00
Jean-Marc Valin
317ffc203e Tuning the speech/music probability model 2012-10-09 02:12:02 -04:00
Jean-Marc Valin
027ff070f0 Shrinks tansig table, makes data static const 2012-09-14 15:49:18 -04:00
Jean-Marc Valin
c5880fe48b Builds the analysis files more cleanly than #including C files 2012-07-13 14:50:37 -04:00
Jean-Marc Valin
b15b30ce6d Speeds up analysis by getting rid of calls to atan2() and cos()
atan2() is replaced by Monty's approximation.
2012-07-13 14:50:36 -04:00
Jean-Marc Valin
0892c169c6 Tonality and pitch tuning
Tuned the tonality estimator to trigger on signals where only part of the
spectrum is tonal. Also tuned the pitch detector not to be confused
by short-term correlation.
2012-07-13 14:50:36 -04:00
Jean-Marc Valin
2a9fdbc93d Transient/VBR tuning, give more bits to frames where pitch changes 2012-07-13 14:50:35 -04:00
Jean-Marc Valin
971b055090 New transient code, weighted tonality 2012-07-13 14:50:35 -04:00
Jean-Marc Valin
70d90d115d VBR tuning 2012-07-13 14:50:35 -04:00
Jean-Marc Valin
a20545781e Adds automatic bandwidth detection
Haven't tested it much and not sure not to use it without risk
for high-quality streams that may change bandwidth
2012-07-13 14:50:35 -04:00
Jean-Marc Valin
7609b67e6e Adds low-energy feature, training with noise 2012-07-13 14:50:35 -04:00
Jean-Marc Valin
747c817d96 Adds MFCC standard deviation features 2012-07-13 14:50:35 -04:00
Jean-Marc Valin
cd213ea19c Down to 17 features with same error rate 2012-07-13 14:50:34 -04:00
Jean-Marc Valin
ac3ac4a30c Adds cepstral mean subtraction (CMS) to analysis 2012-07-13 14:50:34 -04:00
Jean-Marc Valin
9987a3b574 Speech/music discrimination (not used for anything yet)
Also, reducing the VBR rate on panned mono
2012-07-13 14:50:34 -04:00
Jean-Marc Valin
73eb363e2c Cleanup, slightly changed analysis band layout, MFCC-like features 2012-07-13 14:50:34 -04:00
Jean-Marc Valin
e9c353a09b Cleans up the most ugly parts of the analysis code
Should be mostly usable now.
2012-07-13 14:50:34 -04:00
Jean-Marc Valin
1a2e7650f9 Adds an analysis function to control VBR
Conflicts:

	src/opus_encoder.c
2012-07-13 14:50:34 -04:00