Commit graph

97 commits

Author SHA1 Message Date
Jean-Marc Valin
a01106587c Improved quality of small frame sizes at low bitrate.
Adding a temporal energy floor to prevent extremely small values when there's
only one bin in the band.
2010-06-23 15:22:54 -04:00
Jean-Marc Valin
47ad4a0938 Doing the log2Amp() just in one place 2010-06-05 01:18:40 -04:00
Jean-Marc Valin
c4ac57023c Fixed a long-standing rare mismatch
In cases where the coarse energy quantizer wasn't able to
go down fast enough, we could have a negative error that didn't
get clamped.
2010-05-26 15:04:41 -04:00
Jean-Marc Valin
b450ed48ae Removed unnecessary calls to log2Amp() 2010-04-18 22:47:58 -04:00
Jean-Marc Valin
8974f00d53 fixed-point: improving accuracy of the energy prediction 2010-03-20 00:41:39 -04:00
Jean-Marc Valin
c7b01bad50 fixed-point: slightly increasing the decoder accuracy again 2010-03-19 23:17:28 -04:00
Jean-Marc Valin
bd0610d21b Increasing log energy resolution 2010-03-13 10:04:19 -05:00
Jean-Marc Valin
5503f11a3d Using the mean energy even when start>0 2010-03-12 22:00:10 -05:00
Jean-Marc Valin
210ccafaff Improves fixed-point precision for quant_coarse_energy 2010-03-11 22:20:19 -05:00
Jean-Marc Valin
3a0bc3d95c Allowing CELT to skip the low frequencies 2010-02-25 22:46:55 -05:00
George de Vries
6fd0270621 Fixing (read) array overrun for 1024-sample frames. 2009-12-02 20:59:44 -05:00
Jean-Marc Valin
ab4dcc5c90 Allow coarse energy to take almost all the bits. Also, fixed a some issues with
the VBR rate controller.
2009-10-21 07:08:27 -04:00
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
bf2398b049 first step for removing the number of channels from the mode 2009-10-15 07:28:19 -04:00
Jean-Marc Valin
e2b7616e8a Fixing a few bugs introduced in the energy interleaving changes and due to
side effects of "continue" statements.
2009-06-17 22:39:46 -04:00
Jean-Marc Valin
b0b23a3579 Interleaving the left and right final fine energy bits 2009-06-17 21:24:33 -04:00
Jean-Marc Valin
fb1b4dae9f Interleaving the left and right fine energy 2009-06-17 20:37:45 -04:00
Jean-Marc Valin
1b7e9c419a intealeaving the left and right coarse energy 2009-06-17 08:02:36 -04:00
Jean-Marc Valin
66fb246219 removing redundant calls to exp2() 2009-06-14 12:31:33 -04:00
Jean-Marc Valin
095abafcb7 Simplifying the stereo energy quantisation functions now that energy is
de-interleaved
2009-06-14 09:29:51 -04:00
Jean-Marc Valin
83c26e713c Now storing the band energies in de-interleaved format when doing stereo 2009-06-14 09:19:51 -04:00
Jean-Marc Valin
7a56741b2e removing redundant calls to log2() 2009-06-13 23:02:54 -04:00
Jean-Marc Valin
a76a5e8f0c Better ebits rounding and making it possible to add remaining ebits even to
bands that weren't rounded down.
2009-06-10 22:46:27 -04:00
Jean-Marc Valin
52cb5fb3f6 Adding extra fine bits only when we have rounded down in the allocation 2009-06-10 08:08:55 -04:00
Jean-Marc Valin
24c25a23d1 Folding, coarse energy, source cleanup 2009-06-09 11:56:59 -04:00
Jean-Marc Valin
39710536fc This makes it possible to use the bits left after PVQ for fine energy. 2009-06-09 00:52:16 -04:00
Jean-Marc Valin
695ab70027 Minor simplification to the fine energy code 2009-06-07 23:54:22 -04:00
Jean-Marc Valin
d8dcd244ab This simplifies the energy quantisation by converting to the log2() scale
directly instead of converting to dB and later dividing by 6.
2009-06-07 13:01:25 -04:00
Gregory Maxwell
dc67fa9a4c Handle malloc failure in mode_create gracefully without leaking memory. 2009-06-04 21:51:12 -04:00
Jean-Marc Valin
d1d740563a Should be enough to handle signals with a 144 dB (24-bit) dynamic range 2009-05-23 00:07:08 -04:00
Gregory Maxwell
888d8ce939 VBR support. VBR API and VBR support in celtenc. 2009-05-21 22:23:25 -04:00
Jean-Marc Valin
32ec58cc3e Dynamically selecting intra energy based on energy variations from the previous
frame
2009-05-01 21:28:58 -04:00
Jean-Marc Valin
18a3b79d24 Add support for intra-coding of the coarse energy. 2009-05-01 19:58:55 -04:00
Gregory Maxwell
54547f16d5 Miscellaneous comment, copyright notice, readme updates. 2009-02-16 19:52:02 -05:00
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