Commit graph

505 commits

Author SHA1 Message Date
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
Jean-Marc Valin
aec0ee41ab C89 friendliness 2009-12-21 00:06:12 -05:00
Jean-Marc Valin
d5f99308c9 This fixes a bug in stereo PLC (offset wasn't changed between channels) 2009-12-16 22:42:32 -05:00
Jean-Marc Valin
5a0fae53c7 PLC: Added lag windowing and constraint to synthesis energy 2009-12-14 21:19:37 -05:00
Jean-Marc Valin
e14fe9046f New LPC-based PLC code 2009-12-11 00:07:31 -05:00
Jean-Marc Valin
1ccfd3cc03 Oops, forgot to free the pitch bufer 2009-12-02 21:07:11 -05:00
Jean-Marc Valin
e465c1490a Reorganised the pitch code to simplify the PLC case and fixed a buffer overflow
introduced in Thorvald's previous patch.
2009-11-26 00:39:36 -05:00
Jean-Marc Valin
7a7c42a716 Fixing a few memory errors 2009-11-25 20:38:52 -05:00
Jean-Marc Valin
e05e7e23bb minor code cleanup 2009-11-21 23:41:26 -05:00
Jean-Marc Valin
6d584acd95 Renamed MDCT functions to avoid symbol clashes with Vorbis 2009-11-21 21:57:44 -05:00
Jean-Marc Valin
294863bbea Temporal pitch search 2009-11-08 22:36:51 +09:00
Jean-Marc Valin
7a047ea096 prevent busting at ridiculously low bit-rate VBR 2009-10-22 00:23:56 -04:00
Jean-Marc Valin
45f1110583 Making sure the VBR controller never busts the number of bytes allowed 2009-10-22 00:13:44 -04:00
Jean-Marc Valin
25767d1ca7 Better computation of the VBR rate upper bound and reducing the coarse energy
budget at low bitrate.
2009-10-21 23:25:22 -04: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
bd5d54adb8 New VBR rate controller that doesn't allow more than one frame worth of excess
bit-rate
2009-10-20 00:25:31 -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