- 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.
-
- Jul 28, 2010
-
-
Jean-Marc Valin authored
-
- Oct 24, 2009
-
-
Jean-Marc Valin authored
-
- Oct 17, 2009
-
-
Jean-Marc Valin authored
by POSIX. The other _t types that are not part of the API are still there for now. Also, got rid of all that was left of the 64-bit types.
-
- Jun 05, 2009
-
-
- May 26, 2009
-
-
Adds specialized O(N*log(K)) versions of cwrsi() and O(N) versions of icwrs() for N={3,4,5}, which allows them to operate all the way up to the theoretical pulse limit without serious performance degredation. Also substantially reduces the computation time and stack usage of get_required_bits(). On x86-64, this gives a 2% speed-up for 256 sample frames, and almost a 16% speed-up for 64 sample frames.
-
- Dec 23, 2008
-
-
Jean-Marc Valin authored
problems when building shared libraries only.
-
- Sep 22, 2008
-
-
It is no slower with a large number of pulses, and as much as 30% faster with a large number of dimensions.
-
- Sep 19, 2008
-
-
Jean-Marc Valin authored
-
This lets us encode and decode directly from the pulse vector without an intermediate transformation. This makes old streams undecodable. Additionally, ncwrs_u32() has been sped up for large N by using the sliding recurrence from Mohorko et al. ncwrs_u64 could be sped up in a similar manner, but would require a larger table of multiplicative inverses (or several 32x32->64 bit multiplies). Note that U(N,M) is now everywhere 1/2 the value it used to be.
-
- Apr 20, 2008
-
-
Jean-Marc Valin authored
-
- Apr 18, 2008
-
-
Jean-Marc Valin authored
-
- Apr 16, 2008
-
-
Jean-Marc Valin authored
need to iterate at least once.
-
- Apr 10, 2008
-
-
Jean-Marc Valin authored
-
- Apr 05, 2008
-
-
This eliminates an extra O(nm) lookups on decode, and reduces the rate control from O(nm^2) to O(nm), in addition to eliminating O(m) lookups on both encode and decode. Although the interface is slightly more complex, the internal code is also simpler.
-
- Mar 13, 2008
-
-
Jean-Marc Valin authored
-
- Mar 02, 2008
-
-
Jean-Marc Valin authored
-
- Feb 20, 2008
-
-
Jean-Marc Valin authored
-
- Feb 14, 2008
-
-
Jean-Marc Valin authored
-
- Jan 31, 2008
-
-
Jean-Marc Valin authored
-
- Jan 28, 2008
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-