1. 28 Mar, 2017 2 commits
    • Jingning Han's avatar
      Explicitly use block size to determine partition info · cd95976b
      Jingning Han authored
      Replace the use of num_4x4_log2 with the actual block size as the
      condition to check if a block is partitionable. This avoids conflict
      issues when multiple experiments are turned on.
      
      Change-Id: I666d52458590a6f88c3995a140d20b0d66d27bfb
      cd95976b
    • Fergus Simpson's avatar
      frame_superres: Add scale to uncompressed header · e7508413
      Fergus Simpson authored
      A bit and a three bit literal have been added to the uncompressed frame
      header for use by the frame superres experiment.
      
      The bit is true if scaling is to be used, and is immediately followed by
      a three bit literal that encodes the scale to use. If the first bit is
      false, scaling is disabled and the scale factor numerator is set to the
      denominator (ie. 1:1 scaling). No literal follows if scaling is
      disabled.
      
      The denominator has been defined as a constant 16. The literal is biased
      by a defined constant of 8 - allowing fractions from 1/2 to 15/16
      scaling in steps of 1/16 when scaling is used. Experimentation will be
      needed to discover which of these are useful.
      
      The bit and literal are immediately after the optional render_width and
      render_height, so that the superres parameters can be written and read
      just after the regular width and height, without interfering with the
      render_size parameters.
      
      This patch also adds an arbitrary write to make the scale 1:1, so as to
      not trigger any scaling until it's ready.
      
      Accompanying encode and decode helper functions are added.
      
      Change-Id: I8caa6247c73f5c7f84ef1fde1e80eb9b20bde0e3
      e7508413
  2. 27 Mar, 2017 10 commits
    • Jean-Marc Valin's avatar
      Don't run cdef when cm->mi_grid_visible[]==NULL · b37226e4
      Jean-Marc Valin authored
      Change-Id: Id2bcdad731c27a71cca29205d37c781a3f99bb3d
      b37226e4
    • Jingning Han's avatar
      Fix compiler warnings in av1_loopfilter · afeb9219
      Jingning Han authored
      Change-Id: Ieec83d0b067ec36c35878aee02eeba436ede14a5
      afeb9219
    • hui su's avatar
      rect-tx/ext-tx: fix an assertion fail · ff5e2098
      hui su authored
      Fix an assertion fail in rd_pick_intra_sub_8x8_y_subblock_mode().
      
      BUG=aomedia:410
      
      Change-Id: I22d4aaea0566336605230e09d9590bc235719685
      ff5e2098
    • Angie Chiang's avatar
      Add const to rate in cost_coeffs_b · 4d8b8f49
      Angie Chiang authored
      Change-Id: I9780e4e4f736b92b676f8a03a445a88749d4022e
      4d8b8f49
    • Angie Chiang's avatar
      Use txb_entropy_ctx to store entropy ctx of lv_map · 74e2307b
      Angie Chiang authored
      1) Add txb_entropy_ctx into MACROBLOCK_PLANE and PICK_MODE_CONTEXT
      
      2) Add av1_get_txb_entropy_context() to compute the entropy context
      
      3) Compute and sore the entropy context before av1_xform_quant()
      return
      
      Change-Id: Ia2170523af3163b9456f7c6a305c1e77ad2b23be
      74e2307b
    • Angie Chiang's avatar
      Compute lv_map's coeff cost in av1_cost_coeffs() · 47e4b369
      Angie Chiang authored
      1) move the original implementation in av1_cost_coeffs() to
      cost_coeffs() and let av1_cost_coeffs become a switch for
      choosing original coeff cost or lv_map's coeff cost
      
      2) change get_txb_ctx's naming. Use plane_bsize instead of
      bsize to make the intention clear.
      
      3) remove txb context computing in get_txb_ctx
      Change-Id: I17e3d39d796e051d1c90f0a0c5d7d0888b9ca292
      47e4b369
    • 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
  3. 25 Mar, 2017 9 commits
  4. 24 Mar, 2017 12 commits
  5. 23 Mar, 2017 7 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