1. 27 Mar, 2017 4 commits
    • Debargha Mukherjee's avatar
      Adds binary code lib for coding various symbols · 47748b56
      Debargha Mukherjee authored
      Adds a variable length binary code library for
      coding various symbols for typical use in headers.
      
      The main codes implemented are:
      1. Coding a symbol from an n-ary alphabet using a
      quasi-uniform code.
      2. A bilevel code for coding symbols from an n-ary
      alphabet based on a reference value for the symbol
      also taken from the same alphabet.
      The code has two steps. If the symbol is close to
      the reference a shorter code is used, while if it is
      farther away a longer code is used.
      3. A finite (terminated) subexponential code that codes
      a symbol from an n-ary alphabet using subexp parameter k.
      4. A finite (terminated) subexponential code that codes
      a symbol from an n-ary alphabet using subexp parameter k,
      based on a given reference also taken from the same
      alphabet. This code essentially reorders the values
      before using the same code as 3.
      
      Also adds corresponding encoder side functions to count
      the number of bits used.
      
      These codes will be subsequently used for more efficient
      encoding of loop-restoration parameters and global motion
      parameters.
      
      Change-Id: I28c82b611925c1ab17f544c48c4b1287930764b7
      47748b56
    • Jean-Marc Valin's avatar
      CDEF: Fix allocation of row_dering · e84eaf03
      Jean-Marc Valin authored
      Change-Id: Ic4c4f0ff7cf4063e2a0366af05442858b4b7fcca
      e84eaf03
    • Yushin Cho's avatar
      Remove av1 coeff context setting when PVQ is used · 6341f5c5
      Yushin Cho authored
      Entropy context of above and left block is not used
      when PVQ is turned on.
      
      Change-Id: I50c908bba800382438a48f7cc83f8b0f177393a1
      6341f5c5
    • Alex Converse's avatar
      deltaq: Use block size / mask macros · 68abef8c
      Alex Converse authored
      Fixes unit tests with ext-partition
      
      Change-Id: I17184c7321e27763eea5434f0d4425d928c0abcc
      68abef8c
  2. 25 Mar, 2017 9 commits
  3. 24 Mar, 2017 12 commits
  4. 23 Mar, 2017 12 commits
    • David Barker's avatar
      Re-enable av1_nmv_ctx() when ext-inter is enabled · 9620bcd5
      David Barker authored
      Currently, mbmi->ref_mv_idx can be set to a nonzero value
      on the encoder side if mbmi->mode is one of NEARMV, NEWMV,
      NEAR_NEARMV, or NEW_NEWMV. But it can only be nonzero on the
      decoder side if the mode is NEARMV or NEWMV. Hence av1_nmv_ctx
      has previously been disabled when ext-inter is enabled, to
      prevent a mismatch due to this.
      
      This patch changes the encoder behaviour to match the decoder
      behaviour.
      
      Change-Id: Icfe41fb72e76731ae373fe8c6065f5e003f6414f
      9620bcd5
    • Jingning Han's avatar
      Account for 2x2 tx_size in extrabits_size · 008ea46a
      Jingning Han authored
      Offset the transform block size with respect to TX_4X4 when
      counting the cat6 extra bit size. This accounts for the potential
      use of 2x2 transform block size in cb4x4.
      
      BUG=aomedia:405
      
      Change-Id: Ia15ac123e4f31dc66455c3aa6925ae5e754de493
      008ea46a
    • Jean-Marc Valin's avatar
      Do real chroma RDO search for CDEF · e9f77424
      Jean-Marc Valin authored
      Chroma now has a list of strenghts too, with the superblock signalling
      shared between luma and chroma.
      
      low-latency, cpu=4:
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      -0.0114 | -1.4626 | -1.4745 |  -0.0423 | 0.0430 | -0.0001 |    -0.7416
      
      Change-Id: I389c77f1d80020f810e45f8502c656ad9d397c8c
      e9f77424
    • Debargha Mukherjee's avatar
      Simplify warped motion estimation to use 2d ls · b9370acd
      Debargha Mukherjee authored
      Use a simpler warped motion estimation scheme that uses a 2d
      least squares problem, where the underlying assumption
      applied is that the motion vector computed at the center
      of the current block using the warp model is exactly the same
      as the motion vector transmitted for the block.
      
      The main motivation is to reduce the complexity of the
      estimation process.
      
      Coding efficiency drop is about +0.25% on lowres:
      -1.152% (from -1.396%).
      
      Also, removes code for non-approximate division and bakes
      approximate divison in.
      
      Change-Id: Ie4ad8e32593b09f7e1920c70b0b92545236ddc54
      b9370acd
    • Alex Converse's avatar
      Drop the CPUUSED symmetry around zero. · 561d0af0
      Alex Converse authored
      Change-Id: Ifda6ddec1e0c9aff29d531c5bf6411c0072c7b0e
      561d0af0
    • Yushin Cho's avatar
      Delete unused od_encode_quantizer_scaling() of PVQ · 31b980aa
      Yushin Cho authored
      Frankly I don't know what this was exactly doing in Daala
      but it cannot be supported in AV1 because
      state.sb_q_sacaling is not defined.
      
      Change-Id: I75cb9080aa2a4af544b436b07ddcb9c27b3d25c4
      31b980aa
    • Jingning Han's avatar
      Silient a compiler warning in av1_decode_block_tokens · 74752ca1
      Jingning Han authored
      Change-Id: I581bdb5edacd92fd40b28327fcd5bfb062dc9b5b
      74752ca1
    • Angie Chiang's avatar
      Implement update_txb_context for lv_map · 36d616b1
      Angie Chiang authored
      Change-Id: I6bedc3a1a40e551ce4b3989382b7706a589c08f2
      36d616b1
    • Angie Chiang's avatar
      Clean up update_and_record_txb_context · a2d5c948
      Angie Chiang authored
      Change-Id: Icbf9a2f31eb7f6c385266a0236d2ef266f43e409
      a2d5c948
    • Fergus Simpson's avatar
      frame_superres: Add members to AV1_COMMON · 7a71d0a0
      Fergus Simpson authored
      Adds the superres scale numerator, width, and height to the AV1_COMMON
      struct for later use in encoding and decoding. This value will also be
      added to the uncompressed frame header.
      
      A #define statement is also added to represent the denominator - 16.
      
      Change-Id: I4acec39ef3c67fa9f7118dac28daec3a2d734ed5
      7a71d0a0
    • Alex Converse's avatar
      Fix Wundef warnings inside the codec · 64d7ef67
      Alex Converse authored
      Change-Id: I2f4a5c836905b089b91b211368bf3a0dea682b75
      64d7ef67
    • Debargha Mukherjee's avatar
      Split current block samples for warp estimation · e8e6cad7
      Debargha Mukherjee authored
      Change-Id: Iebc74024475c7cb88650b65df9f23b1a5e70021c
      e8e6cad7
  5. 22 Mar, 2017 3 commits
    • Jean-Marc Valin's avatar
      Fix bug in cdef MSE computation · 0a8026aa
      Jean-Marc Valin authored
      od_dering() modifies the input signal
      
      Change-Id: I886400037ec4b438742fcbadf1eecda8819f9b8b
      0a8026aa
    • Yue Chen's avatar
      Remove check for identical neighboring mv field in WARPED_MOTION · dd6e402a
      Yue Chen authored
      This will allow us decode motion mode without knowing motion vectors
      in the neighborhood.
      Improves the performance by 0.3% (1.1->1.4)
      
      Change-Id: Ie18ee2b02b1d2f89615bc8fa423beb1f9bd9a678
      dd6e402a
    • Jean-Marc Valin's avatar
      Jointly optimizing deringing and clpf · 5f5c132f
      Jean-Marc Valin authored
      We now signal joint strengths and use a greedy algorithm for the search.
      
      low-latency, cpu-used=4:
      
      ll4-cdef@2017-03-22T03:42:10.815Z -> ll4-cdef-newsearch-var-header-newlambda-refine4@2017-03-22T15:56:46.471Z
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0792 |  0.3551 |  0.4393 |  -0.0108 | -0.1338 | -0.0141 |     0.1452
      
      Change-Id: I619ae1c7c7d7ec04fe993cabc5773b07c3f5b201
      5f5c132f