7 years agoMakes two static tables const
Jean-Marc Valin [Wed, 29 Aug 2012 13:43:23 +0000 (09:43 -0400)]
Makes two static tables const

7 years agoFixes an overflow in silk_log2lin() that was triggered only in debug mode
Jean-Marc Valin [Mon, 27 Aug 2012 04:16:38 +0000 (00:16 -0400)]
Fixes an overflow in silk_log2lin() that was triggered only in debug mode

7 years agoFix typo.
Timothy B. Terriberry [Fri, 24 Aug 2012 18:54:38 +0000 (11:54 -0700)]
Fix typo.

Thanks to Andrew D'Addesio for the report.

7 years agoMore email address updates for AUTHORS.
Gregory Maxwell [Thu, 23 Aug 2012 14:14:49 +0000 (10:14 -0400)]
More email address updates for AUTHORS.

7 years agoUpdate testvector path and filename.
Gregory Maxwell [Tue, 21 Aug 2012 21:56:51 +0000 (17:56 -0400)]
Update testvector path and filename.

7 years agoAdditional multistream tests and reject channels<1 in MS API.
Gregory Maxwell [Tue, 21 Aug 2012 20:08:35 +0000 (16:08 -0400)]
Additional multistream tests and reject channels<1 in MS API.

7 years agoRevise README, update AUTHORS emails.
Gregory Maxwell [Tue, 21 Aug 2012 18:24:38 +0000 (14:24 -0400)]
Revise README, update AUTHORS emails.

7 years agoClarify a comment.
Ralph Giles [Tue, 21 Aug 2012 18:22:08 +0000 (11:22 -0700)]
Clarify a comment.

Further cleanup of the confusion with the version string settings.

7 years agoPropagate OPUS_VERSION to config.h.
Ralph Giles [Tue, 21 Aug 2012 17:49:43 +0000 (10:49 -0700)]
Propagate OPUS_VERSION to config.h.

I'm not sure how this worked before, the the previous version
string fiddling commit ended up not defining OPUS_VERSION in
the autoconf build, so opus_get_version_string() returned

7 years agoReplace long long in celt/ with opus_int64.
Gregory Maxwell [Mon, 20 Aug 2012 14:45:53 +0000 (10:45 -0400)]
Replace long long in celt/ with opus_int64.

7 years agoRemove C99ism in celt/tests/test_unit_mathops.c w/ fixed point build.
Gregory Maxwell [Sun, 19 Aug 2012 23:42:49 +0000 (19:42 -0400)]
Remove C99ism in celt/tests/test_unit_mathops.c w/ fixed point build.

7 years agoInclude tests/run_vectors.sh in EXTRA_DIST.
Gregory Maxwell [Sun, 19 Aug 2012 20:45:20 +0000 (16:45 -0400)]
Include tests/run_vectors.sh in EXTRA_DIST.

7 years agoUse 64-bits in fixed point debug for _P16, fixes spurious failures.
Gregory Maxwell [Sun, 19 Aug 2012 07:55:23 +0000 (03:55 -0400)]
Use 64-bits in fixed point debug for _P16, fixes spurious failures.

7 years agoFix an MSVC warning.
Ralph Giles [Fri, 17 Aug 2012 17:16:24 +0000 (10:16 -0700)]
Fix an MSVC warning.

Microsoft Visual Studio 2010 warns about 'C4146: unary minus
operator applied to unsigned type, result still unsigned'
because of the '&-sizeof(void*)' in align().

This commit works around the warning by casting the size_t
to int before negation.

Patch by Hauke, who reported the issue on the opus mailing
list. Reviewed by derf.

7 years agogenversion now adds the header comment to version.mk
Chris Moeller [Thu, 16 Aug 2012 23:13:51 +0000 (16:13 -0700)]
genversion now adds the header comment to version.mk

7 years agoAdd 'compile' to the git ignore list.
Ralph Giles [Thu, 16 Aug 2012 20:38:24 +0000 (13:38 -0700)]
Add 'compile' to the git ignore list.

This is another script generated by the autotools build.

