Moved the application of the pitch gain to (un)quant_bands(). This doesn't
Spec file
mode parameters in ietf draft
cross-referencing the source code
Details on the reference implementation
Added all the source files to the draft
More text in the IETF draft
Some details on the MDCT, fixed a bunch of warnings
Test whether the compiler supports -fvisibility=hidden
Unit tests now #include the relevant source files to prevent symbol visibility
Miscellaneous compiler warning cleanups.
IETF draft for CELT itself
Fix ectest to not check a case which isn't guaranteed to work, and which we don't use.
Ensure that log2_frac() is _really_ an upper bound.
Fix log2_frac() to return an upper bound, not a lower bound.
Compute the real maximum required bits for a split.
Add a SET_LTP call to allow on the fly activation/deactivation of the long term
Minor pitch handling cleanups.
New VQ search is now enabled by default after fixing the last remaining issues:
Fix optional synthesis bug in fixed point mode.
Fixes two bugs in get_required_bits() for the split cwrs case.
Fix a case where the new search can leave us with no pulse left
Cleaned up some junk left from the last allocator change
New VQ search nearly fixed-point ready
New VQ search works in fixed-point even though there's still some float ops left
Experimental code to improve both the speed and accuracy of the VQ search
alg_quant() now handles the sign of X[] separately from the quantisation
Support for 96kHz.
Getting rid of more stuff left from the Speex draft
Fixes a denormalisation issue occuring when multiple packets are lost and the
Celtclient improvements: A usable usage message and correct usage of the jitter buffer.
fixed test for cases where M_PI isn't defined
Bit of cleaning up and comments
The fold bit can now be used by the encoder and decoder (encoder still needs
Disabling the folding sign bit
experimental code for choosing whether to apply folding for the high bands
In some conditions the allocation could run out of bits and attempt to allocate a negative number of pulses.
Fixed use of the jitter buffer in celtclient.
Latest psychoacoustics work -- still highly experimental
Fixes some issues in the MF range coder on systems were ints are 16 bits.
re-enable support for resizable buffers in the range coder
Encoder now writes data directly in the user buffer
Multiply-free version of the range coder. Haven't yet decided which version to
Tonality estimation code
Add support for a complexity argument to both testcelt and celtenc.
fix STATIC_MODES for stereo (with a few fixes by JMV)
celt_encoder_ctl() is a bit more type-safe.
Fixed support for STATIC_MODES
Removing the 64-bit part of the range coder.
Fix stereo support; correctly deallocate bits_stereo.
lookahead no longer defined when creating a mode
fix stack handling
compute_alloc_cache() isn't defined when STATIC_MODES is.
s/unsigned/celt_uint32_t/
API: Change celt_encode and celt_encode_float so that they take an optional synthesis parameter after the PCM input. If optional_synthesis is null the encoder will be able to save some computation. If optional_synthesis is non-null if will be used to write the encoder's expectation of the decoder's output. Synthesis may alias the input pcm, so calling the encoder with the same buffer twice will achieve the old behavior. Remove 'restrict' from the CTL prototype.
Added celt_encoder_ctl() and CELT_SET_COMPLEXITY
Fix support for sample rates between 32kHz and 40kHz (lower rates are currently rejected, but work okay).
Supporting large prime factors in the FFT
Allow all even frame sizes, change the selection of number of short MDCTs per frame to be more intelligent.
Fix support for 64 sample frames.
Add an additional 1/16th bit of padding to avoid budget busting on some inputs.
Unb0rked a fixed-point regression caused in 7bb339d
Merge branch 'cwrs_speedup'
Change cwrsi() to operate on rows of U instead of columns.
Split the last pulse out of the alg_quant() main loop.
Dividing by a constant is never good
Removed a bunch of divides from the fine energy quantisation
Some bit-allocation tuning
Fixing the manual stack handling code
Merge branch 'cwrs_speedup' (derf's cwrs changes)
Change CWRS indexing to use Pyramid VQ's magnitude ordering.
Better use of the arithmetic operators
Converted everything to 32-bit CWRS (using split after that)
Generate slightly more accurate WMOPS figures
One-at-a-time allocator now uses direct feedback from ec_*_tell().
Simplifications to the new allocator
At least attempting to use all the bits.
Simplified allocation by doing it one band at a time, with memory
Added Erik de Castro Lopo's float_cast.h to use lrintf() when available. Also
exp() and log() are faster than pow() and log10() for dB conversion
Added signalling bits for enabling/disabling pitch, short blocks, and folding.
Fixed a bunch of fixed-point overflows on insanely hot signals by changing
Added hooks for tuning pulses and fine energy quant
Adding a floating point interface to encode and decode
Fixed fixed-point compilation error.
Solved an encoder/decoder mismatch happening when there's no pulse in the first
Preventing encoder/decoder mismatch when coarse energy budget is busted
some tuning to fine energy allocation and prevent it from going above 7 bits
Changing the allocation algorithm to better take into account the fixed cost
Merged compute_allocation_table() and compute_energy_allocation_table()