Jean-Marc Valin
5c0c936d8f
Fine energy allocation cleanup
2010-08-31 10:11:11 -04:00
Jean-Marc Valin
6d3829f266
CELT no longer prints to stderr (unless assertions are enabled)
2010-08-27 17:52:38 -04:00
Jean-Marc Valin
c09807d3e5
Simplifies the implementation of RESET by placing all the data that needs
...
to be cleared at the end of the state structs.
2010-08-27 17:22:54 -04:00
Jean-Marc Valin
7cfb7305f4
Adds _init() functions that do not allocate the states themselves
2010-08-27 16:54:33 -04:00
Jean-Marc Valin
ca8b9928c9
Comments on encoder and decoder struct contents
2010-08-27 16:23:41 -04:00
Jean-Marc Valin
bce1dd0d75
Remove check_mode()
2010-08-27 16:10:39 -04:00
Jean-Marc Valin
d13cd1568d
Unb0rk fixed-point build
2010-08-27 16:05:01 -04:00
Jean-Marc Valin
0410e9ca81
Removing check_decoder()
2010-08-27 16:02:30 -04:00
Jean-Marc Valin
02a3527aa4
Decoder state stored in a single allocated object.
2010-08-27 16:00:01 -04:00
Jean-Marc Valin
6d131087c9
Decoder cleanup
2010-08-27 15:15:32 -04:00
Jean-Marc Valin
190b782e8c
Removing check_encoder()
2010-08-27 15:03:20 -04:00
Jean-Marc Valin
0d8eaa3368
Encoder state now stored in a single allocated object
2010-08-27 14:57:37 -04:00
Jean-Marc Valin
0695a5fbac
Simplifies convoluted/idiotic indexing.
2010-08-27 11:33:18 -04:00
Jean-Marc Valin
f67b4476a0
More IMDCT de-uglification
2010-08-27 01:32:40 -04:00
Jean-Marc Valin
e0ce2cf99d
Removing out_mem from the encoder state.
2010-08-27 00:06:30 -04:00
Jean-Marc Valin
903dbf7558
Inverse MDCT no longer keeps channels interleaved.
...
This simplifications also fixes a few bugs in the PLC (hope it didn't create some new ones).
2010-08-26 20:07:27 -04:00
Jean-Marc Valin
ab3784e99f
Small suckage reduction in compute_inv_mdcts(). More to come.
2010-08-26 18:10:09 -04:00
Jean-Marc Valin
5e7f02de2c
Moving intra decision to quant_coarse_energy()
2010-08-08 09:48:22 -04:00
Jean-Marc Valin
908958cad5
Shuffling code around -- no change to the algorithm
2010-08-07 22:15:19 -04:00
Jean-Marc Valin
9099bc36db
Bit-stream reordering
...
Coarse first, following by transient info, then spreading
2010-08-07 22:07:08 -04:00
Jean-Marc Valin
be04f5af6c
Reorganizing the VBR code
2010-08-07 21:42:03 -04:00
Jean-Marc Valin
d38d6b9aa1
Implemented variable spreading amount in the decoder
...
Decision not yet implemented in the encoder
2010-08-07 09:21:32 -04:00
Jean-Marc Valin
504fb3c189
Using the real spectral means instead of the ones
...
after inter-band prediction
2010-08-06 15:56:22 -04:00
Jean-Marc Valin
017001a512
Simplified flags encoding
2010-08-05 15:42:50 -04:00
Jean-Marc Valin
8cbea177ba
Removing pitch prediction code
2010-08-05 15:28:27 -04:00
Jean-Marc Valin
5d774e075e
Fixed "forced intensity stereo"
2010-08-04 17:17:18 -04:00
Jean-Marc Valin
129964098b
More float conversion cleanup
2010-08-04 09:13:24 -04:00
Jean-Marc Valin
ae01e119cb
Changing some constants to float
2010-08-03 21:43:41 -04:00
Jean-Marc Valin
bc272de74b
Code simplifications for log->amplitude conversion
2010-08-02 09:41:31 -04:00
Jean-Marc Valin
4409224845
Error measurement for stereo as well
2010-07-29 18:32:54 +02:00
Jean-Marc Valin
7b5a086b45
Measuring the normalized error directly within the encoder
2010-07-29 15:01:24 +02:00
Jean-Marc Valin
8d18601413
Fixing the qtheta dependency for the delta allocation
...
Removed useless code in transient_analysis()
2010-07-28 22:12:36 +02:00
Jean-Marc Valin
ac1da4f42b
Codec state simplification
...
Making the preemphasis memory an array of two, removing unused fields
2010-07-24 12:32:37 -04:00
Jean-Marc Valin
802f6eab9b
Making a bunch of things static
2010-07-23 17:02:23 -04:00
Jean-Marc Valin
617af25e5c
Cleaning up intra_decision()
2010-07-23 16:54:45 -04:00
Jean-Marc Valin
ca6533cd88
Energy quantization tuning.
...
Prediction coefficient now depends on the frame size. Also, the pdfs and means
have been adjusted and better quantized. This breaks compatibility of course.
2010-07-23 16:10:36 -04:00
Jean-Marc Valin
6bf3b0a7a1
The coarse energy budget is no longer part of the bit-stream.
...
It is now the encoder's responsability to take care of it to avoid
busting the budget.
2010-07-19 14:32:40 -04:00
Jean-Marc Valin
b1e017f58d
Error checking on the decoder side
2010-07-18 21:20:35 -04:00
Jean-Marc Valin
9d785afb67
Encoder now has a way to check whether an error has occurred
2010-07-18 09:42:05 -04:00
Jean-Marc Valin
8952c45ea5
The encoder and decoder can now process audio encoded at a higher rate
...
than what they're running at.
2010-07-16 21:48:44 -04:00
Jean-Marc Valin
85f41b20df
Some work towards being able to encode a 48 kHz stream from 32 kHz audio (incomplete)
2010-07-16 18:12:45 -04:00
Jean-Marc Valin
3b0df0dc2a
All modes based on 2.5 ms short blocks now use the same definition
2010-07-16 15:55:30 -04:00
Jean-Marc Valin
69921c4cde
Considering the end band in more places in the code
2010-07-16 15:25:30 -04:00
Jean-Marc Valin
0be05b0335
Encoding transient_time independently of the sampling rate
2010-07-16 14:23:03 -04:00
Jean-Marc Valin
223b69db02
Better support for non-48 kHz sampling rates
2010-07-16 11:47:50 -04:00
Jean-Marc Valin
af1fce93b1
Pre-emphasis coefficients now part of the mode and has a numerator as well
...
as a denominator
2010-07-16 11:05:06 -04:00
Jean-Marc Valin
e34c85a0cc
Using short blocks a bit more often now that we have variable tf resolution
2010-07-15 17:57:50 -04:00
Jean-Marc Valin
2ed5e67a2e
Handling the start band and end band in tf encoding
2010-07-13 18:18:23 -04:00
Jean-Marc Valin
525d7cfdc4
Support for adjusting the end band
2010-07-13 18:18:23 -04:00
Jean-Marc Valin
72513f3cc7
Sharing twiddle factors across all MDCTs
2010-07-07 21:26:38 -04:00