Commit graph

2378 commits

Author SHA1 Message Date
Timothy B. Terriberry
e4689464eb Addressing AD issues
Including a description of the PVQ encoder and decoder
2012-04-24 00:37:04 -04:00
Jean-Marc Valin
eb8b3c2b07 Adds note on monic filter 2012-04-23 16:24:45 -04:00
Gregory Maxwell
28b1d248a7 Fix negative write bug in opus_demo and add some fwrite() error handling. 2012-04-23 14:04:44 -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
ae00e60d35 License update using the IETF Trust flavour of the BSD on the Silk code 2012-04-20 16:31:04 -04:00
Timothy B. Terriberry
fa2750bee2 More changes addressing Robert Sparks' review 2012-04-20 15:47:37 -04:00
Jean-Marc Valin
72273000ec Misc changes to address Robert Sparks' comments
See http://www.ietf.org/mail-archive/web/codec/current/msg02833.html
Still more changes to come
2012-04-20 10:26:08 -04:00
Gregory Maxwell
8365b5d00d Add config.h (and copyright notice) to repacketizer_demo.c.
This fixes some problems with cross-compiles.
2012-03-05 17:33:58 -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
c4ff3a0423 Modifies the comparison tool to make it much more permissive. 2012-02-09 11:24:44 -05:00
Koen Vos
75f04e5eb1 Fixes MSVC warnings 2012-01-31 14:49:40 -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
Koen Vos
54518c879a Last part of the LPC work stabilization work discussed at the last meeting
Also adds the encoder part of commit ee8adbe701 as well as a few
minor cleanups.
2012-01-31 01:51:22 -05:00
Gregory Maxwell
a26b2be2f9 Improvements to the tests, add a TEST_OPUS_NOFUZZ to disable testing corrupted input.
No changes to the codec itself.
2012-01-25 12:04:17 +13:00
Jean-Marc Valin
286f11efea Making the PLC robust to overflows caused by extreme bit-streams
This is not strictly necessary because the only streams that cause these
already sound horrible, but it helps the testing process.
2012-01-25 11:32:09 +13:00
Jean-Marc Valin
f898ae1021 Fixes a non-bitstream-related PLC integer overflow. 2012-01-24 21:08:15 +13:00
Jean-Marc Valin
ee8adbe701 Fixes a few minor issues (no bit-stream change)
- Safer gain clamping for PLC
- Makes opus_decoder_get_nb_samples() report an error on invalid ToC
- Giving a free license to the text ofthe draft (not just the code)
2012-01-24 14:47:54 +13:00
Koen Vos
a51ebd6831 Accuracy improvements to help float implementations
Also clamps the gain to avoid forcing a float decoder to emulate the
state rescaling.
2011-12-14 11:41:18 -05:00
Jean-Marc Valin
5609cec9a5 Fixes two minor issues found in random testing at ridiculously low rate.
- When it cannot produce the rate it's being asked, the encoder now
  returns a "PLC packet"
- Makes it possible to use the CELT PLC for more than 20 ms
2011-12-13 14:52:43 -05:00
Koen Vos
bbfc9c9ee5 Improves the accuracy such that it matches a float decoder much better 2011-12-13 14:50:12 -05:00
Koen Vos
bf75c8ec4d SILK fixes following last codec WG meeting
decoder:
- fixed incorrect scaling of filter states for the smallest quantization
  step sizes
- NLSF2A now limits the prediction gain of LPC filters

encoder:
- increased damping of LTP coefficients in LTP analysis
- increased white noise fraction in noise shaping LPC analysis
- introduced maximum total prediction gain.  Used by Burg's method to
  exit early if prediction gain is exceeded.  This improves packet
  loss robustness and numerical robustness in Burg's method
- Prefiltered signal is now in int32 Q10 domain, from int16 Q0
- Increased max number of iterations in CBR gain control loop from 5 to 6
- Removed useless code from LTP scaling control
- Optimization: smarter LPC loop unrolling
- Switched default win32 compile mode to be floating-point

resampler:
- made resampler have constant delay of 0.75 ms; removed delay
  compensation from silk code.
- removed obsolete table entries (~850 Bytes)
- increased downsampling filter order from 16 to 18/24/36 (depending on
  frequency ratio)
- reoptimized filter coefficients
2011-12-13 14:47:31 -05:00
Timothy B. Terriberry
6619a73637 Move nbits_total initialize before renormalization.
The range decoder used to initialize nbits_total after the
 renormalization loop, even though the renormalization loop
 modifies it.
