1. 15 Feb, 2019 2 commits
  2. 13 Feb, 2019 1 commit
  3. 25 Jan, 2019 2 commits
    • Nathan Egge's avatar
      Internalize the EC_PROB_SHIFT precision reduction · f0b7d999
      Nathan Egge authored
      All of the msac decode functions use 15-bit CDFs with the exception of
      msac_decode_bool_prob() which takes a (15 - EC_PROB_SHIFT)-bit
      probability.
      This patch internalizes the reduction in precision from the EC_SMALL_MUL
      experiment (hiding the define) and gives msac calls a consistent API.
      f0b7d999
    • Nathan Egge's avatar
      Add msac_decode_bool_equi() function · 45d4fde6
      Nathan Egge authored
      When decoding an equi-probable bit (e.g. prob = 1/2) we can simplify the
      decode function.
      45d4fde6
  4. 06 Nov, 2018 1 commit
  5. 03 Nov, 2018 1 commit
  6. 01 Nov, 2018 1 commit
  7. 30 Oct, 2018 1 commit
    • Rostislav Pehlivanov's avatar
      Rewrite msac.c · 33d16d81
      Rostislav Pehlivanov authored
      This rewrites msac.c to the point of there being no libaom project
      code left, hence changing the license of the file to the dav1d
      project's license.
      
      The rewrite much simplifies and optimizes entropy decoding.
      Some encoder specific code also remained, such as tell_offs, to
      tell the fractional amount of bits left, which the decoder does
      not need.
      
      ctx_refill is much simpler and has a tighter loop with less
      instructions, which on some CPUs can actually be ran in one cycle.
      The old mechanism which checked to see if the buffer reached the
      end to disable calling ctx_refill is gone, as all it saved was
      a mostly well predicted branch.
      The optimizations regarading this function enabled us to use
      an ec_win of 64 bits whilst improving performance. This was not
      possible with the old needlessly robust system.
      
      Some msac-specific API changes were made - msac_decode_bool now
      takes a scaled value directly rather than doing scaling itself.
      This saves a shift in most use cases as the function is mainly
      used to read equiprobable bools rather than ones with specific
      probabilities.
      
      There's still room for optimizations, mainly in that update_cdf
      could be SIMD'd. This commit prepares for some of them by
      moving the init function at the bottom of the file.
      
      Overall decoder speedup seems to be around 3%-5%, specific on
      bitrate and encoder as expected.
      33d16d81
  8. 22 Sep, 2018 1 commit
    • Ronald S. Bultje's avatar
      Initial decoder implementation. · e2892ffa
      Ronald S. Bultje authored
      With minor contributions from:
       - Jean-Baptiste Kempf <jb@videolan.org>
       - Marvin Scholz <epirat07@gmail.com>
       - Hugo Beauzée-Luyssen <hugo@videolan.org>
      e2892ffa