- Aug 02, 2011
-
-
Gregory Maxwell authored
-
- Jul 29, 2011
-
-
Jean-Marc Valin authored
-
- Mar 03, 2011
-
-
These were used because the entropy coder originally came from outside libcelt, and thus did not have a common type system. It's now undergone enough modification that it's not ever likely to be used as-is in another codec without some porting effort, so there's no real reason to maintain the typedefs separately. Hopefully we'll replace these all again somedate with a common set of Opus typedefs, but for now this will do. This fixes an issue caused by commit 6c8acbf1, which moved the ec_ilog() prototype from entcode.h to ecintrin.h, where the ec_uint32 typedef was not yet available. Thanks to John Ridges for the report.
-
- Feb 10, 2011
-
-
Jean-Marc Valin authored
Got authorization from all copyright holders
-
- Feb 06, 2011
-
-
This fixes a number of issues for platforms with a 16-bit int, but by no means all of them. The type change for ec_window (for platforms where sizeof(size_t)==2) will break ABI (but not API) compatibility with libsilk and libopus, and reduce speed on x86-64, but allows the code to work in real-mode DOS without using the huge memory model, which is useful for testing 16-bit int compliance.
-
- Feb 04, 2011
-
-
This unifies the byte buffer, encoder, and decoder into a single struct. The common encoder and decoder functions (such as ec_tell()) can operate on either one, simplifying code which uses both. The precision argument to ec_tell() has been removed. It now comes in two precisions: ec_tell() gives 1 bit precision in two operations, and ec_tell_frac() gives 1/8th bit precision in... somewhat more. ec_{enc|dec}_bit_prob() were removed (they are no longer needed). Some of the byte buffer access functions were made static and removed from the cross-module API. All of the code in rangeenc.c and rangedec.c was merged into entenc.c and entdec.c, respectively, as we are no longer considering alternative backends. rangeenc.c and rangede.c have been removed entirely. This passes make check, after disabling the modes that we removed support for in cf5d3a8c.
-
- Dec 23, 2010
-
-
Timothy B. Terriberry authored
ec_byte_read() ec_byte_read_from_end() had different return types. ec_dec_bits() was storing its return value as int instead of ec_uint32, which will break if int is only 16 bits.
-
- Dec 21, 2010
-
-
Timothy B. Terriberry authored
This simplifies a good bit of the error handling, and should make it impossible to overrun the buffer in the encoder or decoder, while still allowing tell() to operate correctly after a bust. The encoder now tries to keep the range coder data intact after a bust instead of corrupting it with extra bits data, though this is not a guarantee (too many extra bits may have already been flushed). It also now correctly reports errors when the bust occurs merging the last byte of range coder and extra bits. A number of abstraction barrier violations were cleaned up, as well. This patch also includes a number of minor performance improvements: ec_{enc|dec}_bits() in particular should be much faster. Finally, tf_select was changed to be coded with the range coder rather than extra bits, so that it is at the front of the packet (for unequal error protection robustness).
-
- Oct 17, 2010
-
-
Jean-Marc Valin authored
-
- Sep 11, 2010
-
-
Jean-Marc Valin authored
-
- Aug 27, 2010
-
-
Jean-Marc Valin authored
-
- Aug 02, 2010
-
-
Jean-Marc Valin authored
-
- Jul 19, 2010
-
-
Jean-Marc Valin authored
-
- May 30, 2010
-
-
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.
-
- May 27, 2010
-
-
Jean-Marc Valin authored
-
- Oct 24, 2009
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
- Oct 18, 2009
-
-
Jean-Marc Valin authored
-
- Jul 26, 2009
-
-
Jean-Marc Valin authored
original ec_encode_bin()/ec_decode_bin() to optimize performance when ft is a power of two.
-
- Jul 23, 2009
-
-
Jean-Marc Valin authored
Making it so all the information encoded directly with ec_enc_bits() gets stored at the end of the stream, without going through the range coder. This should be both faster and reduce the effects of bit errors. Conflicts: tests/ectest.c
-
- Feb 04, 2009
-
-
Gregory Maxwell authored
Signed-off-by:
Timothy B. Terriberry <tterribe@xiph.org>
-
- Dec 21, 2008
-
-
When I removed the special case for EC_ILOG(0) in commit 06390d08, it broke ec_dec_uint() with _ft=1 (which should encode the value 0 using 0 bits). This feature was tested by ectest.c, but not actually used by libcelt. An assert has been added to ec_dec_uint() to ensure that we don't try to use this feature by accident. ec_enc_uint() was actually correct, but support for this feature has been removed and the assert put in its place.
-
- Oct 05, 2008
-
-
Jean-Marc Valin authored
-
- Apr 28, 2008
-
-
Jean-Marc Valin authored
of range.
-
- Mar 22, 2008
-
-
Jean-Marc Valin authored
required) and using it in ec_{en|de}c_bits()
-
Jean-Marc Valin authored
(and fix for celt_div with 16-bit numerator on a 16-bit CPU)
-
- Feb 20, 2008
-
-
Jean-Marc Valin authored
-
- Jan 28, 2008
-
-
Jean-Marc Valin authored
especially now that we have a custom version of that code anyway. Moved the test code to tests/
-
- Jan 17, 2008
-
-
Update ec_dec_bits64() to correspond to the new ec_enc_bits64(). Not sure why this wasn't committed before. git-svn-id: http://svn.xiph.org/trunk/ghost@14409 0101bb08-14d6-0310-b084-bc0e0c8e3800
-
- Dec 11, 2007
-
-
Timothy B. Terriberry authored
Updated broken paper URLs. Cleaned up non-multiply-free range coder documentation (e.g., stop claiming it's multiply-free).
-
- Dec 06, 2007
-
-
Timothy B. Terriberry authored
-