Skip to content
Snippets Groups Projects
  1. Feb 14, 2011
  2. Feb 10, 2011
  3. 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
  4. Dec 22, 2010
  5. 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
  6. Nov 04, 2010
    • Jean-Marc Valin's avatar
      Squashed commit of the following: · 35095c69
      Jean-Marc Valin authored
      commit a2cc77cb2744a2cb0551b9bfdf06b97457b6d449
      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 8e860dc0dfbe57e59fcbd5352588c5edff020e27
      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 837412d37bbca32bb34bfb5941e132ff4b0a568c
      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 34e20f24c85b40fffd1a15c5b632f2f78b26f081
      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 d83fb5a9cc2ec4b6cce938662997643da1c5ed0d
      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 bb91e05b7f8f91fd15a8a0daae3d8cb6bd8d81db
      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 31fe6f6b4997af0a46b8c62f523fe2dfdb7f56ae
      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 919ba48f0369a87885334756cdfac2a448ce52d0
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Mon Nov 1 17:27:19 2010 -0400
      
          C89 fix
      
      commit ee0dbb1855a82ee8c132ddaffcab4d072bb3455e
      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 4c7b3fd12a8f7469607b5ac57c85301a5de9fa81
      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 26f1412188900199b63e187fcb0bd04db53c898a
      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 27c73d008e9f50d282c3ad08e2f05f7006013ae1
      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 59354672cb3af794a0e46c0b2097d6441c75cdd1
      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 be9e7dabf6c8b32bc049da260b58ff6085dc1ac3
      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 5b06270afc41a88915252cea14411be43650e704
      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 10e0488458ae558aa80d0b30cce70841ad081f73
      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 ca19396c1c1511c0e208b400efb51384fc7c200d
      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 f3e42fde1b575bc587b2557b8b31a6085421a99c
      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 db945132d12b25ff25acc0701b91a1d8a81417d5
      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 acb3f96e04802ac4601295f83bef1f32593e261a
      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 8f64f5974ac846b8c35d0b692e0472f279206cf0
      Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
      Date:   Thu Oct 28 00:33:53 2010 -0400
      
          More tuning for remove_doubling()
      
      commit 0c08f2ee9dcc135dd222fef30f5ad93e95e0d364
      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 23d303e992f1fdc3d2668652603ae6311d3b91c5
      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 881c5928adc1af9eb75c4b68e9eba94ab1d65adc
      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 4a8687deea8587007f14051cb966f6fd748893a1
      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 a7f85bb6b10d9c509caec521ca444efb3f27df05
      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 06cb70e876873f79fed214ebbca35cb4c5057ec8
      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 5201927c284a424eb8f21f63d358844b3de8c285
      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 7ef63fbe1f78f79e1923bc42e06fbdf1ec28ffd3
      Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
      Date:   Wed Oct 27 06:49:28 2010 -0400
      
          Minor fix
      
      commit eb37eaab32e7df074a7ddf0ae4781e57f827c4ad
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Tue Oct 26 18:32:25 2010 -0400
      
          Enforcing some pitch continuity
      
      commit 751ef6edf2ee7721252cedb264bdf9b3f6244a9d
      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 c12647ecb55b645005efbeede91880db72936f8d
      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 f854311d945bb375039a4a4a4fea782b648581f8
      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 b4e1215432e3d89a29c998639a6d8b07e28c5a2a
      Author: Jean-Marc Valin <jean-marc.valin@octasic.com>
      Date:   Mon Oct 25 14:09:17 2010 -0400
      
          using the actual pitch gain
      
      commit e7cd4f07bb073b6955a001e56c0bbf16156f4195
      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 77a03aa27c9b6ed2fe80c27a1196b460ccb5079e
      Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
      Date:   Mon Oct 25 00:12:48 2010 -0400
      
          prefilter implemented as well
      
      commit a3fd81b6ca213d4a9f8ddfa2883fd0e238d64d04
      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
  7. Sep 11, 2010
  8. Aug 02, 2010
  9. Jul 19, 2010
  10. Jul 18, 2010
  11. Jun 21, 2010
  12. May 30, 2010
  13. May 27, 2010
  14. Oct 24, 2009
  15. Oct 18, 2009
  16. Aug 01, 2009
  17. Jul 26, 2009
  18. 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
  19. Feb 04, 2009
  20. Dec 21, 2008
  21. Oct 18, 2008
  22. Oct 05, 2008
  23. Mar 22, 2008
  24. Mar 15, 2008
  25. Mar 14, 2008
  26. Feb 27, 2008
  27. Feb 20, 2008
  28. Jan 28, 2008
  29. 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
  30. Dec 11, 2007
  31. Dec 06, 2007
Loading