More flexible energy quantisation with nearly no penalty.
Remove multiplier-free version since we don't need it
fixed leaked ritrev table
Everything converted to use kiss-fft. Got rid of smallft and fftwrap.
Split the radix functions into forward and backward versions, removed the
Made pre-computed twiddles the same for forward and inverse FFT
Changed ordering of real FFT freq data to something more aligned (it's not
Fixed incorrect assumption about the number of bytes returned by the
Real FFT cleanup, plus some testcases
Now using an MDCT implementation I can actually understand.
Re-enabled intra-frame prediction, which seems to have exposed a few issues
Add a test for tell(). Turns out we can make it fail by writing zeros.
Fix reporting of bit-rate in decoder
Fixed a typo and removed an old warning from speexenc. Also, using more useful
couple fixes to Ogg encoder/decoder
celtenc and celtdec work for stereo as well.
oops, forgot the makefile
bit of cleaning up, default sampling rate
Got the Ogg encoder and decoder to (barely) work.
oops, type safety issue resolved
clean up... oh and actually committed the header definition
Fixed the default int32 type which was wrong on amd64 (and added testcase).
"make check" now actually tried to encode and decode to see if things work
Moving everything to the same type abstraction (sort of).
type abstraction header and header definition (still incomplete)
Added a check to make sure the encoder signal matches that of the decoder
remove prob{enc,dec,mod} that were no longer needed
testcase for 32-bit pulse encoding/decoding
Moved the content of libentcode into libcelt to reduce dependencies,
Bit of cleaning up in the byte dumping part. Making use of any remaining bit(s)
Remove end-byte handling to allow arbitrary padding with zeros for CBR.
Actually free test data vectors in the new random stream tests.
Fix the bug that was causing the last byte of the stream to be returned incorrectly, as well as undo jm's reversion, which can cause ec_dec_tell() to operate incorrectly at the end of the stream.
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