7 years agoUse the string from version.mk in Makefile.draft.
Ralph Giles [Thu, 16 Aug 2012 20:35:11 +0000 (13:35 -0700)]
Use the string from version.mk in Makefile.draft.

This reduces the number of places the version string
needs to be updated at release.

7 years agoMove the release version string to version.mk.
Ralph Giles [Thu, 16 Aug 2012 18:39:56 +0000 (11:39 -0700)]
Move the release version string to version.mk.

Previously we defined the release version string in configure.ac,
and overrode that with 'git describe --tags' if possible. This
made it difficult for non-autoconf builds to set their version
string correctly.

Instead we create, and check into version control, a file called
version.mk which defines OPUS_VERSION. The configure script reads
that file and uses it as a fallback if the git revision isn't available.

The expectation is that version.mk will be manually updated for
releases, just as the previous configure.ac version was. However,
since this is a simpler format, it is easier for alternate build
systems to use, reducing the number of places which must be updated.

Also removes the OPUS_MINOR_VERSION, etc. defines from config.h.

7 years agoUpdated Win32 genversion.bat to generate version.mk if Git is found, use it if it...
Chris Moeller [Thu, 16 Aug 2012 16:16:18 +0000 (09:16 -0700)]
Updated Win32 genversion.bat to generate version.mk if Git is found, use it if it isn't, and produce unknown version and leave it untouched if it isn't already found

7 years agoBump version number v1.0.1-rc2
Jean-Marc Valin [Wed, 15 Aug 2012 21:39:57 +0000 (17:39 -0400)]
Bump version number

7 years agoFixes a silly bug where only the left channel was used for depth estimation
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

7 years agoMore doc fixes.
Gregory Maxwell [Sun, 12 Aug 2012 18:50:29 +0000 (14:50 -0400)]
More doc fixes.

In particular we no longer document the default complexity because
we're not guaranteeing to keep the default value constant.  In the
future the default may be lowered in order to keep the default
speed constant.

7 years agoOnly install opus_*.3 manpages. Fixes 'make distcheck'.
Ralph Giles [Fri, 10 Aug 2012 21:42:00 +0000 (14:42 -0700)]
Only install opus_*.3 manpages. Fixes 'make distcheck'.

We were installing every readable file in man/man3, but
only unstalling files matching opus_*.3. Some doxygen
versions construct manpage versions of the marked up
header files and directory index, which got left on the
system after 'make uninstall'.

I don't think the 'uninstall' target is widely used, it's
often broken and can easily break other software. However,
we rely on 'make distcheck' which does verify this issue.

Instead, only install the opus_*.3 manpages, which are the
core api documentation.

7 years agoUse configure.ac provided soname versioning.
Gregory Maxwell [Fri, 10 Aug 2012 21:21:28 +0000 (17:21 -0400)]
Use configure.ac provided soname versioning.

7 years agoDocumentation updates for the CTLs.
Timothy B. Terriberry [Wed, 8 Aug 2012 22:13:17 +0000 (15:13 -0700)]
Documentation updates for the CTLs.

In addition to general reformatting and cleanup, this fixes a
 couple of important mistakes:
- The arguments to OPUS_SET_FORCE_CHANNELS are now 1 and 2, not 0
   and 1 (as they were when this was called OPUS_SET_FORCE_MONO).
- The default encoder mode is now constrained VBR, not unconstrained
It also documents defaults for all the other parameters.

7 years agoDisable stack-protector for mingw32 and remove win32 restrict define.
Gregory Maxwell [Thu, 9 Aug 2012 12:39:15 +0000 (08:39 -0400)]
Disable stack-protector for mingw32 and remove win32 restrict define.

7 years agoAdd MSVC makefiles to the dist tarball.
Gregory Maxwell [Thu, 9 Aug 2012 11:29:58 +0000 (07:29 -0400)]
Add MSVC makefiles to the dist tarball.

7 years agoAvoid an inconsequential memory leak in tests/test_opus_decode.c.
Gregory Maxwell [Thu, 9 Aug 2012 11:22:44 +0000 (07:22 -0400)]
Avoid an inconsequential memory leak in tests/test_opus_decode.c.

Match up the exit behavior when the no-fuzz enviroment variable
is set.

