Commit graph

322 commits

Author SHA1 Message Date
Jean-Marc Valin
a57e924f2e Removing some warnings 2010-06-27 00:53:51 -04:00
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
6b95d8fdb8 Improved code for reusing ec structures
Using the number of unallocated bytes for coarse quantization and VBR
instead the total number of bytes.
2010-06-21 21:39:44 -04:00
Jean-Marc Valin
30d5125bff No need to memset() the byte buffer 2010-06-21 17:55:28 -04:00
Jean-Marc Valin
6c3788cb53 Removing old PCL, added plc.h 2010-06-20 23:01:33 -04:00
Jean-Marc Valin
feca095e96 fixed-point: New PLC now enabled by default 2010-06-17 20:25:51 -04:00
Jean-Marc Valin
7b7f07120e fixed-point: More work on the PLC 2010-06-17 20:10:02 -04:00
Jean-Marc Valin
456eab2e4f More work on fixed-point Levinson-Durbin 2010-06-16 22:38:57 -04:00
Jean-Marc Valin
890a9c05e0 Implementing two choices for the tf resolution 2010-06-13 08:06:28 -04:00
Jean-Marc Valin
e2d5b33780 Completely disabling the tf code at low bitrate 2010-06-06 23:16:40 -04:00
Jean-Marc Valin
0a571ef92a Encoding the tf parameters after coarse energy
Also a minor cleanup to the recombining/division
2010-06-05 23:12:19 -04:00
Jean-Marc Valin
6202c746cf Fix for PLC crash when using large frames 2010-06-01 00:30:37 -04:00
Jean-Marc Valin
32589cd33e Trying not to crash on bit errors
When the pitch flag gets corrupted, make sure that pitch is actually
allowed instead of generating a bogus pitch index and crashing.
2010-05-31 21:56:12 -04:00
Jean-Marc Valin
816f893569 removed stupid code in transient_analysis() 2010-05-31 21:36:46 -04:00
Timothy B. Terriberry
43e9406201 Change ec_{enc|dec}_bit_prob to take probabilities in units of 1/65536 instead of 1/256. This allows them to use a single 16x16->32 multiply instead of a 24x8->32 multiply. Also change the time-frequency resolution flag coding to ensure that "0" is always the most-probable symbol (i.e., that prob("1")<50%), as that's where all the rounding error accumulates. 2010-05-29 23:45:28 -04:00
Jean-Marc Valin
8cc945c53a Cleaning up VBR to be frame-size independent 2010-05-29 08:07:18 -04:00
Jean-Marc Valin
7331977c29 RD optimisation now takes bitrate into account 2010-05-28 21:12:39 -04:00
Jean-Marc Valin
bdb5871bc4 Simplification to the transient detection code
Discarding the amplitude of the overlap for "frame_max"
2010-05-28 18:58:42 -04:00
Jean-Marc Valin
8823261738 More simplifications to the Viterbi code 2010-05-28 18:01:02 -04:00
Jean-Marc Valin
0ef39c9cc4 Simplifications to the tf_res RD code 2010-05-28 17:50:34 -04:00
Jean-Marc Valin
9d420c58e9 Viterbi-based RD optimization of the tf_res decisions 2010-05-28 17:26:27 -04:00
Jean-Marc Valin
581fdba936 changing probability of first tf resolution symbol 2010-05-28 06:56:23 -04:00
Jean-Marc Valin
163b76e8c4 Adaptive time-frequency resolution
Encoding the optimal tf-tradeoff for each band and then
applying it during quantization.
2010-05-27 23:56:53 -04:00
Jean-Marc Valin
9f89cab6ec Improving the transient detection
When a transient occurs in the overlap between two frames, we
now make sure that both these frames are coded as transients
2010-05-21 14:18:38 -04:00
Jean-Marc Valin
cae30df09a Getting rid of PVQ-level split
Adding one more level of band splitting so that splitting at the
PVQ encoding level is no longer necessary.
2010-05-21 00:26:03 -04:00
Jean-Marc Valin
5f96146a85 Implemented CELT_SET_START_BAND 2010-05-19 13:38:36 -04:00
Jean-Marc Valin
f5e2e32d15 Support for passing your own ec state to the decoder 2010-05-19 12:05:02 -04:00
Jean-Marc Valin
4794f2ec86 Support for passing your own ec state to the encoder 2010-05-19 11:56:57 -04:00
Jean-Marc Valin
746b2a8c63 Merged encoding/decoding of mono/stereo
Now everything is done through quant_all_bands() and quant_band().
2010-05-14 22:12:33 -04:00
Jean-Marc Valin
94216aeba4 Allocation adjustment code in quand_band(). 2010-05-10 21:27:00 -04:00
Jean-Marc Valin
d56c610cac API change: optional resynthesis
The main encode call no longer takes a pointer for the optional resynthesis.
It's now done with a call to celt_encode_resynthesis().
2010-05-07 21:20:22 -04:00
Jean-Marc Valin
ce4dd367c2 More work on variable frame size (getting rid of FRAMESIZE() ) 2010-05-07 21:20:22 -04:00
Jean-Marc Valin
017fa85775 Changing the encoder API to add the frame size 2010-05-07 21:20:22 -04:00
Jean-Marc Valin
fbd82eb8f4 Oops! Fixed the fixed-point build 2010-05-07 21:20:22 -04:00
Jean-Marc Valin
073d0bc925 Yet another step towards variable frame size 2010-05-07 21:20:22 -04:00
Jean-Marc Valin
0475267e62 More preparation work for variable frame size 2010-05-07 21:20:22 -04:00
Jean-Marc Valin
3b918bac54 replaced instances of mode->nbShortMdcts by the dynamic number of MDCTs (M) 2010-05-07 21:20:22 -04:00
Jean-Marc Valin
65ee67ac55 Making the band definition the same at all frame sizes. 2010-04-26 07:08:44 -04:00
Jean-Marc Valin
d6b79eeb7a Skipping transient shape renormalisation in the encoder because
our search can now work on vectors that don't have unit norm
2010-04-20 17:31:45 -04:00
Jean-Marc Valin
9c30de571d Improved transient_analysis() by adding one frame of memory. 2010-04-19 13:32:15 -04:00
Jean-Marc Valin
b8ba70c99b Disabling resynthesis when not needed (need to remove folding for this to work) 2010-04-18 22:10:24 -04:00
Jean-Marc Valin
628c025373 Converted a few double-precision constants to single precision 2010-04-16 20:57:56 -04:00
Jean-Marc Valin
64209a3edf A few minor optimisations (compute_allocation, denormalise_bands,
deemphasis)
2010-04-06 20:33:50 -04:00
Jean-Marc Valin
3a0bc3d95c Allowing CELT to skip the low frequencies 2010-02-25 22:46:55 -05:00
John Ridges
5378bf8253 Updating CELT_RESET_STATE to clear some fields that were "recently" added. 2010-02-12 07:08:01 -05:00
Jean-Marc Valin
6c79a9325c Getting "make dist" to work again with the files that got removed 2010-01-16 23:35:45 -05:00
Jean-Marc Valin
74128befe4 fixed-point: converted PLC filters and LPC parameters 2010-01-01 09:33:17 -05:00
Jean-Marc Valin
303b3b627e fixed-point: starting conversion of the new PLC 2009-12-30 22:40:24 -05:00
Jean-Marc Valin
07fed1bf76 Adding a safeguard against unstable LPC, so now there's no way (that I can
think of) to produce NaNs in the new PLC.
2009-12-28 07:59:42 -05:00
Jean-Marc Valin
d69c1cb37c Making new PLC code work in fixed-point even though it's still using float
arithmetic.
2009-12-28 00:34:29 -05:00