Commit graph

1205 commits

Author SHA1 Message Date
Jean-Marc Valin
5cfa93b092 More outstanding issues 2008-11-26 16:33:58 -05:00
Jean-Marc Valin
6f562682f6 Initial IETF draft 2008-11-22 08:13:16 -05:00
Jean-Marc Valin
05acb73e36 fixed test for cases where M_PI isn't defined 2008-11-10 20:59:38 -05:00
Jean-Marc Valin
37ab9c6642 Bit of cleaning up and comments 2008-11-08 09:14:38 -05:00
Jean-Marc Valin
bc79991742 The fold bit can now be used by the encoder and decoder (encoder still needs
EXP_PSY)
2008-11-07 22:53:13 -05:00
Jean-Marc Valin
896471dc3d Disabling the folding sign bit 2008-11-06 21:55:41 -05:00
Jean-Marc Valin
a2012d8dc5 experimental code for choosing whether to apply folding for the high bands 2008-11-05 21:54:37 -05:00
Gregory Maxwell
3b34e188ed In some conditions the allocation could run out of bits and attempt to allocate a negative number of pulses. 2008-10-29 23:37:32 -04:00
Gregory Maxwell
ae2fb591b8 Fixed use of the jitter buffer in celtclient. 2008-10-28 23:34:13 -04:00
Jean-Marc Valin
c5f2a9d988 Latest psychoacoustics work -- still highly experimental 2008-10-26 22:00:26 -04:00
Timothy B.B Terriberry
d77f61ac22 Fixes some issues in the MF range coder on systems were ints are 16 bits. 2008-10-19 20:01:34 -04:00
Jean-Marc Valin
761811d91b re-enable support for resizable buffers in the range coder 2008-10-18 09:11:05 -04:00
Jean-Marc Valin
8679a80ee2 Encoder now writes data directly in the user buffer 2008-10-18 07:44:35 -04:00
Jean-Marc Valin
56cb5cf31f Multiply-free version of the range coder. Haven't yet decided which version to
use.
2008-10-17 21:27:21 -04:00
Jean-Marc Valin
dffd9449b5 Tonality estimation code 2008-10-15 07:29:58 -04:00
Jean-Marc Valin
01e177377c README update 2008-10-10 20:14:44 -04:00
Jean-Marc Valin
5ac6d42e81 Preparing for 0.5.0 2008-10-09 07:29:39 -04:00
Gregory Maxwell
926131291f Add support for a complexity argument to both testcelt and celtenc. 2008-10-08 19:45:55 -04:00
Wessel Lubberhuizen
7bf550ead4 fix STATIC_MODES for stereo (with a few fixes by JMV) 2008-10-06 07:12:08 -04:00
Jean-Marc Valin
b6f9061343 celt_encoder_ctl() is a bit more type-safe. 2008-10-05 22:39:13 -04:00
Jean-Marc Valin
25ec9ac39a Fixed support for STATIC_MODES 2008-10-04 22:37:11 -04:00
Jean-Marc Valin
2b08d7a210 Removing the 64-bit part of the range coder. 2008-10-04 21:10:26 -04:00
Gregory Maxwell
b6a3b0c464 Fix stereo support; correctly deallocate bits_stereo. 2008-10-04 00:39:17 -04:00
Jean-Marc Valin
60d0837ea0 lookahead no longer defined when creating a mode 2008-10-03 07:30:08 -04:00
Wessel Lubberhuizen
33ba6cc6b6 fix stack handling 2008-10-03 07:09:29 -04:00
Jean-Marc Valin
b0bef8564e compute_alloc_cache() isn't defined when STATIC_MODES is. 2008-10-02 23:52:46 -04:00
Jean-Marc Valin
f3190f26b9 s/unsigned/celt_uint32_t/ 2008-10-01 19:41:54 -04:00
Gregory Maxwell
8259531160 API: Change celt_encode and celt_encode_float so that they take an optional synthesis parameter after the PCM input. If optional_synthesis is null the encoder will be able to save some computation. If optional_synthesis is non-null if will be used to write the encoder's expectation of the decoder's output. Synthesis may alias the input pcm, so calling the encoder with the same buffer twice will achieve the old behavior. Remove 'restrict' from the CTL prototype. 2008-09-30 23:32:35 -04:00
Jean-Marc Valin
c18fb1d031 Added celt_encoder_ctl() and CELT_SET_COMPLEXITY 2008-09-30 07:36:54 -04:00
Jean-Marc Valin
c591e1542a Proper stack restore 2008-09-29 17:41:14 -04:00
Gregory Maxwell
cbaf67e836 Fix support for sample rates between 32kHz and 40kHz (lower rates are currently rejected, but work okay). 2008-09-28 08:17:42 -04:00
Jean-Marc Valin
f02c9bac3a Supporting large prime factors in the FFT 2008-09-27 22:14:18 -04:00
Gregory Maxwell
23e654ff82 Allow all even frame sizes, change the selection of number of short MDCTs per frame to be more intelligent. 2008-09-27 21:23:54 -04:00
Gregory Maxwell
0527f37352 Fix support for 64 sample frames. 2008-09-24 20:27:51 -04:00
Gregory Maxwell
34952f3e45 Add an additional 1/16th bit of padding to avoid budget busting on some inputs. 2008-09-23 21:08:44 -04:00
Jean-Marc Valin
f61be66f42 Some more tuning 2008-09-22 10:46:55 -04:00
Jean-Marc Valin
0ec7c14e0b Unb0rked a fixed-point regression caused in 7bb339d 2008-09-22 10:25:46 -04:00
Jean-Marc Valin
b155bb8860 Merge branch 'cwrs_speedup'
Conflicts:
	libcelt/cwrs.c
	tests/cwrs32-test.c