7 years agoBump version number to 1.0.1 and set libtool version v1.0.1-rc
Jean-Marc Valin [Wed, 8 Aug 2012 18:50:27 +0000 (14:50 -0400)]
Bump version number to 1.0.1 and set libtool version

7 years agoAdd basic {GET,SET}_LSB_DEPTH API tests.
Gregory Maxwell [Wed, 8 Aug 2012 04:52:36 +0000 (00:52 -0400)]
Add basic {GET,SET}_LSB_DEPTH API tests.

7 years agoOPUS_{GET,SET}_LSB_DEPTH for multichannel.
Gregory Maxwell [Sat, 14 Jul 2012 00:55:23 +0000 (20:55 -0400)]
OPUS_{GET,SET}_LSB_DEPTH for multichannel.

7 years agoImplements OPUS_{GET,SET}_LSB_DEPTH
Jean-Marc Valin [Wed, 11 Jul 2012 06:54:47 +0000 (02:54 -0400)]

This implements an API used in future encoders to avoid dynalloc doing silly things
on periodic LSB patterns and to reduce the bitrate on near-silence.

7 years agoFix fixed-point testilog2.
Timothy B. Terriberry [Mon, 6 Aug 2012 17:01:27 +0000 (10:01 -0700)]
Fix fixed-point testilog2.

Use exact integer operations to confirm the value returned is the
 correct one.

7 years agoDisable silk_get_TOC in the code, as it's not used or exposed.
Gregory Maxwell [Mon, 6 Aug 2012 14:52:27 +0000 (10:52 -0400)]
Disable silk_get_TOC in the code, as it's not used or exposed.

7 years agoFixed sizeof param in silk_get_TOC. Size for memset was calculated wrong.
Cyril Lashkevich [Mon, 6 Aug 2012 13:38:18 +0000 (16:38 +0300)]
Fixed sizeof param in silk_get_TOC. Size for memset was calculated wrong.

Signed-off-by: Gregory Maxwell <greg@xiph.org>
silk_get_TOC is unused, unreachable, and not useful without some
packet pre-processing, but until we remove it it should be correct.
This was also reported by Mozilla.

7 years agoFix opus_encode allowed frame sizes docs, reported by Stefan Hacker.
Gregory Maxwell [Mon, 6 Aug 2012 13:24:03 +0000 (09:24 -0400)]
Fix opus_encode allowed frame sizes docs, reported by Stefan Hacker.

7 years agoAdded MSVC output directories to gitignore.
Chris Moeller [Mon, 30 Jul 2012 06:29:01 +0000 (23:29 -0700)]
Added MSVC output directories to gitignore.

7 years agoEnables the second dynalloc MDCT only at complexity 8
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.

7 years agoMakes VBR rate variations less aggressive at low bit-rates and for CVBR
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

7 years agoFix bkp/s -> kb/s in opus_demo.
Gregory Maxwell [Fri, 27 Jul 2012 04:37:19 +0000 (00:37 -0400)]
Fix bkp/s -> kb/s in opus_demo.

7 years agoGuard _MSC_VER tests, remove FLOAT2INT16 when DISABLE_FLOAT_API.
Rafaël Carré [Thu, 26 Jul 2012 18:24:25 +0000 (14:24 -0400)]
Guard _MSC_VER tests, remove FLOAT2INT16 when DISABLE_FLOAT_API.

7 years agoSmoother intensity stereo decision thresholds
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).

7 years agoAdds some histeresis to the stereo saving
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

7 years agoVBR tuning: increases transient and dynalloc boost
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

7 years agolog2_frac optimization from Simon Hosie back in Aug 2011.
Gregory Maxwell [Tue, 24 Jul 2012 21:51:25 +0000 (17:51 -0400)]
log2_frac optimization from Simon Hosie back in Aug 2011.

7 years agoFixes issues with stereo saving and dynalloc
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.

7 years agoAdd some more api docs.
Gregory Maxwell [Sat, 21 Jul 2012 20:35:19 +0000 (16:35 -0400)]
Add some more api docs.

7 years agoReplace the remaining instances of restrict with OPUS_RESTRICT.
Gregory Maxwell [Fri, 20 Jul 2012 16:08:29 +0000 (12:08 -0400)]
Replace the remaining instances of restrict with OPUS_RESTRICT.

