Skip to content
Snippets Groups Projects
  1. Aug 12, 2011
  2. Aug 02, 2011
  3. Jul 31, 2011
  4. Jul 29, 2011
  5. May 13, 2011
  6. May 09, 2011
  7. Feb 14, 2011
  8. Feb 10, 2011
  9. Jan 26, 2011
  10. Jan 23, 2011
  11. Jan 21, 2011
  12. Jan 20, 2011
    • Timothy B. Terriberry's avatar
      Make collapse-detection bitexact. · 21af73eb
      Timothy B. Terriberry authored and Jean-Marc Valin's avatar Jean-Marc Valin committed
      Jean-Marc's original anti-collapse patch used a threshold on the
       content of a decoded band to determine whether or not it should
       be filled with random noise.
      Since this is highly sensitive to the accuracy of the
       implementation, it could lead to significant decoder output
       differences even if decoding error up to that point was relatively
       small.
      
      This patch detects collapsed bands from the output of the vector
       quantizer, using exact integer arithmetic.
      It makes two simplifying assumptions:
       a) If either input to haar1() is non-zero during TF resolution
           adjustments, then the output will be non-zero.
       b) If the content of a block is non-zero in any of the bands that
           are used for folding, then the folded output will be non-zero.
      b) in particular is likely to be false when SPREAD_NONE is used.
      It also ignores the case where mid and side are orthogonal in
       stereo_merge, but this is relatively unlikely.
      This misses just over 3% of the cases that Jean-Marc's anti-collapse
       detection strategy would catch, but does not mis-classify any (all
       detected collapses are true collapses).
      
      This patch overloads the "fill" parameter to mark which blocks have
       non-zero content for folding.
      As a consequence, if a set of blocks on one side of a split has
       collapsed, _no_ folding is done: the result would be zero anyway,
       except for short blocks with SPREAD_AGGRESSIVE that are split down
       to a single block, but a) that means a lot of bits were available
       so a collapse is unlikely and b) anti-collapse can fill the block
       anyway, if it's used.
      This also means that if itheta==0 or itheta==16384, we no longer
       fold at all on that side (even with long blocks), since we'd be
       multiplying the result by zero anyway.
      21af73eb
  13. Dec 17, 2010
    • Timothy B. Terriberry's avatar
      Re-organize spreading/folding constants. · 320cf2e2
      Timothy B. Terriberry authored
      These were stored internally in one order and in the bitstream in a
       different order.
      Both used bare constants, making it unclear what either actually
       meant.
      This changes them to use the same order, gives them named constants,
       and renames all the "fold" decision stuff to "spread" instead,
       since that is what it is really controlling.
      320cf2e2
  14. Dec 09, 2010
  15. Nov 24, 2010
  16. Oct 16, 2010
  17. Oct 13, 2010
  18. Sep 13, 2010
  19. Aug 31, 2010
  20. Aug 07, 2010
  21. Aug 06, 2010
  22. Jul 25, 2010
  23. Jul 24, 2010
  24. Jul 07, 2010
  25. May 21, 2010
  26. May 09, 2010
  27. Apr 26, 2010
  28. Apr 20, 2010
  29. Apr 19, 2010
  30. Apr 18, 2010
  31. Apr 17, 2010
  32. Apr 14, 2010
  33. Apr 07, 2010
Loading