2008-09-21 22:38:43 -04:00
Timothy B.B Terriberry
5ee9715c5c Change cwrsi() to operate on rows of U instead of columns.
It is no slower with a large number of pulses, and as much as 30% faster with
 a large number of dimensions.
2008-09-21 21:37:41 -04:00
Jean-Marc Valin
7bb339d9f9 Split the last pulse out of the alg_quant() main loop. 2008-09-21 21:11:39 -04:00
Jean-Marc Valin
5ea2e7f267 Dividing by a constant is never good 2008-09-19 17:49:21 -04:00
Jean-Marc Valin
d125c264e4 Removed a bunch of divides from the fine energy quantisation 2008-09-19 17:22:44 -04:00
Jean-Marc Valin
c24b518fb0 Some bit-allocation tuning 2008-09-19 16:49:26 -04:00
Jean-Marc Valin
b4ce40cb55 Fixing the manual stack handling code 2008-09-19 11:50:50 -04:00
Jean-Marc Valin
abf5c8ed64 Merge branch 'cwrs_speedup' (derf's cwrs changes)
Conflicts:
	libcelt/cwrs.c
2008-09-19 08:02:50 -04:00
Timothy B.B Terriberry
d910274f79 Change CWRS indexing to use Pyramid VQ's magnitude ordering.
This lets us encode and decode directly from the pulse vector without an
 intermediate transformation.
This makes old streams undecodable.
Additionally, ncwrs_u32() has been sped up for large N by using the sliding
 recurrence from Mohorko et al.
ncwrs_u64 could be sped up in a similar manner, but would require a larger
 table of multiplicative inverses (or several 32x32->64 bit multiplies).
Note that U(N,M) is now everywhere 1/2 the value it used to be.
2008-09-19 07:38:24 -04:00
Jean-Marc Valin
1dab60cc91 Better use of the arithmetic operators 2008-09-16 13:29:37 -04:00
Jean-Marc Valin
b781877e80 Converted everything to 32-bit CWRS (using split after that) 2008-09-12 21:27:35 -04:00
Jean-Marc Valin
453ccd829a Generate slightly more accurate WMOPS figures 2008-09-12 20:52:27 -04:00
Jean-Marc Valin
7b0cb4ba0d One-at-a-time allocator now uses direct feedback from ec_*_tell(). 2008-09-11 00:20:08 -04:00