Making the library usable by other projects (install things properly, added
Tweaks for slightly improving the handling of the last byte (still not
Reverted some of Timothy's changes to the range decoding that were causing decode random decode problems at the end of the stream (but only once in a while).
Big mode cleanup. Keeping only one mono and one stereo mode
Further simplified the API by passing the rate directly to the
Update ec_dec_bits64() to correspond to the new ec_enc_bits64(). Not sure why this wasn't committed before.
Enabled pure CBR, though there's still some decoder issues.
Close to getting CBR working
Looks like the bit allocation code is mostly working. Just need to actually
Working allocation interpolation code
bit allocation wip (untested)
early code for bit-rate management
A bit of tuning and early work on bit allocation
Add ec_dec_tell() to report the same information as ec_enc_tell() decode side. Remove ec_enc_tell() and replace it with ec_enc_tellf(): just request 0 fractional bits if you want an integer value.
Add ec_enc_tellf, which can return the number of bits used to fractional precision.
Add oc_enc_tell to report an estimate of the number of bits used so far.
Doing stereo mixing adaptively based on amplitude difference.
Conversion to 18-band split and fixed a few related bugs.
oops, trying not to overflow the 64-bit max allocation.
Tuning of the stereo mode, including conversion to the 18-band split.
Stereo decoding working again (fixed a few issues in the encoder at the same
More stereo work (doing mid-side quantisation of the energy)
Some stereo work (breaks the decoder for now)
Updated the 18-band mode (mode0) to use the low-overlap MDCT
Oops, forgot to add the VQ table!
Switched to mdct mask computation
Pseudo-masking curve for the MDCT
Completed low-overlap MDCT support by reducing the synthesis
Now using 8 bands for the pitch gain, with a 128-entry codebook.
Allowing reduced overlap MDCTs as an alternative
Updated pulse coding to simpler (slightly faster) code included with
Comments/cleanup, no code change
Got the intra-band prediction/copy to work correctly with
Spreading function inside quant_bands()
Doing multiple rotation passes instead of one produces better pulse spreading.
more exp_rotation() cleanup
simplified exp_rotation()
Added a DCT in time direction when multiple MDCTs are used within the same
Propagating perceptual weighting around (not used yet).
Band energy quantisation info now in the mode directly
Working on some stability issues (appears to be solved by making the pitch
Added support for codebooks up to 64 bits.
Added ec_{enc|dec}_bits64 and ec_{enc|dec}_bits64.
Documentation fixes and a couple of other minor edits.
Fixed stereo version of the pitch estimator
Stereo almost works now (still need to fix the pitch estimate and add more
Adding stereo support. Doesn't work yet, but at least it doesn't break
Comments on the spreading function
Added a simple psychoacoustic model (still needs a lot of work).
Fixed a stupid error caused by kdevelop in the configure.ac
Some cleaning up, a few less warnings and the decoder no longer does an
code cleanup: all inverse MDCTs in the same function
Very basic packet loss concealment code
Another experimental mode with longer frames.
A bit of quality tuning, plus created a higher quality mode
No more cheating, everything fully quantised
Moving to non-multiply-free entropy coder
A bit of probability tuning to reduce bit-rate variations
Actually enabled the probability model
Decent starting point for energy probabilities
Energy is now Laplace-encoded (very poorly for now)
energy decoding partially done (cheating a bit)
More work on decoding (still cheating)
Cheating decoder now produces the same result as the encoder
Nearly working cheating decoder.
Algebraic codebook decoding (not tested yet)
Added decoder code (not working yet)
Most of the Laplace encoding works, except that ec_decode() is still not giving
More code for laplace decoding (doesn't work)
Code for encoding Laplace-distributed variables (doesn't work).
Fixed codebook entirely quantised
Doing init/reset of the entropy coder properly
Some work on index packing
Multiplier-free entropy coder
improved energy quantisation/prediction
More energy quantisation work
Quantisation of band energies (adding files)
Quantisation of energies
conversion to modes complete
Converting the code to use the modes instead of global arrays.
Adding mode infrastructure (still incomplete)
Compressing the innovation along the pitch direction
Allowing to add pulses on top of intra-band prediction
Fixed intra-frame prediction (added sign)
Code for converting back and forth between pulse vectors and the correspondig
Some improvements to the pitch period estimation