- Oct 07, 2015
-
-
Optimize opus encode (float only) usecase using ARM NE10 library. Mainly effects opus_fft and ctl_mdct_forward and related functions. This optimization can be used for ARM CPUs that have NEON VFP unit. This patch only enables optimizations for ARMv7. Official ARM NE10 library page available at http://projectne10.github.io/Ne10/ To enable this optimization, use --enable-intrinsics --with-NE10=<install_prefix> or --enable-intrinsics --with-NE10-libraries=<NE10_lib_dir> --with-NE10-includes=<NE10_includes_dir> Compile time checks made during configure process to make sure optimization option available only when compiler supports NEON instrinsics. Runtime checks made to make sure optimized functions only called on appropriate hardware. Signed-off-by:
Timothy B. Terriberry <tterribe@xiph.org>
-
- Dec 10, 2013
-
-
Jean-Marc Valin authored
-
- Nov 13, 2013
-
-
Jean-Marc Valin authored
This fixes an actual error in the downmix (using the float version even for the int API), as well as a bunch of conversion warnings.
-
- Sep 28, 2013
-
-
Jean-Marc Valin authored
-
- Sep 16, 2013
-
-
Jean-Marc Valin authored
Should fix delayed decision on surround, but not well tested.
-
- Sep 06, 2013
-
-
Jean-Marc Valin authored
Code is still float, but at least tonality esitmation seems to work. Speech/music analysis is still disabled.
-
Jean-Marc Valin authored
I checked that it's not *completely* busted, but it probably needs more testing.
-
- Jul 02, 2013
-
-
Jean-Marc Valin authored
-
- May 17, 2013
-
-
Jean-Marc Valin authored
This should prevent errors in the bandwidth detection from affecting quality when we have enough bits to be close to transparent.
-
- Feb 28, 2013
-
-
Jean-Marc Valin authored
This is done using an adaptive beta and an estimate of the speech and music detection confidence
-
- Feb 20, 2013
-
-
Jean-Marc Valin authored
Variable duration option renamed to OPUS_SET_EXPERT_FRAME_DURATION, with new API. Also moves up the analysis to avoid having to do int->float conversion on large buffers.
-
- Feb 10, 2013
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
- Dec 21, 2012
-
-
Jean-Marc Valin authored
Can now work up to full-band and uses lsb_depth to fix the noise issue.
-
- Jul 13, 2012
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
Also, reducing the VBR rate on panned mono
-
- May 16, 2012
-
-
Jean-Marc Valin authored
This reverts commit 9f407afa.
-
- Apr 24, 2012
-
-
Jean-Marc Valin authored
-
- Apr 20, 2012
-
-
Jean-Marc Valin authored
Also added 3rd clause to "master" COPYING file
-
- Sep 07, 2011
-
-
Ralph Giles authored
In f9265ddf opus_get_version_string() was moved to libcelt, but the fallback definition for OPUS_VERSION stayed in src/opus.c. This is helpful for those using and external build system, which may not duplicate all the defines from the included build files.
-
- Sep 01, 2011
-
-
Jean-Marc Valin authored
-
- Aug 23, 2011
-
-
Jean-Marc Valin authored
-
- Aug 12, 2011
-
-
Jean-Marc Valin authored
-
- Aug 02, 2011
-
-
Ralph Giles authored
Thanks to Tim Terriberry for pointing out the issue.
-
Ralph Giles authored
This better distinguishes the reference implementation, which is what this string is meant to do. Thanks to Greg Maxwell for the suggestion.
-
Ralph Giles authored
This lets users print it out without context, which is a little easier for clients.
-
Ralph Giles authored
The new opus_get_version_string() call just returns a static string defined by OPUS_VERSION, which is passed in from the build system through config.h (or a custom compile line). Provide a fallback to "unknown" if the build system fails to actually provide that definition. This restores compilation with Makefile.draft. In general, this means there will be builds out there with non-specific version strings, since ports won't be forced to update the string. While that's unfortunate, I think it's more valuable that the library be simple to build.
-
Jean-Marc Valin authored
-
- Aug 01, 2011
-
-
Jean-Marc Valin authored
-
- Jul 05, 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
-
- May 24, 2010
-
-
Jean-Marc Valin authored
-
- Oct 18, 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.
-
- 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.
-
- Feb 09, 2009
-
-
Jean-Marc Valin authored
fine energy bits. Also, doing better rounding of the bits.
-
- Dec 17, 2008
-
-
- 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
-
-
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.
-