Commit graph

60 commits

Author SHA1 Message Date
Jean-Marc Valin
c18fb1d031 Added celt_encoder_ctl() and CELT_SET_COMPLEXITY 2008-09-30 07:36:54 -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
b4ce40cb55 Fixing the manual stack handling code 2008-09-19 11:50:50 -04:00
Jean-Marc Valin
58b3727fcf exp() and log() are faster than pow() and log10() for dB conversion 2008-08-30 14:53:44 -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
Jean-Marc Valin
4117ff0275 Preventing encoder/decoder mismatch when coarse energy budget is busted 2008-08-05 22:03:34 -04:00
Jean-Marc Valin
9c70906fdb Changing the allocation algorithm to better take into account the fixed cost
per frames for each mode.
2008-08-03 22:07:06 -04:00
Jean-Marc Valin
9eba823cf7 Turns out that the worse case of the vector split is the same as that of the
pulse split. Also, added an allocation line for even higher bit-rates
2008-08-02 20:51:44 -04:00
Jean-Marc Valin
6775de3eae Unified allocation of fine energy and pulses. 2008-08-02 08:14:42 -04:00
Jean-Marc Valin
c890b58b69 Completed the separation of coarse and fine energy quantisation 2008-08-01 22:26:49 -04:00
Jean-Marc Valin
7364e758ed Split coarse and fine energy quantisation 2008-08-01 00:11:25 -04:00
Jean-Marc Valin
4c6ee567ee Preventing encoder-decoder mismatch when energy values are too large to be
represented by the laplace encoder (would have a probability of zero due
to finite precision)
2008-05-27 22:17:13 +10:00
Jean-Marc Valin
21f2666155 Preventing some encode/decoder mismatch situations at low bit-rate. Also, some
simplifications to the energy encoding.
2008-05-22 16:49:38 +10:00
Jean-Marc Valin
ad6371906a Implemented rate-dependant allocation for the fine energy quantisation. 2008-05-07 13:44:39 +10:00
Jean-Marc Valin
eaeb0b7788 Better value for prediction coef beta 2008-04-28 15:57:03 +10:00
Jean-Marc Valin
4ce9205f38 Optimisation: caching the divisions used in the Laplace encoder. 2008-04-23 13:42:10 +10:00
Jean-Marc Valin
bf9040b475 Just commenting -- nothing to see. 2008-03-27 18:05:01 +11:00
Jean-Marc Valin
45a7ab5238 Optimisation: got rid of about 10% of the 32-bit divisions by using ec_enc_uint
in energy quantisation when possible.
2008-03-27 15:41:38 +11:00
Jean-Marc Valin
98c86c7885 Trying to clean up celt_ilog2() vs. EC_ILOG a bit. 2008-03-27 08:40:45 +11:00
Jean-Marc Valin
2282383434 fixed-point: added cheap celt_div() division using a reciprocal 2008-03-22 21:17:45 +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
a82dfdd240 Adjusting/fixing warnings 2008-03-13 23:01:55 +11:00
Jean-Marc Valin
31b79d1993 Changed definition of VARDECL to make it more flexible. No actual code change. 2008-03-12 17:17:23 +11:00
Jean-Marc Valin
d748cd5570 Another C90-fying pass. Fixed some warnings in the process. 2008-03-01 07:27:03 +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
8b2a59235f fixed-point: energy quantisation is entirely converted now. 2008-02-29 00:32:51 +11:00
Jean-Marc Valin
adf87e261c fixed-point: more energy quantisation stuff. 2008-02-29 00:15:10 +11:00
Jean-Marc Valin
47bf175f29 fixed-point: a few more bits converted from the energy quantisation. Almost done 2008-02-29 00:07:00 +11:00
Jean-Marc Valin
68b02b1025 fixed-point: copied the exp2 implementation from Speex, using it for dB2Amp() 2008-02-28 23:37:26 +11:00
Jean-Marc Valin
2eaba8ac1f fixed-point: log approximation 2008-02-28 22:14:54 +11:00
Jean-Marc Valin
98193470ec fixed-point: unquant_energy_mono() has received the fixed-point code from
quant_energy_mono()
2008-02-28 17:46:33 +11:00
Jean-Marc Valin
d03162010e fixed-point: second check-point on quant_energy_mono() 2008-02-28 16:52:44 +11:00
Jean-Marc Valin
43b3537d38 fixed-point: first check-point on quant_energy_mono() conversion 2008-02-28 16:41:56 +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
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
508de38d22 Trying to be nice with 16-bit chips. 2008-02-26 10:28:20 +11:00
Jean-Marc Valin
9a0bba183c Everything should now compile with a C89 compiler. 2008-02-20 14:08:50 +11:00
Jean-Marc Valin
02fa913c32 More C89 fixes, making sure to include config.h from all source files. 2008-02-20 12:09:29 +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
6da36c0452 Experimental ld51 mode (needs more work) 2008-02-15 14:20:29 +11:00
Jean-Marc Valin
0df0eb4c67 doing the folding properly. 2008-02-13 16:00:10 +11:00
Jean-Marc Valin
356437048f scales down even further in bit-rate 2008-02-13 12:12:16 +11:00
Jean-Marc Valin
c9cc6d3e34 Introducing a (very) crude budget for the energy encoder. 2008-02-13 11:37:41 +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
66fa639c53 More flexible energy quantisation with nearly no penalty. 2008-02-11 10:53:11 +11:00
Jean-Marc Valin
a4833ffada Stereo decoding working again (fixed a few issues in the encoder at the same
time)
2008-01-10 15:34:00 +11:00
Jean-Marc Valin
021478e252 More stereo work (doing mid-side quantisation of the energy) 2008-01-09 15:31:43 +11:00