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 14, 2011
  3. Feb 10, 2011
  4. Feb 04, 2011
    • Timothy B. Terriberry's avatar
      Refactor the entropy coder. · a093f4df
      Timothy B. Terriberry authored and Jean-Marc Valin's avatar Jean-Marc Valin committed
      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.
      a093f4df
  5. Dec 22, 2010
  6. Dec 21, 2010
    • Timothy B. Terriberry's avatar
      Entropy coder clean-up. · 30df6cf3
      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).
      30df6cf3
  7. Nov 04, 2010
    • Jean-Marc Valin's avatar
      Squashed commit of the following: · 35095c69
      Jean-Marc Valin authored
      commit a2cc77cb
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Thu Nov 4 13:11:21 2010 -0400
      
          Adding a switch to enable the post-filter (off by default)
      
      commit 8e860dc0
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Thu Nov 4 11:57:12 2010 -0400
      
          Allowing pitches up to 3000 Hz
      
      commit 837412d3
      Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
      Date:   Wed Nov 3 20:47:11 2010 -0400
      
          Pitch estimation tuning to prevent some cases of pitch halving
      
      commit 34e20f24
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Wed Nov 3 16:31:51 2010 -0400
      
          Resynthesis now purely a compile-time option with RESYNTH
      
      commit d83fb5a9
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Wed Nov 3 16:28:25 2010 -0400
      
          Fixes a divide by zero in remove_doubling()
      
      commit bb91e05b
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Wed Nov 3 15:55:48 2010 -0400
      
          Bring back resynthesis with RESYNTH macro
      
      commit 31fe6f6b
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Tue Nov 2 17:55:04 2010 -0400
      
          Tuning the allocation tilt to give more bits to higher frequencies.
      
          Especially useful now that the post-filter can reduce low freq noise.
      
      commit 919ba48f
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Mon Nov 1 17:27:19 2010 -0400
      
          C89 fix
      
      commit ee0dbb18
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Mon Nov 1 11:45:10 2010 -0400
      
          Complete fixed-point port of the pitch code (I think).
      
      commit 4c7b3fd1
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Mon Nov 1 10:55:43 2010 -0400
      
          More fixed-point pitch gain work
      
      commit 26f14121
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Mon Nov 1 10:39:25 2010 -0400
      
          Fixed-point version of the pitch gain calculation code
      
      commit 27c73d00
      Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
      Date:   Sun Oct 31 16:50:26 2010 -0400
      
          Some more fixed-point work in remove_doubling()
      
      commit 59354672
      Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
      Date:   Sun Oct 31 09:57:36 2010 -0400
      
          Fixed a stupid fixed-point pf bug in the gain handling
      
      commit be9e7dab
      Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
      Date:   Sat Oct 30 01:52:09 2010 -0400
      
          Fixed-point: fixed frac_div32() that was broken a few commits ago.
      
      commit 5b06270a
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Fri Oct 29 17:45:44 2010 -0400
      
          This fixes VBR when encoding the pitch period with raw bits
      
      commit 10e04884
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Fri Oct 29 16:50:31 2010 -0400
      
          Pitch period is now encoder with equal probability for each octave (rather than each lag).
      
          Max pitch gain allowed is now 0.625.
      
      commit ca19396c
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Fri Oct 29 16:00:01 2010 -0400
      
          More fixed-point post-filter work
      
      commit f3e42fde
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Fri Oct 29 14:39:23 2010 -0400
      
          More fixed-point work for the prefilter/postfilter
      
      commit db945132
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Fri Oct 29 14:14:02 2010 -0400
      
          Making the pitch estimation work in fixed-point
      
          Even if there's still lots of float operations left.
      
      commit acb3f96e
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Fri Oct 29 10:57:39 2010 -0400
      
          Making the PLC code consistent with the prefilter/postfilter
      
      commit 8f64f597
      Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
      Date:   Thu Oct 28 00:33:53 2010 -0400
      
          More tuning for remove_doubling()
      
      commit 0c08f2ee
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Wed Oct 27 17:48:02 2010 -0400
      
          Doing an interpolation step to improve the accuracy of the pitch estimate
      
          Also increasing the gain slightly.
      
      commit 23d303e9
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Wed Oct 27 16:56:42 2010 -0400
      
          Implements a fixed 3-tap prefilter/postfilter to make the gain roll off with frequency
      
      commit 881c5928
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Wed Oct 27 14:47:30 2010 -0400
      
          Partially whitening the down-sampled signal before the pitch search
      
      commit 4a8687de
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Wed Oct 27 14:27:47 2010 -0400
      
          pitch_search() no longer computes the gain
      
      commit a7f85bb6
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Wed Oct 27 14:00:53 2010 -0400
      
          remove_doubling() now works on the down-sampled signal
      
      commit 06cb70e8
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Wed Oct 27 11:28:53 2010 -0400
      
          Simplification to the pitch continuity code
      
      commit 5201927c
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Wed Oct 27 11:04:02 2010 -0400
      
          Some more pitch doubling prevention code
      
      commit 7ef63fbe
      Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
      Date:   Wed Oct 27 06:49:28 2010 -0400
      
          Minor fix
      
      commit eb37eaab
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Tue Oct 26 18:32:25 2010 -0400
      
          Enforcing some pitch continuity
      
      commit 751ef6ed
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Tue Oct 26 17:29:47 2010 -0400
      
          Code for preventing pitch doubling/halving
      
      commit c12647ec
      Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
      Date:   Tue Oct 26 00:04:34 2010 -0400
      
          Finally getting perfect reconstruction when pitch changes
      
          Post-filter now delays the filter coefs by the overlap so that the pre-filter
          and post-filter are synchronised.
      
      commit f854311d
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Mon Oct 25 14:59:13 2010 -0400
      
          Very simple/inefficient signalling of the prefilter period/gain
      
      commit b4e12154
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Mon Oct 25 14:09:17 2010 -0400
      
          using the actual pitch gain
      
      commit e7cd4f07
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Mon Oct 25 12:16:11 2010 -0400
      
          Adding some pitch prediction though side information still isn't coded
      
      commit 77a03aa2
      Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
      Date:   Mon Oct 25 00:12:48 2010 -0400
      
          prefilter implemented as well
      
      commit a3fd81b6
      Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
      Date:   Sun Oct 24 01:14:10 2010 -0400
      
          Implementing Raymond Chen's comb filter idea
      
          So far, only the post-filter is there.
      35095c69
  8. Sep 11, 2010
  9. Aug 02, 2010
  10. Jul 19, 2010
  11. Jul 18, 2010
  12. Jun 21, 2010
  13. May 30, 2010
  14. May 27, 2010
  15. Oct 24, 2009
  16. Oct 18, 2009
  17. Aug 01, 2009
  18. Jul 26, 2009
  19. Jul 23, 2009
    • Jean-Marc Valin's avatar
      Implemented "raw bits" · c08be448
      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
      c08be448
  20. Feb 04, 2009
  21. Dec 21, 2008
  22. Oct 18, 2008
  23. Oct 05, 2008
  24. Mar 22, 2008
  25. Mar 15, 2008
  26. Mar 14, 2008
  27. Feb 27, 2008
  28. Feb 20, 2008
  29. Jan 28, 2008
  30. Jan 11, 2008
    • tterribe's avatar
      Add oc_enc_tell to report an estimate of the number of bits used so far. · 06390d08
      tterribe authored and Jean-Marc Valin's avatar Jean-Marc Valin committed
      Remove the special case for 0 in EC_ILOG, as we never pass it 0 and this
       generates slightly better code.
      
      Update ec_enc_bits64 to split the encoded values along word boundaries...
       this should generate slightly better code, as well as fix a subtle bug (the
       proper bits were not being masked out of the low part).
      However, this will render previous streams that used this function undecodable
       (to my knowledge, no one is actually using it yet).
      
      git-svn-id: http://svn.xiph.org/trunk/ghost@14391 0101bb08-14d6-0310-b084-bc0e0c8e3800
      06390d08
  31. Dec 11, 2007
  32. Dec 06, 2007
Loading