prevent busting at ridiculously low bit-rate VBR
Making sure the VBR controller never busts the number of bytes allowed
Better computation of the VBR rate upper bound and reducing the coarse energy
Enhancements the fixed-point approximations of non-linear functions.
Allow coarse energy to take almost all the bits. Also, fixed a some issues with
Making the multiplication in normalise_residual() produce a 32-bit result just
Accuracy improvements to the fixed-point celt_rsqrt().
This should prevent a rare divide-by-zero in the pitch gain code
New VBR rate controller that doesn't allow more than one frame worth of excess
fixed a few trivial bugs: exporting celt_strerror(), changed DB_SCALING to a
Removed the _t from all the celt*_t types to avoid clashing with POSIX
Updated copyright notices
Changed all the celt*int*_t types to remove the _t suffix, which is reserved
Constrain the pitch gain to prevent potential instabilities.
Now using a unique ID for CELT_ALLOC_FAIL
Improved error handling, and implemented celt_strerror()
The number of channels is now set when creating the states rather than when
first step for removing the number of channels from the mode
Adjusting the allocation for stereo directly in the alloc function rather than
merged the code for quant_bands() and unquant_bands()
Renamed mix_pitch_and_residual() to normalise_residual(), after minor
Further simplifications to mix_pitch_and_residual() (which no longer does
Doing the mdct shaping in the normalised domain, so that energy is preserved
making compute_ebands() a tiny bit less stupid.
moved the de-emphasis code to a separate function (shared between encoder and
Simplifications to the code
more stereo simplifications
No longer interleaving channels of the normalised spectrum. Also fixed the
simplifications to the stereo code
Fix for some test program compat and an assertion that didn't make sense anymore
Demoved the divisions from the inner pitch prediction loops, bumped the version
Fix for folding_decision() in stereo mode and more cleaning up of the code
Fix stereo mismatch problem
Bringing back min_bins=3 for now
Tuning the spreading rotations
More simplifications from denorm pitch
Removed code that is no longer necessary with denorm pitch and spreading
enabling denorm pitch only at low bit-rate
fixed-point: denorm pitch converted
denorm pitch works in fixed-point (though there's still some floats left)
doing pitch in denormalized domain
Only calling intra_fold() when there's no pulse allocated
Re-introducing the successive rotations as a way to control low-bitrate
Better fading for PLC: no fading for the first loss, muting after 6
Disabling some checks for the C55
Making it possible to use the C64x FFT
Forcing side to be orthogonal to mid for N=2. This saves one degree of freedom.
Making sure each band has a width that's a multiple of the number of MDCTs
Fixes typo in C6x macro.
Allocating enough mem in celtenc/celtdec to handle 1024-sample frames
This fixes a VBR bug introduced by raw bits. We should not write any raw
Changing some code to use BITRES directly instead of its value.
Raw bits encoding/decoding functions renamed to *_raw() and re-introducing
Raw bits enabled for the multiply-free range coder too.
Change end-of-stream handling in the range coder.
Reducing the size of the pulses->bits cache by restricting the number of pulses
C89 compatibility fixes for pseudo-stack mode.
Bump version number to 0.6.1
Allocating 100k for the pseudo stack so we're sure to be (more than) safe
ietf doc: Last minute changes to the drafts
Clarifying the transient time-domain pre-emphasis and energy prediction to
Updating draft to match latest code changes
Using normalised M/S stereo data for folding and use separate folding gains
This patch makes it safe to call the encode / decode functions with a NULL pointer in place of the pcm buffer.
Using MS stereo for all bands, fixing a few bugs in the stereo folding
ietf doc: clarifications
Allowing frame sizes up to 1024, with pitch enabled only up to 512
Most suggestions by Stefan Sayer.
Suggestions/corrections by Stefan Sayer.
removed useless comments
ietf doc: stereo and other details
Making real sure not to bust the pseudo-stack even for weird configurations
ietf doc: more corrections
ief doc: Moving allocation matrix interpolation to the "Modes" section
ietf doc: removed duplicate paragraph in allocation section
ietf doc: An initial attempt at explaining the allocation machinery.
ietf doc: fixed a few minor things that were broken in the last changes
Tuning the folding gain to be higher when there's only one pulse and lower
ietf stuff: cwrs and split.
ietf doc: s/bytes/octet/
ietf doc: fixing up references, removed misleading comments in rangedec.c
ietf doc: range decoder, minor corrections
ietf doc: description of the range encoder (and a few misc fixes)
Increasing allocation to the low-mid frequencies
ietf doc: spellchecking pass
ietf doc: energy decoding, build script, misc stuff
ietf doc: folding, VBR, misc
ietf doc: more source code formatting changes, got rid of float_cast.h
ietf doc: cleaning up the build
Some unusual frame sizes could run the pseudo-stack out of memory in fixed point mode.