Skip to content
Snippets Groups Projects
  1. Mar 03, 2011
    • Timothy B. Terriberry's avatar
      Eliminate the ec_int32 and ec_uint32 typedefs. · 9bac8c17
      Timothy B. Terriberry authored and Jean-Marc Valin's avatar Jean-Marc Valin committed
      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.
      9bac8c17
  2. Feb 10, 2011
  3. May 24, 2010
  4. Oct 18, 2009
  5. Oct 17, 2009
  6. May 26, 2009
    • Timothy B. Terriberry's avatar
      CWRS clean-ups and optimizations. · d98d8ae0
      Timothy B. Terriberry authored and Jean-Marc Valin's avatar Jean-Marc Valin committed
      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.
      d98d8ae0
  7. Feb 09, 2009
  8. Dec 17, 2008
  9. Sep 22, 2008
  10. Sep 19, 2008
    • Timothy B. Terriberry's avatar
      Change CWRS indexing to use Pyramid VQ's magnitude ordering. · d910274f
      Timothy B. Terriberry authored and Jean-Marc Valin's avatar Jean-Marc Valin committed
      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.
      d910274f
  11. Jun 10, 2008
  12. Apr 18, 2008
  13. Apr 05, 2008
    • Timothy B. Terriberry's avatar
      Rework CWRS code. · d883670b
      Timothy B. Terriberry authored and Jean-Marc Valin's avatar Jean-Marc Valin committed
      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.
      d883670b
  14. Mar 15, 2008
  15. Feb 14, 2008
  16. Jan 31, 2008
  17. Dec 11, 2007
  18. Dec 03, 2007
  19. Nov 30, 2007
Loading