Commit graph

94 commits

Author SHA1 Message Date
Gregory Maxwell
a85577d345 Rename version flag to exp_wip5 to exp_analysis. 2012-07-13 14:50:36 -04:00
Gregory Maxwell
7d99c2ff00 Add exp_wip5 tag to version string. 2012-07-13 14:50:36 -04:00
Jean-Marc Valin
9265e28370 Reverts the transient_analysis() changes from 4e8b9905
This was found to cause a quality regression (e.g. in the velvet sample)
2012-07-13 14:50:36 -04:00
Jean-Marc Valin
19ce448bf8 Fixes issues when downmixing to mono or when encoding below fullband 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
ac2e623d25 Converting most of the new code to fixed-point (not complete yet) 2012-07-13 14:50:36 -04:00
Jean-Marc Valin
db13c3890f Fixes some issues discovered with a log sweep
- New DC rejection filter that avoids numerical issues
- Higher cap on HF dynalloc
- Proper filter memory for transient detector
- Prevents transient detector from detecting low-freq tones as transients
2012-07-13 14:50:36 -04:00
Jean-Marc Valin
37df5f1df6 Tuning the dynalloc adjustments and checking for LF transients 2012-07-13 14:50:36 -04:00
Jean-Marc Valin
0869829f34 Adds a 3 Hz high-pass filter and boost allocation on leakage
Fixes two leakage problems on the wood blocks sample
- Removes DC which causes leakage with no masking
- Detect leakage by comparing short-MDCT energy to long-MDCT energy
  and boost allocation for bands with leakage
2012-07-13 14:50:35 -04:00
Jean-Marc Valin
96d7a07942 Dynalloc based on a bands that stand out of the "noise floor" 2012-07-13 14:50:35 -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
bb7b4f4e5e Continuous trim calculations, tapset/spread now use new 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
Jean-Marc Valin
9cf62baafc Implements a better transient metric for VBR 2012-07-13 14:50:34 -04:00
Jean-Marc Valin
27aea5c902 Using a "pure L1" metric for tf analysis 2012-07-13 14:50:34 -04:00
Jean-Marc Valin
d4165179b7 Unconstrained VBR no longer attempt to hit an average rate 2012-07-13 14:50:34 -04:00
Gregory Maxwell
de9b437eb2 Add -fixed to the version string & clarify that fixed disables float. 2012-06-11 19:19:55 -04:00
Jean-Marc Valin
66ac10210c Fixes some cases where MIN/MAX macros result in duplicated function calls
Also enforces an upper bound of 510 kb/s even for frames that are
smaller than 20 ms. This reduces waste for high bitrate VBR.
2012-05-30 14:04:51 -04:00
Jean-Marc Valin
14d63d1879 Fixes the stereo_analysis() fixed-point overflow issue properly 2012-05-16 17:50:17 -04:00
Jean-Marc Valin
1a9e8539d3 Fixes two fixed-point overflow issues
One in SILK, one in CELT, none of them causing real harm in practice it seems
2012-05-10 12:36:46 -04:00
Jean-Marc Valin
c82cd0624a Changes all uses of SHR()/SHL() macros to SHR32()/SHL32() 2012-04-24 17:12:25 -04:00
Jean-Marc Valin
ab5a049705 Merge commit '390c89225d' 2012-04-24 13:39:22 -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
367c394866 Fixes several overflows in the CELT fixed-point
These were all mostly benign and would at worst result in (rare)
suboptimal encoder decisions rather than signal corruption.
2012-04-12 11:09:09 -04:00
Jean-Marc Valin
c0387ff237 More consistent types for 16-bit architectures 2012-03-05 19:19:59 -05:00
Jean-Marc Valin
fdb039badc Eliminates an unused parameter warning in anti_collapse() 2012-03-05 17:13:59 -05:00
Jean-Marc Valin
17c5966045 Last updates for draft -11
- Draft updates
- Updated code to produce and check test vectors
- Making sure that the test vectors pass at all rates as well as for mono and stereo
2012-02-17 16:18:08 -05:00
Jean-Marc Valin
66820f350d Tweaks the CELT fractional resampling delay to get perfect alignment
Also using the same int->float conversion functions for SILK as for CELT
and changed encoder implementation default to constrained VBR just to
be safe when VBR gets more aggressive.
2012-01-31 02:18:05 -05:00
Ralph Giles
120800f8fa Rename '_FOO' to avoid potentional collisions with reserved identifiers.
C reserves identifiers of the from _[A-Z]+ and we have a number of
those in the code. This patch renames the various function arguments,
MACROS and preprocessor symbols to avoid the reserved form.

It also removes the CHANNELS() macro altogether. This was a
minor optimization for TI DSP to force a mono-only build,
as were the associated local 'const' versions. Since stereo
support is manditory, it wasn't worth keeping.

Thanks to John Ridges for raising the issue, and Jean-Marc Valin
and Greg Maxwell for reviewing the changes.
2011-12-02 12:31:36 -05:00
Jean-Marc Valin
8298cbb7e2 Minor anti-collapse state fix
This fixes the tracking of the CELT anti-collapse energy. In some cases,
the energy for bands that weren't coded wasn't updated and could
come from old frames.
2011-11-08 00:43:23 -05:00
Jean-Marc Valin
64ae0a960b Silences a gcc warning 2011-10-29 17:28:51 -04:00
Ralph Giles
da025d5632 Convert tabs to spaces in the opus and celt code.
Also reformat some, but by no means all, of the opus
code for line length and three-character indents.
2011-10-26 20:24:49 -07:00
Jean-Marc Valin
3737862620 Using a noise-based PLC for the CELT layer in hybrid mode 2011-10-11 15:03:38 -04:00
Gregory Maxwell
fd17eabc28 Add some CUSTOM_MODES ifdefs in celt.c around code only used by
custom modes.
2011-10-04 13:33:53 -04:00
Jean-Marc Valin
2779df7ff6 Renaming the CELT plc.c file to celt_lpc.c to avoid MSVC conflicts with Skype's PLC.c 2011-10-04 13:31:54 -04:00
Gregory Maxwell
afc8d53b1b Cleans up some leaking opus_custom symbols in celt/ 2011-09-28 16:28:18 -04:00
Jean-Marc Valin
803ec8c6b4 Avoiding left shifts of negative values 2011-09-23 23:48:40 -04:00
Jean-Marc Valin
25f7f35555 Implements OPUS_GET_PITCH that queries the decoded pitch 2011-09-14 09:50:06 -07:00
Jean-Marc Valin
c37499090b renames the libcelt/ directory to celt/ 2011-09-13 18:21:18 -07:00
Renamed from libcelt/celt.c (Browse further)