Jean-Marc Valin [Fri, 14 Sep 2012 05:25:05 +0000 (01:25 -0400)]
Makes dynalloc more conservative for CBR and CVBR
Jean-Marc Valin [Thu, 13 Sep 2012 03:33:30 +0000 (23:33 -0400)]
Adds anslysis code for tf_select
For now, we only allow tf_select=1 on transients. This is just to be
on the safe side.
Jean-Marc Valin [Tue, 14 Aug 2012 04:37:47 +0000 (00:37 -0400)]
Fixes a silly bug where only the left channel was used for depth estimation
Result was that stereo files with silence on the left would result in an
extremely low bitrate
Jean-Marc Valin [Fri, 27 Jul 2012 18:42:54 +0000 (14:42 -0400)]
Enables the second dynalloc MDCT only at complexity 8
Also applies the compensation for tonality boost only when
the analysis is enabled.
Jean-Marc Valin [Fri, 27 Jul 2012 18:28:21 +0000 (14:28 -0400)]
Makes VBR rate variations less aggressive at low bit-rates and for CVBR
Jean-Marc Valin [Thu, 26 Jul 2012 01:15:19 +0000 (21:15 -0400)]
Smoother intensity stereo decision thresholds
We now have rates for each possible threshold. This also adds some
histeresis but it's not that useful for now because the effective rate
doesn't changes from frame to frame (unless one changes the target rate).
This change also has the side effect of lowering the intensity stereo
point for 64 kb/s to band 15 (instead of 16).
Jean-Marc Valin [Wed, 25 Jul 2012 05:35:17 +0000 (01:35 -0400)]
Adds some histeresis to the stereo saving
This prevents rate reduction due to channel correlation from increasing
by more than 0.25 bit/sample between two frames. This issue was observed
on r.flac where the frame following a transient would lose nearly
1 bit/sample
Jean-Marc Valin [Wed, 25 Jul 2012 05:32:29 +0000 (01:32 -0400)]
VBR tuning: increases transient and dynalloc boost
This only increases the average rate by about 1.5 kb/s, but it
restores the high quality of transients from 1.0. Also it
ensures that dynalloc can never starve other bands when used
aggressively.
Jean-Marc Valin [Mon, 23 Jul 2012 19:24:40 +0000 (15:24 -0400)]
Fixes issues with stereo saving and dynalloc
1) Stereo saving was being too aggressive because it only considered the LF
and because the savings were multiplied by coded_bins rather than by
just the number of "side bins" below the intensity threshold
2) In the case of bandlimited signals, dynalloc would allocate way too many
bits to the last non-zero band. We now explicitly check for the last
band with a meaningful signal.
These issues were really obvious when encoding the decoded test01.mp3
because of the strong inter-channel correlation and (especially) the 16 kHz
lowpass used by the mp3 encoder.
Gregory Maxwell [Sat, 14 Jul 2012 00:55:23 +0000 (20:55 -0400)]
OPUS_{GET,SET}_LSB_DEPTH for multichannel.
Jean-Marc Valin [Thu, 12 Jul 2012 01:13:36 +0000 (21:13 -0400)]
Fixes make dist
Jean-Marc Valin [Wed, 11 Jul 2012 06:54:47 +0000 (02:54 -0400)]
Implements OPUS_{GET,SET}_LSB_DEPTH
This is used to avoid dynalloc doing silly things on periodic LSB
patterns and to reduce the bitrate on near-silence.
Jean-Marc Valin [Thu, 5 Jul 2012 05:28:45 +0000 (01:28 -0400)]
Builds the analysis files more cleanly than #including C files
Jean-Marc Valin [Thu, 5 Jul 2012 07:49:13 +0000 (03:49 -0400)]
Gets rid of // comments
Jean-Marc Valin [Thu, 5 Jul 2012 01:43:37 +0000 (21:43 -0400)]
fixed-point (re-)conversion of the VBR code
Jean-Marc Valin [Wed, 4 Jul 2012 23:21:42 +0000 (19:21 -0400)]
Fixes a VBR bug with 2.5 ms frames
tf_estimate was being initialized to zero and then never set because
transient_analysis() wasn't being called. This could also have affected
other frame sizes at lower complexity.
Jean-Marc Valin [Wed, 4 Jul 2012 16:08:22 +0000 (12:08 -0400)]
Speeds up analysis by getting rid of calls to atan2() and cos()
atan2() is replaced by Monty's approximation.
Gregory Maxwell [Tue, 3 Jul 2012 22:24:31 +0000 (18:24 -0400)]
Rename version flag to exp_wip5 to exp_analysis.
Gregory Maxwell [Sun, 1 Jul 2012 22:22:15 +0000 (18:22 -0400)]
Add exp_wip5 tag to version string.
Jean-Marc Valin [Thu, 3 May 2012 17:06:09 +0000 (13:06 -0400)]
Reverts the transient_analysis() changes from
4e8b9905
This was found to cause a quality regression (e.g. in the velvet sample)
Jean-Marc Valin [Thu, 12 Jan 2012 09:08:46 +0000 (04:08 -0500)]
Fixes issues when downmixing to mono or when encoding below fullband
Jean-Marc Valin [Thu, 12 Jan 2012 08:44:49 +0000 (03:44 -0500)]
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.
Jean-Marc Valin [Thu, 29 Dec 2011 06:23:33 +0000 (01:23 -0500)]
Converting most of the new code to fixed-point (not complete yet)
Jean-Marc Valin [Fri, 23 Dec 2011 16:58:43 +0000 (11:58 -0500)]
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
Jean-Marc Valin [Wed, 21 Dec 2011 15:51:34 +0000 (10:51 -0500)]
Tuning the dynalloc adjustments and checking for LF transients
Jean-Marc Valin [Mon, 19 Dec 2011 03:12:42 +0000 (22:12 -0500)]
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
Jean-Marc Valin [Fri, 16 Dec 2011 04:01:46 +0000 (23:01 -0500)]
Dynalloc based on a bands that stand out of the "noise floor"
Jean-Marc Valin [Wed, 7 Dec 2011 22:39:40 +0000 (17:39 -0500)]
Transient/VBR tuning, give more bits to frames where pitch changes
Jean-Marc Valin [Fri, 2 Dec 2011 21:08:02 +0000 (16:08 -0500)]
New transient code, weighted tonality
Jean-Marc Valin [Mon, 28 Nov 2011 19:17:47 +0000 (14:17 -0500)]
VBR tuning
Jean-Marc Valin [Sat, 26 Nov 2011 04:07:46 +0000 (23:07 -0500)]
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
Jean-Marc Valin [Thu, 24 Nov 2011 03:24:14 +0000 (22:24 -0500)]
Better training set
Jean-Marc Valin [Wed, 23 Nov 2011 18:52:44 +0000 (13:52 -0500)]
Adds low-energy feature, training with noise
Jean-Marc Valin [Wed, 23 Nov 2011 07:43:15 +0000 (02:43 -0500)]
Better training
Jean-Marc Valin [Wed, 23 Nov 2011 03:44:56 +0000 (22:44 -0500)]
Adds MFCC standard deviation features
Jean-Marc Valin [Tue, 22 Nov 2011 02:57:10 +0000 (21:57 -0500)]
Down to 17 features with same error rate
Jean-Marc Valin [Mon, 21 Nov 2011 19:35:41 +0000 (14:35 -0500)]
Adds cepstral mean subtraction (CMS) to analysis
Jean-Marc Valin [Fri, 18 Nov 2011 16:10:18 +0000 (00:10 +0800)]
Continuous trim calculations, tapset/spread now use new analysis
Jean-Marc Valin [Thu, 17 Nov 2011 11:21:07 +0000 (19:21 +0800)]
Speech/music discrimination (not used for anything yet)
Also, reducing the VBR rate on panned mono
Jean-Marc Valin [Wed, 16 Nov 2011 02:47:15 +0000 (10:47 +0800)]
Cleanup, slightly changed analysis band layout, MFCC-like features
Jean-Marc Valin [Mon, 14 Nov 2011 09:58:29 +0000 (17:58 +0800)]
Cleans up the most ugly parts of the analysis code
Should be mostly usable now.
Jean-Marc Valin [Mon, 7 Nov 2011 04:27:16 +0000 (23:27 -0500)]
Adds an analysis function to control VBR
Conflicts:
src/opus_encoder.c
Jean-Marc Valin [Tue, 8 Nov 2011 05:02:25 +0000 (00:02 -0500)]
Implements a better transient metric for VBR
Jean-Marc Valin [Mon, 7 Nov 2011 20:32:11 +0000 (15:32 -0500)]
Using a "pure L1" metric for tf analysis
Jean-Marc Valin [Mon, 7 Nov 2011 19:58:20 +0000 (14:58 -0500)]
Unconstrained VBR no longer attempt to hit an average rate
Gian-Carlo Pascutto [Fri, 13 Jul 2012 08:04:59 +0000 (10:04 +0200)]
Fix MSVC Debug builds, set missing dependencies for tests.
Gian-Carlo Pascutto [Thu, 12 Jul 2012 19:40:37 +0000 (21:40 +0200)]
Make tests work on MSVC.
Add project files for Opus tests, fixup test source for Win32.
Gian-Carlo Pascutto [Thu, 12 Jul 2012 19:14:13 +0000 (21:14 +0200)]
Remove non-existent ReadMe.txt references.
Gian-Carlo Pascutto [Thu, 12 Jul 2012 19:12:31 +0000 (21:12 +0200)]
Add opus_demo target and project files.
Gian-Carlo Pascutto [Thu, 12 Jul 2012 18:23:56 +0000 (20:23 +0200)]
Make compiler settings consistent. Actually produce the libary, remove the opus_demo for now.
Gian-Carlo Pascutto [Thu, 12 Jul 2012 17:55:41 +0000 (19:55 +0200)]
Add missing multistream sources to MSVC project file.
Jean-Marc Valin [Wed, 11 Jul 2012 19:54:55 +0000 (15:54 -0400)]
RTP draft fix
This is what got submitted as version 01
Jean-Marc Valin [Wed, 11 Jul 2012 19:53:39 +0000 (15:53 -0400)]
Fixes a hybrid encoder bug on 24 kHz stereo input
Gregory Maxwell [Wed, 11 Jul 2012 06:33:55 +0000 (02:33 -0400)]
Make OPUS_SET_GAIN survive decode reset.
This is the less-surprising behavior and will hopefully
result in fewer corner case bugs (e.g. losing gain
after seeking). This commit also updates the documentation.
Gregory Maxwell [Wed, 11 Jul 2012 06:18:44 +0000 (02:18 -0400)]
test_opus_api: Fix valgrind expectations broken by last commit.
The last commit changed some of the multistream tests to use a
dual-mono setup instead of a single-stereo setup. Some of the
accompanying explicit valgrind checks were still setup to
look for stereo streams.
Gregory Maxwell [Wed, 11 Jul 2012 04:04:24 +0000 (00:04 -0400)]
Add OPUS_{GET|SET}_GAIN CTLs for adjusting output gain.
This CTL was requested by Nicolas George for FFmpeg.
Gregory Maxwell [Sat, 7 Jul 2012 06:29:56 +0000 (02:29 -0400)]
Make stack-protector check use AC_LINK_IFELSE.
Gregory Maxwell [Sat, 7 Jul 2012 05:53:06 +0000 (01:53 -0400)]
Avoid using win32 lrintf ASM on mingw even when config.h is broken.
Timothy B. Terriberry [Thu, 5 Jul 2012 21:26:02 +0000 (14:26 -0700)]
Typo fix.
Thanks to Ron Lee for pointing it out.
Timothy B. Terriberry [Thu, 5 Jul 2012 15:34:15 +0000 (08:34 -0700)]
Initial revision of Ogg Opus draft.
Adapted from http://wiki.xiph.org/OggOpus
Gregory Maxwell [Fri, 29 Jun 2012 00:22:26 +0000 (20:22 -0400)]
Add configure option to disable stack protector.
Gregory Maxwell [Tue, 19 Jun 2012 13:11:40 +0000 (09:11 -0400)]
Dos2unix, trailing whitespace on draft-spittka-payload-rtp-opus.xml.
Jean-Marc Valin [Thu, 14 Jun 2012 14:56:12 +0000 (10:56 -0400)]
Adds a copy of the RTP payload XML
Gregory Maxwell [Mon, 11 Jun 2012 23:19:55 +0000 (19:19 -0400)]
Add -fixed to the version string & clarify that fixed disables float.
Ron [Mon, 11 Jun 2012 19:10:42 +0000 (04:40 +0930)]
Include the doc dir in DIST_SUBDIRS instead of EXTRA_DIST
And explicitly specify what we want included in EXTRA_DIST of doc/Makefile.am,
otherwise make dist picks up whatever random junk you might have laying around
in that dir at the time you run it.
Tweak the top level delegation targets, because this means distclean will be
run in the doc dir by default now without our help.
Jean-Marc Valin [Mon, 11 Jun 2012 18:37:44 +0000 (14:37 -0400)]
opus_compare.m was outdated
Ron [Wed, 23 May 2012 05:45:19 +0000 (15:15 +0930)]
Don't bark scary warnings at compile time about no doxygen
We already report whether or not the docs will be built in the summary box
at the end of the configure run.
Gregory Maxwell [Mon, 11 Jun 2012 17:33:35 +0000 (13:33 -0400)]
Fixup paths in doc/
Gregory Maxwell [Mon, 11 Jun 2012 05:42:32 +0000 (01:42 -0400)]
Pretty up the HTML doxygen output.
Gregory Maxwell [Mon, 11 Jun 2012 01:30:01 +0000 (21:30 -0400)]
Add brief descriptions to the encode/decode groups to avoid weird autobreif strings.
Gregory Maxwell [Mon, 11 Jun 2012 01:15:02 +0000 (21:15 -0400)]
Correct documentation in opus_custom.h.
Gregory Maxwell [Fri, 18 May 2012 00:04:42 +0000 (20:04 -0400)]
Remove unnecessary and not-very-portable opus_demo case insensitivity.
Gregory Maxwell [Sat, 2 Jun 2012 06:15:49 +0000 (02:15 -0400)]
Fix doxygen docs wrt OPUS_WARN_UNUSED_RESULT and OPUS_ARG_NONNULL.
Also get the subname rigtht.
Gregory Maxwell [Fri, 1 Jun 2012 06:21:53 +0000 (02:21 -0400)]
Update headers to cause warnings on unused returns and null args.
In places where an ignored return or a null-arg is a sure indication
of a bug add the GCC warning attributes. The null arg annotation
is not enable for Opus itself because it will cause the compiler
to optimize out some null checks. I don't trust our callers
quite that much.
root [Fri, 1 Jun 2012 16:48:01 +0000 (12:48 -0400)]
modified the Visual Studio 2010 projects and solution file to include a x64 configuration. modified the output folders such that the architecture is included in the path (so you get Release64, Debug32, etc.) so you can have all build types in one tree.
Gregory Maxwell [Fri, 1 Jun 2012 06:27:36 +0000 (02:27 -0400)]
Avoid an inconsequential memory leak in tests/test_opus_decode.c
Gregory Maxwell [Fri, 1 Jun 2012 04:46:57 +0000 (00:46 -0400)]
Avoid an inconsequential memory leak in tests/test_opus_encode.c.
Jean-Marc Valin [Thu, 31 May 2012 15:50:33 +0000 (11:50 -0400)]
Seems like using dllimport on Windows wasn't useful
This was a problem for static builds
Gregory Maxwell [Wed, 30 May 2012 18:36:02 +0000 (14:36 -0400)]
Fix for building mingw32 apps.
Ralph Giles [Wed, 30 May 2012 18:06:26 +0000 (11:06 -0700)]
Advertise the static library for uninstalled builds.
It's less surprising for people using the -uninstalled
pkg-config file if we advertise the static library rather
than the shared build. That way the executables work without
having to hack the same location into LD_LIBRARY_PATH, and
the resulting binaries are easier to distribute.
For this to actually work with opus-tools, the -fPIE had
to be turned off, as it was in
1d128b4d5c6f. Support
for static PIE builds would be restored if we compiled
libopus.a with -fPIC.
Also remove the private header locations. These are no
longer required to declare any of the public api.
Jean-Marc Valin [Tue, 29 May 2012 21:01:35 +0000 (17:01 -0400)]
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.
Timothy B. Terriberry [Tue, 29 May 2012 03:10:48 +0000 (20:10 -0700)]
Fix opus-uninstalled.pc.
With these changes, opus-tools can actually build using it.
Ralph Giles [Wed, 23 May 2012 23:33:14 +0000 (16:33 -0700)]
Add extern "C" protection to opus_multistream.h.
Unlike the other headers, opus_multistream.h didn't declare
itself to be C code, causing confusing errors when the caller
tries to use the functions from C++.
Gregory Maxwell [Wed, 23 May 2012 05:52:39 +0000 (01:52 -0400)]
Use 'frame' instead of 'signal', take out stdlib.h in silk/.
On MacOS, stdlib.h ends up including sys/signal.h, generating
warnings about the local variables called 'signal' shadowing
the global symbol signal(3).
This was originally done in
86476906 but it missed some use
of 'signal' in prototypes in headers where it didn't cause
warnings. Later the prototypes were moved around and the
warnings came back.
This also cleans up some cases in where stdlib.h was used
but shouldn't be required.
Ron [Mon, 21 May 2012 13:46:39 +0000 (23:16 +0930)]
Enable building just the library (or just the docs)
Both are still built and installed by default though.
Ron [Mon, 21 May 2012 13:44:50 +0000 (23:14 +0930)]
Actually install the documentation with make install
Instead of just its build stamp :)
Gregory Maxwell [Sun, 20 May 2012 23:28:45 +0000 (19:28 -0400)]
Tweak doxygen input so that the manpage names won't conflict.
Jean-Marc Valin [Fri, 18 May 2012 19:14:17 +0000 (15:14 -0400)]
int vs opus_int32 consistency
Ralph Giles [Fri, 18 May 2012 19:01:46 +0000 (12:01 -0700)]
Remove the obsolete LIBOPUS_SUFFIX define.
As best we recall, this was used to version the
library filename during rapid development. It's
no longer needed now that the bitstream is frozen
and isn't hooked up to anything in the build system.
Ralph Giles [Fri, 18 May 2012 18:47:58 +0000 (11:47 -0700)]
Move the various version defines to be together.
The config.h version defines were declared in the
middle of the math feature testing. This commit moves
it to the top of configure.ac where the other version
number code resides.
Gregory Maxwell [Thu, 17 May 2012 00:00:32 +0000 (20:00 -0400)]
Minor doc improvement wrt OPUS_APPLICATION_RESTRICTED_LOWDELAY.
Jean-Marc Valin [Thu, 17 May 2012 23:45:10 +0000 (19:45 -0400)]
Sync with draft -14
Jean-Marc Valin [Wed, 16 May 2012 21:47:17 +0000 (17:47 -0400)]
Fixes the stereo_analysis() fixed-point overflow issue properly
Jean-Marc Valin [Wed, 16 May 2012 04:36:19 +0000 (00:36 -0400)]
Merge branch 'tmp_draft'
Conflicts:
README
Jean-Marc Valin [Wed, 16 May 2012 04:29:02 +0000 (00:29 -0400)]
Revert "Adds 3rd clause to CELT license"
This reverts commit
9f407afad6da25f87c2350e86b21151578ac2ed4.
Jean-Marc Valin [Tue, 15 May 2012 23:58:28 +0000 (19:58 -0400)]
version bump
Gregory Maxwell [Tue, 15 May 2012 23:23:36 +0000 (19:23 -0400)]
Remove trailing whitespace from draft-ietf-codec-opus.xml.
Kat Walsh [Tue, 15 May 2012 22:06:10 +0000 (18:06 -0400)]
commas
Jean-Marc Valin [Tue, 15 May 2012 22:05:49 +0000 (18:05 -0400)]
Table title capitalization
Kat Walsh [Tue, 15 May 2012 21:50:40 +0000 (17:50 -0400)]
draft copyediting