Base everything on the "standard allocation table"
Using allocation table for "standard" frame sizes
Allocation table now in bits/sample
Changing the allocator resolution to 1/8 bit
Fix for PLC crash when using large frames
Trying not to crash on bit errors
removed stupid code in transient_analysis()
Fixed stupid bug for single-sample bands
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.
Provide direct implementations ec_{enc|dec}_bit_prob() that do not require a division instead of using the normal entropy coder path. This should be exactly equivalent to the existing code.
Cleaning up VBR to be frame-size independent
RD optimisation now takes bitrate into account
Simplification to the transient detection code
More simplifications to the Viterbi code
Simplifications to the tf_res RD code
Viterbi-based RD optimization of the tf_res decisions
changing probability of first tf resolution symbol
Adaptive time-frequency resolution
Adds a range coder call to encode a single bit with arbitrary probability
Fixed a long-standing rare mismatch
Re-organised the special case for N==1
Bunch of fixes for frames of 2.5 ms.
More recombining "infrastructure"
Code for recombining bands (not enabled yet)
Removing the rest of the >32-bit PVQ code
Minor code simplifications
Doing folding from the highest freq possible
Increasing the temporal resolution of transients
Improving the transient detection
Splitting transients in time domain
Moving code to quant_band()
Tuning/cleanup of angle quantization
Getting rid of PVQ-level split
Most 5ms bands now have even width
Tuned the 5ms mode to have a band at 4 kHz and one at 8 kHz
Implemented CELT_SET_START_BAND
Support for passing your own ec state to the decoder
Support for passing your own ec state to the encoder
Saving ~1 kB by using chars for the alloc table
Sharing more code between encode and decode (bis)
Merged encoding/decoding of mono/stereo
Trying to prevent PVQ-level splits
Entropy-coding the new split parameter.
New band splitting method based on the stereo code
Stereo quantization also made more generic
Making stereo code a bit more generic
Proper use of logN and logM for the offsets
Making stereo code use [un]quant_bands() as well
Allocation adjustment code in quand_band().
Cleaning up the folding code.
API change: optional resynthesis
Fixed pitchEnd wrt to variable frame size. It should (sort of) all work now
More work on variable frame size (getting rid of FRAMESIZE() )
Changing the encoder API to add the frame size
Oops! Fixed the fixed-point build
Fix for very short frame size (M=1)
Yet another step towards variable frame size
More preparation work for variable frame size
replaced instances of mode->nbShortMdcts by the dynamic number of MDCTs (M)
Allocation table stored with BITRES accuracy based on the short block size
shortWindow hadn't been used for a while
Shrinking the MDCT's table by separately rotating by the 1/(8N) factor
Making the band definition the same at all frame sizes.
Minor tweak to the band layout offset
Re-enabled special stereo code for N=2
Bands are now (again) a multiple of the number of short MDCTs
Skipping transient shape renormalisation in the encoder because
Bump bitstream version now that we broke everything
Tuning the amount of spreading based on Koen's feedback
Improved transient_analysis() by adding one frame of memory.
Removed unnecessary calls to log2Amp()
Disabling resynthesis when not needed (need to remove folding for this to work)
Re-introducing the successive spreading rotations, but in a two-step
Corrected some non-sensical code
Converted a few double-precision constants to single precision
Making sure compute_allocation_table() doesn't overrun at lower sampling rates
version string set to 0.8.0-git
Changed compute_allocation_table() so it handles ebands that start and end in the same allocation band. Also fixed a minor C89 issue.
Fix small mode leak (forgot to free the new logN array).
Caching log2_frac(N, BITRES) in the more data to save some CPU
A few minor optimisations (compute_allocation, denormalise_bands,
A bit more tuning on the pseudo-frac-Hadamard. Also Trying to improve
Doing the spreading with a "pseudo-fractional-Hadamard" transform
fixed-point: improving accuracy of the energy prediction
fixed-point: slightly increasing the decoder accuracy again
Update the log2 approximation to accomodate the increased bit precision from bd0610d21b28b76095a49e601df44fb792b96369. This requires another term in the power series to reduce the error to the level of truncation (peak absolute error 0.621785). Also refactor the rounding bias term so that further changes to DB_SHIFT will leave the result unbiased.
fixed-point: Further reduction in mismatch
fixed-point: reducing the mismatch in the folded part
Increasing log energy resolution
Using the mean energy even when start>0
Improves fixed-point precision for quant_coarse_energy
Fix quant_bands() for start != 0
Allowing CELT to skip the low frequencies
Updating CELT_RESET_STATE to clear some fields that were "recently" added.
Getting "make dist" to work again with the files that got removed
Change name of libcelt to libcelt0
Updates celtclient to the new API.