Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/celt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2011-03-18Fixes tandem-test.cJean-Marc Valin
2011-02-10Oops, forgot COPYING and the tandem testJean-Marc Valin
2011-02-04Refactor the entropy coder.Timothy B. Terriberry
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.
2011-01-30Merge branch 'exp_api_change'Jean-Marc Valin
2011-01-29celt_encoder_create() now defaults to Opus standard modeJean-Marc Valin
The old constructor is renamed celt_encoder_create_custom(). Same for the decoder.
2011-01-11Minor fixes to testcasesJean-Marc Valin
2011-01-11MSVC build fixesDavid Schleef
2011-01-08Changes to ec_dec_cdf() to support 8-bit tables.Timothy B. Terriberry
This renames ec_dec_cdf() to ec_dec_icdf(), and changes the functionality to use an "inverse" CDF table, where icdf[i]=ft-cdf[i+1]. The first entry is omitted entirely. It also adds a corresonding ec_enc_icdf() to the encoder, which uses the same table. One could use ec_encode_bin() by converting the values in the tables back to normal CDF values, but the icdf[] table already has them in the form ec_encode_bin() wants to use them, so there's no reason to translate them and then translate them back. This is done primarily to allow SILK to use the range coder with 8-bit probability tables containing cumulative frequencies that span the full range 0...256. With an 8-bit table, the final 256 of a normal CDF becomes 0 in the "inverse" CDF. It's the 0 at the start of a normal CDF which would become 256, but this is the value we omit, as it already has to be special-cased in the encoder, and is not used at all in the decoder.
2010-12-22Update ec_dec_cdf() to use an unsigned cdf[].Timothy B. Terriberry
For our current usage, this doesn't matter, but is more consistent with the rest of the API. We may want to reduce this to an unsigned char[], but I'd rather coordinate that optimization with SILK's planned reduction to 8-bit CDFs, as we may be able to use the same code.
2010-12-22Add test coverage for entropy coder compatibility.Timothy B. Terriberry
This ensures that the various alternative routines in the entropy encoder and decoder (e.g., ec_{enc|dec}_bit_logp()) really are just specialized optimizations of the same general ec_encode() and ec_decode() routines. This is done by randomly picking one to encode with for each symbol, and randomly picking a different one to decode with.
2010-12-21Entropy coder clean-up.Timothy B. Terriberry
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).
2010-11-09Add coarse energy entropy model tuning.Timothy B. Terriberry
This tunes the entropy model for coarse energy introduced in commit c1c40a76. It uses a constant set of parameters, tuned from about an hour and a half of randomly selected test data encoded for each frame size, prediction type (inter/intra), and band number. These will be slightly sub-optimal for different frame sizes, but should be better than what we were using. For inter, this saves an average of 2.8, 5.2, 7.1, and 6.7 bits/frame for frame sizes of 120, 240, 480, and 960, respectively. For intra, this saves an average of 1.5, 3.0, 4.5, and 5.3 bits/frame (for the same frame sizes, respectively).
2010-09-30Updates tandem-test for more robust error reporting and additional frame ↵Gregory Maxwell
sizes and sample rates.
2010-09-13Fixing tests on machines with no __builtin_clz()Jean-Marc Valin
2010-08-26Disabling mdct and fft init code with static modesJean-Marc Valin
2010-08-26Updating dump_modes to include the MDCT and FFT. More work needed.Jean-Marc Valin
2010-08-02Remove useless use of "long", remove useless prototypesJean-Marc Valin
2010-07-28updated cwrs test for previous commitJean-Marc Valin
2010-07-24Cleanup, de-inlining some math functionsJean-Marc Valin
2010-07-08Sharing twiddle factors across all MDCTsJean-Marc Valin
2010-07-07Some code cleanup in the FFT.Jean-Marc Valin
Also dropped support for radices above 5.
2010-06-21Fixed testcaseJean-Marc Valin
2010-06-21Removing old PCL, added plc.hJean-Marc Valin
2010-05-08API change: optional resynthesisJean-Marc Valin
The main encode call no longer takes a pointer for the optional resynthesis. It's now done with a call to celt_encode_resynthesis().
2010-05-08Changing the encoder API to add the frame sizeJean-Marc Valin
2010-01-17Getting "make dist" to work again with the files that got removedv0.7.1Jean-Marc Valin
2010-01-16Change name of libcelt to libcelt0Thorvald Natvig
2009-11-22Renamed MDCT functions to avoid symbol clashes with VorbisJean-Marc Valin
2009-10-24Added a SMALL_FOOTPRINT optionJean-Marc Valin
2009-10-24Removing unused code in the entropy coderJean-Marc Valin
2009-10-22Enhancements the fixed-point approximations of non-linear functions.Timothy B. Terriberry
Accuracy for rsqrt, rcp, cos, and log2 is now at the level of truncation error for the current output resolution of these functions. sqrt and exp2 still have non-trivial algebraic error, but this cannot be reduced much further using the current method without additional computation. Also updates the fast float approximations for log2 and exp2 with coefficients that give slightly lower maximum relative error. Patch modified by Jean-Marc Valin to leave the cos approximation as is and leave the check for x<-15 in exp2 as is.
2009-10-18Removed the _t from all the celt*_t types to avoid clashing with POSIXJean-Marc Valin
2009-10-17Changed all the celt*int*_t types to remove the _t suffix, which is reservedJean-Marc Valin
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.
2009-10-16The number of channels is now set when creating the states rather than whenJean-Marc Valin
creating the mode. This means that the same mode can be shared for mono and stereo.
2009-10-03Fix for some test program compat and an assertion that didn't make sense anymoreJean-Marc Valin
2009-07-23Implemented "raw bits"Jean-Marc Valin
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
2009-07-01Fix compilation of test cases with fixed-debug enabledGregory Maxwell
2009-06-29Additional mathops.h tests.Gregory Maxwell
2009-06-05Fixes for the tests in pseudo-stack mode.Gregory Maxwell
2009-05-27Make ectest use random random numbers. Add a new testGregory Maxwell
"tandem-test" which tests the encoder and decoder in many modes.
2009-05-27CWRS clean-ups and optimizations.Timothy B. Terriberry
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.
2008-12-23Unit tests now #include the relevant source files to prevent symbol visibilityJean-Marc Valin
problems when building shared libraries only.
2008-12-21Fix ectest to not check a case which isn't guaranteed to work, and which we ↵Timothy B. Terriberry
don't use. When I removed the special case for EC_ILOG(0) in commit 06390d082dcdfa8addb3dde337543bc0f0ebae44, 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.
2008-11-11fixed test for cases where M_PI isn't definedJean-Marc Valin
2008-10-05Removing the 64-bit part of the range coder.Jean-Marc Valin
2008-09-22Merge branch 'cwrs_speedup'Jean-Marc Valin
Conflicts: libcelt/cwrs.c tests/cwrs32-test.c
2008-09-22Change cwrsi() to operate on rows of U instead of columns.Timothy B.B Terriberry
It is no slower with a large number of pulses, and as much as 30% faster with a large number of dimensions.
2008-09-19Fixing the manual stack handling codeJean-Marc Valin
2008-09-19Merge branch 'cwrs_speedup' (derf's cwrs changes)Jean-Marc Valin
Conflicts: libcelt/cwrs.c
2008-09-19Change CWRS indexing to use Pyramid VQ's magnitude ordering.Timothy B.B Terriberry
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.