The usage of restrict in include/opus_custom.h was missed
by the prior commit replacing this keyword with a macro.

Also fixes some prototype/function agreement with respect to

7 years agoReplace a remaining instance of restrict with OPUS_RESTRICT.
Gregory Maxwell [Fri, 20 Jul 2012 16:08:29 +0000 (12:08 -0400)]
Replace a remaining instance of restrict with OPUS_RESTRICT.

The usage of restrict in include/opus_custom.h was missed
by the prior commit replacing this keyword with a macro.

7 years agoSmall cleanups to MSVC build setup.
Gian-Carlo Pascutto [Fri, 20 Jul 2012 07:31:31 +0000 (09:31 +0200)]
Small cleanups to MSVC build setup.

Add more MSVC files to .gitignore.
Make all configurations use default floating point model.

7 years agoFixes MSVC projects and adds git version generator tool
Chris Moeller [Fri, 20 Jul 2012 04:59:13 +0000 (21:59 -0700)]
Fixes MSVC projects and adds git version generator tool

7 years agoReplace C99 restrict keyword with OPUS_RESTRICT.
Gregory Maxwell [Wed, 18 Jul 2012 16:12:35 +0000 (12:12 -0400)]
Replace C99 restrict keyword with OPUS_RESTRICT.

We had previously advised people to -Drestrict on
non-C99 compilers, but this creates problems for
some of the MSVC headers. Instead this just
uses a macro and defines it sanely.

7 years agoDon't try to create fullband silk frames when forced to low rate.
Gregory Maxwell [Wed, 18 Jul 2012 14:06:01 +0000 (10:06 -0400)]
Don't try to create fullband silk frames when forced to low rate.

When libopus is forced to sufficiently low rates it will start
outputting 'PLC' (one byte) frames. The code that did this
did not sanitize the mode well enough and would create corrupted
TOC values in some cases.

7 years agoConvert some double constants to float.
Gregory Maxwell [Tue, 17 Jul 2012 21:40:55 +0000 (17:40 -0400)]
Convert some double constants to float.

7 years agoFix a typo.
Ralph Giles [Tue, 17 Jul 2012 21:35:12 +0000 (17:35 -0400)]
Fix a typo.

Thanks to Fatbag for pointing out the issue.

7 years agoRemove rillian from the Acknowledgments.
Timothy B. Terriberry [Tue, 17 Jul 2012 19:07:36 +0000 (12:07 -0700)]
Remove rillian from the Acknowledgments.

He's an author now.

7 years agoClarify difference between user bandwidth settings.
Timothy B. Terriberry [Tue, 17 Jul 2012 18:49:45 +0000 (11:49 -0700)]
Clarify difference between user bandwidth settings.

7 years agoWrap a long line.
Ralph Giles [Mon, 16 Jul 2012 21:37:54 +0000 (17:37 -0400)]
Wrap a long line.

7 years agoFix the agreement issue the other way.
Ralph Giles [Mon, 16 Jul 2012 21:36:52 +0000 (17:36 -0400)]
Fix the agreement issue the other way.

Plural works better with the previous sentence. The agreement problem
was there in my original commit. I was just confused by the half
that Tim promoted.

7 years agoFix an agreement typo in the previous commit.
Ralph Giles [Mon, 16 Jul 2012 21:30:46 +0000 (17:30 -0400)]
Fix an agreement typo in the previous commit.

7 years agoOutput/intermediate dir cleanup and fixes in 64-bit mode.
Gian-Carlo Pascutto [Mon, 16 Jul 2012 18:52:38 +0000 (20:52 +0200)]
Output/intermediate dir cleanup and fixes in 64-bit mode.

Also make the 64-bit builds use the default output directories.
Fix the type of the default Opus output to be a library.

7 years agoMake MSVC build work in parallel.
Gian-Carlo Pascutto [Mon, 16 Jul 2012 18:40:16 +0000 (20:40 +0200)]
Make MSVC build work in parallel.

