Commit graph

54 commits

Author SHA1 Message Date
Gregory Maxwell
926131291f Add support for a complexity argument to both testcelt and celtenc. 2008-10-08 19:45:55 -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
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
Jean-Marc Valin
9375aa4faa Cleaned up the pre-echo avoidance code so it works when compiled as fixed-point
(still requires float ops though). Also, removed the per-band IDCT.
2008-06-27 07:57:35 +10:00
Jean-Marc Valin
16ca18b9b0 Automatically choosing the overlap based on the frame size. 2008-06-18 23:44:48 +10:00
Jean-Marc Valin
5aff7c04d4 Implemented a cleaner way to detect whether CWRS codebooks fit in 32 or 64 bits 2008-06-10 16:25:45 +10:00
Jean-Marc Valin
987921a067 fixed the skipping of the zeros (skip the zeros instead of the good samples!) 2008-05-26 23:46:28 +10:00
Jean-Marc Valin
b9da9e45fd Some code for packet loss and bit error simulation 2008-05-15 20:21:27 +10:00
Jean-Marc Valin
56cf2d6ae0 Added code for simulating bit errors 2008-04-28 15:56:38 +10:00
Jean-Marc Valin
c7e0b76c06 Making sure not to use the C library calls directly 2008-03-16 07:55:29 +11:00
Jean-Marc Valin
949902fd1b const correctness. celt_mode_create() now makes a copy of the static mode
(if STATIC_MODES is defined) instead of attempting to modify read-only
storage.
2008-03-11 10:43:06 +11:00
Jean-Marc Valin
5588d52e94 Psychoacoustic decay coefficients can now be included in the static modes 2008-03-10 15:07:58 +11:00
Jean-Marc Valin
7dbe0ca375 fixed some build problems 2008-03-10 10:25:40 +11:00
Jean-Marc Valin
2472dd7c89 testcelt no longer attempts to use ALLOC() 2008-03-09 19:27:58 +11:00
Jean-Marc Valin
ab69667495 oops, unb0rked testcelt output 2008-03-05 22:40:58 +11:00
Jean-Marc Valin
92376697c6 fixed-point: converted the pitch gain quantisation, except for the codebook
itself
2008-03-05 11:31:57 +11:00
Jean-Marc Valin
8600f69f79 Initial support for a managed stack/scratchpad. Still needs some work. 2008-02-29 15:14:12 +11:00
Jean-Marc Valin
8c19b030df Changed _new() to _create() in the API. Added some documentation
on how to use the API.
2008-02-20 15:53:15 +11:00
Jean-Marc Valin
0bb05bc5ea Another bunch of C99 array conversions (few more to go) 2008-02-20 13:43:40 +11:00
Jean-Marc Valin
a85657bd29 removed // comments and added stack_alloc.h (not used everywhere yet)
to make the code more C89-friendly.
2008-02-20 11:59:30 +11:00
Jean-Marc Valin
583a14ac96 Remove leading zeros in testcelt 2008-02-19 17:34:02 +11:00
Jean-Marc Valin
f2d5aed8a5 Allowing to choose the frame size and rate from testcelt 2008-02-19 16:45:37 +11:00
Jean-Marc Valin
75e9c8607d Some error reporting in the mode generation code. More cleanup 2008-02-18 17:04:15 +11:00
Jean-Marc Valin
2ca8fc373c Making use of dynamically generated modes by default 2008-02-18 16:27:49 +11:00
Jean-Marc Valin
65d57e6e96 Can now easily use modes generated on the fly. 2008-02-18 15:49:37 +11:00
Jean-Marc Valin
6da36c0452 Experimental ld51 mode (needs more work) 2008-02-15 14:20:29 +11:00
Jean-Marc Valin
356437048f scales down even further in bit-rate 2008-02-13 12:12:16 +11:00
Jean-Marc Valin
cb7a2a3d52 Re-ordered the parameters in the stream: [energy, pitch index, pitch gains]
Also fixed a bug that was exposed by the change (and removed some warnings)
2008-02-11 16:44:48 +11:00
Jean-Marc Valin
0e20ca0969 Enabling "plain folding" in case we don't even have enough bits for intra-frame
prediction
2008-02-11 15:33:53 +11:00
Jean-Marc Valin
7351e286c8 Everything converted to use kiss-fft. Got rid of smallft and fftwrap.
Code much leaner now.
2008-02-08 15:09:45 +11:00
Jean-Marc Valin
4d0a7d0f1b Now using an MDCT implementation I can actually understand. 2008-02-08 10:22:52 +11:00
Jean-Marc Valin
012407760c Re-enabled intra-frame prediction, which seems to have exposed a few issues
with the entropy coder.
2008-02-07 21:14:16 +11:00
Jean-Marc Valin
4c6bc884c8 "make check" now actually tried to encode and decode to see if things work
(need to have test files installed otherwise it'll just pass by default)
2008-01-31 17:34:27 +11:00
Jean-Marc Valin
4618eee092 Added a check to make sure the encoder signal matches that of the decoder 2008-01-29 08:17:50 +11:00
Jean-Marc Valin
3cfcd0594a Big mode cleanup. Keeping only one mono and one stereo mode 2008-01-18 13:56:08 +11:00
Jean-Marc Valin
a76a0b23eb Further simplified the API by passing the rate directly to the
encode function. Also, trying to properly flush the bit packer
(still some problems left).
2008-01-17 22:43:05 +11:00
Jean-Marc Valin
b35536a3b0 Enabled pure CBR, though there's still some decoder issues. 2008-01-17 16:57:18 +11:00
Jean-Marc Valin
ec71aee772 A bit of tuning and early work on bit allocation 2008-01-12 23:38:01 +11:00
Jean-Marc Valin
46014ca49a Propagating perceptual weighting around (not used yet). 2007-12-14 13:47:04 +11:00
Jean-Marc Valin
9d35ccdaea Fixed stereo version of the pitch estimator 2007-12-10 17:57:19 +11:00
Jean-Marc Valin
bf94045f41 Stereo almost works now (still need to fix the pitch estimate and add more
pulses)
2007-12-10 17:10:29 +11:00
Jean-Marc Valin
ffa13474ef Adding stereo support. Doesn't work yet, but at least it doesn't break
mono
2007-12-10 16:54:17 +11:00
Jean-Marc Valin
11f01729e6 Some cleaning up, a few less warnings and the decoder no longer does an
infinitete loop in Laplace decoding when the data is corrupted.
2007-12-09 01:19:36 +11:00
Jean-Marc Valin
fb83fb422f Very basic packet loss concealment code 2007-12-08 00:56:04 +11:00
Jean-Marc Valin
0c79f09e14 debug code 2007-12-07 18:02:56 +11:00
Jean-Marc Valin
0aa3903a4a Cheating decoder now produces the same result as the encoder 2007-12-07 15:09:58 +11:00
Jean-Marc Valin
6e9058adb9 Nearly working cheating decoder. 2007-12-07 14:59:06 +11:00
Jean-Marc Valin
269d40a5c0 Added decoder code (not working yet) 2007-12-07 11:29:45 +11:00
Jean-Marc Valin
c245a226ce minor cleanup 2007-12-06 19:14:20 +11:00