Commit graph

50 commits

Author SHA1 Message Date
Jean-Marc Valin
328b8bd7fc fixed a few trivial bugs: exporting celt_strerror(), changed DB_SCALING to a
shift and removed the chec for DISABLE_STEREO in the mode creation.
2009-10-19 19:07:38 -04:00
Jean-Marc Valin
234969c903 Removed the _t from all the celt*_t types to avoid clashing with POSIX 2009-10-17 22:12:42 -04:00
Jean-Marc Valin
8b2ff0da5a Updated copyright notices 2009-10-17 21:40:10 -04:00
Jean-Marc Valin
30f7f813ea Changed all the celt*int*_t types to remove the _t suffix, which is reserved
by POSIX. The other _t types that are not part of the API are still there
for now. Also, got rid of all that was left of the 64-bit types.
2009-10-17 14:35:13 -04:00
Jean-Marc Valin
43dd8a5812 Allocating 100k for the pseudo stack so we're sure to be (more than) safe 2009-07-13 17:50:59 -04:00
Jean-Marc Valin
822ac747bc Making real sure not to bust the pseudo-stack even for weird configurations 2009-07-04 21:58:30 -04:00
Gregory Maxwell
7d8803b498 Some unusual frame sizes could run the pseudo-stack out of memory in fixed point mode. 2009-07-01 19:54:37 -04:00
Jean-Marc Valin
5aaf12333e Enabling more than 128 pulses for N=3 and N=4. 2009-05-26 21:50:38 -04:00
Gregory Maxwell
0ac2b2fe0b The change to FLOAT2INT16 in a8734e0f would break float input for
fixed point compilation because SCALEIN is a no-op in fixed point
mode but the float interface is still normally +/- 1.0.

This patch adds a seperate define for the scaling factor so people
can adjust it for unusual input levels.
2009-05-21 23:08:46 -04:00
Gregory Maxwell
8842fdee21 Fixing stereo: Do not attempt to use more bits than are available.
This change breaks the bitstream.

