Skip to content
Snippets Groups Projects
  1. Feb 08, 2011
  2. Feb 07, 2011
  3. Feb 06, 2011
  4. Feb 05, 2011
  5. Feb 04, 2011
  6. Feb 03, 2011
  7. Feb 02, 2011
  8. Feb 01, 2011
    • Timothy B. Terriberry's avatar
      Limit mode creation to supported modes. · aa6fec66
      Timothy B. Terriberry authored
      We did no real error checking to see if a mode is supported when it
       is created.
      This patch implements checks for Jean-Marc's rules:
      1) A mode must have frames at least 1ms in length (no more than
          1000 per second).
      2) A mode must have shorts of at most 3.33 ms (at least 300 per
          second).
      It also adds error checking to dump_modes so we report the error
       instead of crashing when we fail to create a mode.
      aa6fec66
    • Jean-Marc Valin's avatar
    • Timothy B. Terriberry's avatar
      Add assertions for band size restrictions. · 2799c297
      Timothy B. Terriberry authored
      The way folding is implemented requires two restrictions:
      1. The last band must be the largest (so we can use its size to
       allocate a temporary buffer to handle interleaving/TF changes).
      2. No band can be larger than twice the size of the previous band
       (so that once we have enough data to start folding, we will always
       have enough data to fold).
      
      Mode creation makes a heuristic attempt to satisfy these
       conditions, but nothing actually guarantees it.
      This adds some asserts to check them during mode creation.
      They current pass for all supported custom modes.
      2799c297
    • Timothy B. Terriberry's avatar
      Don't allow empty eBands. · cb8f366a
      Timothy B. Terriberry authored
      Currently compute_ebands()'s attempts to round bands to even sizes
       and enforce size constraints on consecutive bands can leave some
       bands entirely empty (e.g., Fs=8000, frame_size=64, i=11).
      This adds a simple post-processing loop to remove such bands.
      cb8f366a
    • Jean-Marc Valin's avatar
    • Jean-Marc Valin's avatar
      Tuning the split threshold · 263e2719
      Jean-Marc Valin authored
      263e2719
    • Timothy B. Terriberry's avatar
      Add a seprate qtheta offset for two-phase stereo. · 411a84fa
      Timothy B. Terriberry authored and Jean-Marc Valin's avatar Jean-Marc Valin committed
      9b34bd83 caused serious regressions for 240-sample frame stereo,
       because the previous qb limit was _always_ hit for two-phase
       stereo.
      Two-phase stereo really does operate with a different model (for
       example, the single bit allocated to the side should really
       probably be thought of as a sign bit for qtheta, but we don't
       count it as part of qtheta's allocation).
      The old code was equivalent to a separate two-phase offset of 12,
       however Greg Maxwell's testing demonstrates that 16 performs
       best.
      411a84fa
Loading