The (non-default) temporary & output dirs configured in the projects could
cause issues when doing compilation on a multiprocessor machine. Cleaned
this up a little to use the defaults, which makes that work again and
doesn't make the output structure any worse. Also removed debug output for
release binaries & a tiny whitespace fix.

7 years agoRearrange Ogg Opus references.
Timothy B. Terriberry [Mon, 16 Jul 2012 20:43:10 +0000 (13:43 -0700)]
Rearrange Ogg Opus references.

Sort alphabetically, and move vorbis-trim to "Informative".
Also fix a misuse of "streams" instead of "channels" in the packet
 size limits exposition.

7 years agoUpdates from mailing list and other small fixes.
Timothy B. Terriberry [Mon, 16 Jul 2012 20:17:27 +0000 (13:17 -0700)]
Updates from mailing list and other small fixes.

* Bump the document date.
* Mandate that the ID header must complete on the first page (to
   remove any ambiguities about this requirement in RFC 3533).
* Remove reundant wording that rillian forgot to remove in 360a4117.
* Split the "Granule Position" section into subsections.
* Move the first paragraph of the "Other Implementation Notes"
   section into the "Granule Position" section, add general seeking
   implementation guidance, and be specific about the interaction
   between pre-roll and pre-skip.
* Retitle the remaining contents of the "Other Implementation Notes"
   section to "Packet Size Limits"
* Specify that all the header fields are REQUIRED (and add a
   description of the Channel Mapping Table as a whole, so we can
   say when it is REQUIRED).
* Specify that implementations MUST NOT reject headers with extra
   data if they have an unknown minor version number.
* Add a reference to RFC 3629 (UTF-8).
* Minor formatting adjustments to vorbis-trim and vorbis-mapping
* Eliminate semicolons and terrible "Else, if" constructs.

7 years agoOops, the tag is ENCODER not ENCODED-BY.
Ralph Giles [Mon, 16 Jul 2012 18:14:45 +0000 (14:14 -0400)]
Oops, the tag is ENCODER not ENCODED-BY.

7 years agoVarious small improvements.
Ralph Giles [Mon, 16 Jul 2012 17:53:29 +0000 (13:53 -0400)]
Various small improvements.

Remove a redundant phrase from the previous commit.
Thanks to Tim for pointing this out.

Clarify what 'skipped' means.

Give a reference for the vorbis granulepos-trimming.

Commas and semicolons in the resampling decision list.

Capital SHOULD on treating unknown channel mapping families
as discrete.

Clarify why goes in the vendor string. Maybe needs an example?
'gstoggmux 1.0.12; libopus 1.2.3'

Remove a redundant word. 'could' already covers 'potential' and
the line is stronger without it.

7 years agoDefine TOC sequence briefly.
Ralph Giles [Mon, 16 Jul 2012 16:34:46 +0000 (12:34 -0400)]
Define TOC sequence briefly.

Hopefully it's clear from this that the demuxer can parse the
TOC sequence to verify the equal-duration constraint.

7 years agoClarify how multistream Opus packets are packed into Ogg packets.
Ralph Giles [Mon, 16 Jul 2012 16:34:04 +0000 (12:34 -0400)]
Clarify how multistream Opus packets are packed into Ogg packets.

7 years agoBump the version number on the Ogg Opus draft.
Ralph Giles [Mon, 16 Jul 2012 15:42:47 +0000 (11:42 -0400)]
Bump the version number on the Ogg Opus draft.

7 years agoAdd myself as an author.
Ralph Giles [Mon, 16 Jul 2012 15:41:27 +0000 (11:41 -0400)]
Add myself as an author.

7 years agoOgg Opus wording - avoid repeated 'this' in the abstract.
Ralph Giles [Fri, 6 Jul 2012 19:17:23 +0000 (12:17 -0700)]
Ogg Opus wording - avoid repeated 'this' in the abstract.

7 years agoOpus_multistream API hardening.
Gregory Maxwell [Sat, 14 Jul 2012 19:49:20 +0000 (15:49 -0400)]
Opus_multistream API hardening.

7 years agoFix headers by mingw broken by recent win32 changes.
Gregory Maxwell [Sat, 14 Jul 2012 15:00:24 +0000 (11:00 -0400)]
Fix headers by mingw broken by recent win32 changes.

