Commit graph

445 commits

Author SHA1 Message Date
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
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
d35d677543 Constrain the pitch gain to prevent potential instabilities. 2009-10-16 23:16:47 -04:00
Jean-Marc Valin
ece94a0475 Improved error handling, and implemented celt_strerror() 2009-10-16 07:31:28 -04:00
Jean-Marc Valin
80ed147663 The number of channels is now set when creating the states rather than when
creating the mode. This means that the same mode can be shared for mono and
stereo.
2009-10-15 21:45:32 -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
a9947c480c merged the code for quant_bands() and unquant_bands() 2009-10-08 23:10:45 -04:00
Jean-Marc Valin
8861955d86 Doing the mdct shaping in the normalised domain, so that energy is preserved 2009-10-04 22:43:27 -04:00
Jean-Marc Valin
e12017ee2c moved the de-emphasis code to a separate function (shared between encoder and
decoder), declared a few things static
2009-10-03 13:57:31 -04:00
Jean-Marc Valin
de67858765 Simplifying the IMDCT 2009-10-03 10:36:27 -04:00
Jean-Marc Valin
aa4f58bde9 Simplifications to the code 2009-10-03 09:27:59 -04:00