Make the first frame out of the encoder an intra-frame. (While not required this may help
in the case that the decoder has old state laying around, and it shouldn't hurt)
2009-05-05 07:31:44 -04:00
Gregory Maxwell
242eee35a8 Enlarge CELT pseudo-stack for floating point unless an architecture specific value
has been set. This fixes a crash bug for some platforms with 512 sample frames and stereo.
2009-02-03 16:07:01 -05:00
Jean-Marc Valin
c24b518fb0 Some bit-allocation tuning 2008-09-19 16:49:26 -04:00
Jean-Marc Valin
453ccd829a Generate slightly more accurate WMOPS figures 2008-09-12 20:52:27 -04:00
Jean-Marc Valin
5c3bc67959 Fixed a bunch of fixed-point overflows on insanely hot signals by changing
the time-domain representation from Q14 to Q12 (Q29 to Q27 using the
standard convention).
2008-08-28 23:34:24 -04:00
Gregory Maxwell
5f2a74b38b Adding a floating point interface to encode and decode 2008-08-12 00:14:33 -04:00
Jean-Marc Valin
ef0d5f15c7 Further simplifications to the forward mdct 2008-04-22 09:49:22 +10:00
Jean-Marc Valin
eac9970c94 added fixed_c6x.h 2008-04-15 21:31:42 +10:00
Jean-Marc Valin
821945d97c Defining IMUL32 for 32x32=>32 int multiplications and using it in the range
coder
2008-04-10 13:24:48 +10:00
Jean-Marc Valin
bd2828f64b Decision on whether to use pitch is now taken only based on energy in the
first three bands (instead of total MDCT window energy)
2008-03-26 08:10:27 +11:00
Jean-Marc Valin
d9584dbafc properly defined EPSILON for the float case 2008-03-26 00:00:18 +11:00
Jean-Marc Valin
f5b0587bd2 s/ROUND/ROUND16/ 2008-03-21 10:46:17 +11: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
d857ac48de Using reciprocal approximation instead of full 32-bit division in alg_quant() 2008-03-12 13:26:37 +11:00
Jean-Marc Valin
72e8003f75 Added macro definitions for the TI C5x family (untested) 2008-03-12 10:16:26 +11:00
Jean-Marc Valin
c209c342bf fixed-point: defined HALF32() and used it for the forward mdct. 2008-03-07 17:50:45 +11:00
Jean-Marc Valin
03892c18d4 fixed-point: finished intra_prediction(). No float ops left in vq.c 2008-03-07 17:25:47 +11:00
Jean-Marc Valin
b624cdd2ce fixed-point: masking curve computation now converted. ***Fixed a bug in the
handling of the left side slope of the spreading function (right-side coef
was used)
2008-03-05 13:40:20 +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
f675adce51 fixed-point: First check-point in alg_quant() conversion 2008-02-28 12:15:17 +11:00
Jean-Marc Valin
a02ca1ee35 fixed-point: Added a ROUND() operator, no real change to the code 2008-02-28 11:33:22 +11:00
Jean-Marc Valin
9d8d9b3f37 fixed-point: compression factor (alpha) now a 16-bit value (still internally
converted to float though)
2008-02-27 16:17:39 +11:00
Jean-Marc Valin
ff74e396e4 fixed-point: converted compute_pitch_gain() and removed the energy-based
weighting that didn't seem to help anyway.
2008-02-27 15:35:43 +11:00
Jean-Marc Valin
5d56183404 fixed-point: log-energy for previous frame now a 16-bit value. This currently
intruduces a bit of an encoder-decoder mismatch (Q8 in dB), but it'll be
reduced when the interals of quant_energy_mono() are properly converted to
fixed-point and oldEBands gets rounded instead of truncated.
2008-02-27 11:59:05 +11:00
Jean-Marc Valin
42074389bd fixed-point: pre/de-emphasis converted. 2008-02-27 11:08:53 +11:00
Jean-Marc Valin
2805a14eca fixed-point: celt_pgain_t now a 16-bit value (Q15) 2008-02-26 17:02:08 +11:00
Jean-Marc Valin
5f09ea5659 celt_mask_t for masking curves 2008-02-26 16:43:04 +11:00
Jean-Marc Valin
017d4455da pitch gain is now celt_pgain_t 2008-02-26 16:19:03 +11:00
Jean-Marc Valin
b60340f7e3 fixed-point: band energy now a 32-bit value. It might have (barely) fix into
16-bit, but at this point, it's not worth the trouble and loss of accuracy.
2008-02-26 15:41:51 +11:00
Jean-Marc Valin
e901fe35b8 fixed-point: added a celt_ener_t type for band energy. 2008-02-26 14:46:26 +11:00
Jean-Marc Valin
2fa8affdc5 fixed-point: celt_norm_t now a 16-bit value. 2008-02-26 12:21:58 +11:00
Jean-Marc Valin
b4dfce4665 fixed-point: Using a NORM_SCALING of 16384, sig_norm_t is still a float though. 2008-02-25 17:41:30 +11:00
Jean-Marc Valin
5c032a4cb4 fixed-point: celt_sig_t now a 32-bit value. 2008-02-25 14:55:09 +11:00
Jean-Marc Valin
49ca99efa5 fixed-point: initial support for using the fixed-point MDCT (rest is still all
float)
2008-02-25 14:12:10 +11:00
Jean-Marc Valin
18ddc02afd Separating types for normalised vs. denormalised data paths 2008-02-22 14:24:50 +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
abe043f0a1 Moving everything to the same type abstraction (sort of). 2008-01-31 14:26:29 +11:00
Jean-Marc Valin
f8db800c44 Added support for codebooks up to 64 bits. 2007-12-11 14:52:56 +11:00
Jean-Marc Valin
6f7e83d8f4 Pre-emphasis, plus a few minor tweaks 2007-12-01 00:36:41 +11:00
Jean-Marc Valin
14191b3ccd Added pitch analysis. Doesn't crash, but otherwise untested. 2007-11-30 12:15:49 +11:00
Jean-Marc Valin
63590897db Initial commit with the autotools stuff and files taken from Speex and Vorbis. 2007-11-29 17:01:16 +11:00