7 years agoOPUS_{GET,SET}_LSB_DEPTH for multichannel.
Gregory Maxwell [Sat, 14 Jul 2012 00:55:23 +0000 (20:55 -0400)]
OPUS_{GET,SET}_LSB_DEPTH for multichannel.

7 years agoFixes make dist
Jean-Marc Valin [Thu, 12 Jul 2012 01:13:36 +0000 (21:13 -0400)]
Fixes make dist

7 years agoImplements OPUS_{GET,SET}_LSB_DEPTH
Jean-Marc Valin [Wed, 11 Jul 2012 06:54:47 +0000 (02:54 -0400)]

This is used to avoid dynalloc doing silly things on periodic LSB
patterns and to reduce the bitrate on near-silence.

7 years agoBuilds the analysis files more cleanly than #including C files
Jean-Marc Valin [Thu, 5 Jul 2012 05:28:45 +0000 (01:28 -0400)]
Builds the analysis files more cleanly than #including C files

7 years agoGets rid of // comments
Jean-Marc Valin [Thu, 5 Jul 2012 07:49:13 +0000 (03:49 -0400)]
Gets rid of // comments

7 years agofixed-point (re-)conversion of the VBR code
Jean-Marc Valin [Thu, 5 Jul 2012 01:43:37 +0000 (21:43 -0400)]
fixed-point (re-)conversion of the VBR code

7 years agoFixes a VBR bug with 2.5 ms frames
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.

7 years agoSpeeds up analysis by getting rid of calls to atan2() and cos()
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.

7 years agoRename version flag to exp_wip5 to exp_analysis.
Gregory Maxwell [Tue, 3 Jul 2012 22:24:31 +0000 (18:24 -0400)]
Rename version flag to exp_wip5 to exp_analysis.

7 years agoAdd exp_wip5 tag to version string.
Gregory Maxwell [Sun, 1 Jul 2012 22:22:15 +0000 (18:22 -0400)]
Add exp_wip5 tag to version string.

7 years agoReverts the transient_analysis() changes from 4e8b9905
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)

7 years agoFixes issues when downmixing to mono or when encoding below fullband
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

7 years agoTonality and pitch tuning
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.

7 years agoConverting most of the new code to fixed-point (not complete yet)
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)

7 years agoFixes some issues discovered with a log sweep
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

7 years agoTuning the dynalloc adjustments and checking for LF transients
Jean-Marc Valin [Wed, 21 Dec 2011 15:51:34 +0000 (10:51 -0500)]
Tuning the dynalloc adjustments and checking for LF transients

7 years agoAdds a 3 Hz high-pass filter and boost allocation on leakage
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

7 years agoDynalloc based on a bands that stand out of the "noise floor"
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"

7 years agoTransient/VBR tuning, give more bits to frames where pitch changes
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

7 years agoNew transient code, weighted tonality
Jean-Marc Valin [Fri, 2 Dec 2011 21:08:02 +0000 (16:08 -0500)]
New transient code, weighted tonality

7 years agoVBR tuning
Jean-Marc Valin [Mon, 28 Nov 2011 19:17:47 +0000 (14:17 -0500)]
VBR tuning

7 years agoAdds automatic bandwidth detection
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

7 years agoBetter training set
Jean-Marc Valin [Thu, 24 Nov 2011 03:24:14 +0000 (22:24 -0500)]
Better training set

7 years agoAdds low-energy feature, training with noise
Jean-Marc Valin [Wed, 23 Nov 2011 18:52:44 +0000 (13:52 -0500)]
Adds low-energy feature, training with noise

7 years agoBetter training
Jean-Marc Valin [Wed, 23 Nov 2011 07:43:15 +0000 (02:43 -0500)]
Better training

7 years agoAdds MFCC standard deviation features
Jean-Marc Valin [Wed, 23 Nov 2011 03:44:56 +0000 (22:44 -0500)]
Adds MFCC standard deviation features

7 years agoDown to 17 features with same error rate
Jean-Marc Valin [Tue, 22 Nov 2011 02:57:10 +0000 (21:57 -0500)]
Down to 17 features with same error rate