This was presumably safe, because nothing actually used the value
 before it was initialized, but I'm tired of it triggering the
 integer overflow checking.
2011-12-02 15:37:29 -05:00
Gregory Maxwell
92c896e880 Fixes the code for optional self-delimited packing to make it fit the draft
This has no impact on opus_demo, test vectors, or "normal" codec operation
2011-12-02 12:41:31 -05:00
Jean-Marc Valin
1c80f64960 All variables named "bank" renamed to "bandE" to avoid problems on SHARC
SHARK compiler treaks "bank" as a reserved keyword -- go figure.
2011-12-02 12:38:32 -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
e1be1920ba Some minor (non-bitstream-affecting) changes to help us have better test vectors
These fix corner cases discovered during the latest fuzzing tests.
2011-11-28 22:48:01 -05:00
Gregory Maxwell
e699c1989c Testing tools improvements (no impact on draft) 2011-11-25 23:53:15 -05:00
Ralph Giles
10ebc02ecf Misc documentation fixes (no code change)
We use macros to encapsulate the appropriate type and size
information for the different CTL requests, but the macros
still need to be used with the _ctl() function call and an
encoder or decoder instance structure. As such, just listing
the macro defines is confusing. Adding some examples outside
the OpusEncoder overview page should help with this.

Also document that OPUS_SET_APPLICATION can take
OPUS_APPLICATION_RESTRICTED_LOWDELAY.
2011-11-25 23:25:38 -05:00
Ralph Giles
215938139e Fix various typing and spelling errors in the draft.
Also regularises some Canadian spelling to US like the rest of
the document.
2011-11-18 13:48:01 -08: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
a9d342e61e draft version update 2011-10-31 19:54:33 -04:00
Jean-Marc Valin
8ba1a0824a version bump 2011-10-31 19:53:06 -04:00
Jean-Marc Valin
09a84c8e4b Fixes a minor issue on CELT->SILK switching 2011-10-31 19:51:47 -04:00
Jean-Marc Valin
38c6a15092 version number bump 2011-10-31 17:21:55 -04:00
Jean-Marc Valin
0fd87bedcb More last-minute typos 2011-10-31 16:30:58 -04:00
Jean-Marc Valin
18ab935a05 Typos 2011-10-31 16:26:30 -04:00
Jean-Marc Valin
fe5fe9e14b Fixes sha1 of test1_mono 2011-10-31 16:08:51 -04:00
Jean-Marc Valin
2a8e2d8483 draft version/date change 2011-10-31 16:02:12 -04:00
Jean-Marc Valin
57db6c55d0 Test vectors update 2011-10-31 16:00:34 -04:00
Jean-Marc Valin
abaa348901 Adds -random_fec option to randomly add FEC to some frames.
Undocumented for now
2011-10-31 14:36:31 -04:00
Timothy B. Terriberry
917cd6e6ae Minor draft edits. 2011-10-31 14:12:25 -04:00
Ralph Giles
66767ee837 Clean up whitespace in the draft makefile.
Remove a trailing tab, and unexpand some tabs in the
source listing.
2011-10-31 13:56:58 -04:00
Jean-Marc Valin
27592c3e49 Multi-stream now checks that each stream at least contains a ToC. 2011-10-31 13:18:43 -04:00
Jean-Marc Valin
f8fc8f2960 Test vector warning 2011-10-31 13:09:51 -04:00
Jean-Marc Valin
a05a379fc4 Adds -random_framesize and -sweep_max options to opus_demo
Undocumented for now.
2011-10-30 22:49:35 -04:00
Jean-Marc Valin
23f3a1f1d7 Fixes a redundancy bug in glitchless SILK-SILK switching
The CELT encoder could end up using a non-max bit-rate and not use
all the bytes it's supposed to use.
2011-10-30 22:41:32 -04:00
Gregory Maxwell
afd05aca0c Fix multistream packet corruption, implement GET_FINAL_RANGE for multistream, and add many tests.
Multistream encode was failing to add the length of the extra length for
self-delimited packets causing corrupted output. Multistream decode was
not properly handling lost frames (and potentially reading out of bounds
as a result).

GET_FINAL_RANGE has been implemented as the xor of the final range of all
the streams in the packet.

test_opus_encode now does the mono narrowband tests using dual-mono
multistream.
2011-10-30 19:57:22 -04:00
Jean-Marc Valin
b77c44b46f draft: s/LSb/LSB/ 2011-10-30 16:58:56 -04:00
Gregory Maxwell
c81b510239 Fix a number of multistream decoder bugs; add some very basic multistream decoder tests. 2011-10-30 02:20:41 -04:00