1. 24 Feb, 2017 4 commits
    • Thomas Davies's avatar
      EC_MULTISYMBOL: make all CDFs have a extra element. · f3eb840a
      Thomas Davies authored
      This will make it easier to add native CDFs for all the
      dependent experiments without excessive macros.
      
      Change-Id: Iee4710f0fe1c1b4300f686cdf2c5b879a36de987
      f3eb840a
    • Luc Trudeau's avatar
      Add get_plane_type() helper function. · 005feb6b
      Luc Trudeau authored
      Adds the static inline function get_plane_type to convert a plane number
      to the corresponding PLANE_TYPE.
      
      There's no change to the bitstream, it only encapsulates the logic to
      get the PLANE_TYPE.
      
      Change-Id: I1199db3a32c89437d9c029ab5b2b2e62582a13a2
      005feb6b
    • Angie Chiang's avatar
      Use 10 tap for sharp interpolation filter · d59fa2ae
      Angie Chiang authored
      Performance drop
      lowres 0.056%
      midres 0.024%
      hdres 0.02%
      
      Change-Id: I52d067eefbfb87198319f9d50e3b4060f80a6abb
      d59fa2ae
    • Angie Chiang's avatar
      Let hbd conv func be flexible · 0a2c0cbc
      Angie Chiang authored
      This CL allow us to change filter coefficients easily for SIMD
      implementation of high bitdepth convolution functions
      
      Change-Id: I454a5c76d3ba9e4454118c6a9d87737b3aa24898
      0a2c0cbc
  2. 23 Feb, 2017 7 commits
    • Jingning Han's avatar
      Remove unused av1_build_inter_predictors_sbp() · b5bb3ff9
      Jingning Han authored
      Change-Id: I43207cabac921fee77d19855abe49868dfd98bd1
      b5bb3ff9
    • Sarah Parker's avatar
      Avoid sending tx type for ext_tx reduced set for sub 8x8 · 5effe3fb
      Sarah Parker authored
      This makes the handling of sub8x8 the same as when the
      ext_tx reduced set is turned off.
      
      Change-Id: I3123e473fc70469330bb49d960d02cb1aebc17cf
      5effe3fb
    • Jingning Han's avatar
      Add chroma 2x2 block experiment · 31b6a4f9
      Jingning Han authored
      Support the use of 2x2 prediction and transform block size for
      chroma components. This experiment builds on top of cb4x4. It
      brings back the loss in performance gains due to 4x4 chroma
      component constrain. The coding gains for lowres are up from 1.5%
      to 2.5%.
      
      Change-Id: I8e461e230c2d920f6df1af9d935ebe9dfa3820d9
      31b6a4f9
    • David Barker's avatar
      Change gm_get_motion_vector · 45390c18
      David Barker authored
      Since gm_get_motion_vector is trying to give a motion vector for
      "the frame as a whole", it makes more sense for it to calculate
      the motion of the *center* of the block rather than the top-left
      corner of the frame.
      
      In theory, this change should also help the encoder make better
      decisions on when to use global motion. It avoids an issue
      where, early in the frame, NEARESTMV looks like a good way to use
      the global motion vector *without* paying the rate cost applied
      to the first few global motion blocks in each frame. This seems
      to lead to a better overall result.
      
      Change-Id: Ia5c6259ceb8b4ff3d00a5d553e1d18bdb802da59
      45390c18
    • Jingning Han's avatar
      Fix bottom ref condition for intra prediction in cb4x4 · f0179c3c
      Jingning Han authored
      Resolve a rare enc/dec mismatch issue triggered by the 4x4 chroma
      block size in sub8x8 block coding.
      
      To avoid using 2x2 chroma block size, it always uses the top-left
      4x4 luma block coding information to predict the 4x4 chroma block.
      The rest 3 4x4 luma blocks will be coded independently without
      coding the collocated chroma blocks.
      
      The compression performance gains are 1.45% for lowres set (down
      from 2.4% of the original cb4x4 design).
      
      Change-Id: Iff560fcab172ed4219434d5174c4d8dfbbb04135
      f0179c3c
    • Angie Chiang's avatar
      Turn off has_subpel_mv_component check · 043de633
      Angie Chiang authored
      This CL aim at facilitating hardware implementation
      The check will be turned on once we have faster motion vector
      coding system
      
      Performance drop
      lowres 0.157%
      midres 0.260%
      
      Change-Id: Iedc961f44efadfe84ff9edab408f44845bffcfe9
      043de633
    • Angie Chiang's avatar
      Enable av1_is_interp_needed in handle_inter_mode · e7e37208
      Angie Chiang authored
      If there no sub-pixel in both direction of MV,
      the interp_filter is set to EIGHTTAP_REGULAR
      
      Change-Id: I208c34906544f1937c57d78017999be6eddd9e87
      e7e37208
  3. 22 Feb, 2017 10 commits
  4. 21 Feb, 2017 4 commits
  5. 18 Feb, 2017 6 commits
  6. 17 Feb, 2017 8 commits
    • Urvang Joshi's avatar
      InterpFilter type: Create an enum. · a9b174bd
      Urvang Joshi authored
      We use a single enum instead of multiple #defines.
      - Ensures better type checking
      - Enum values are generated implicitly, and hard-coded #defines are not
      required.
      - We use ATTRIBUTE_PACKED to indicate that the enum should still use the
      smallest integral type.
      
      Change-Id: I7532428da31744d3441b363bd932a7f233ee7ab5
      a9b174bd
    • Debargha Mukherjee's avatar
      Replace division in self-guided filter · 4be12628
      Debargha Mukherjee authored
      Replaces division with multiplication in self-guided
      filter.
      
      The guided filter requires computation of:
      n^2.s^2/(n^2.s^2 + n^2.e).
      This is now implemented by computation of n^2.s^2/n^2.e followed
      by using a lookup table for the function f(x) = x/(x+1).
      To compute n^2.s^2/n^2.e, we use an integer multiplication based
      implementation which becomes feasible since n^2.e can only
      take a few values and their corresponding multipliers can be
      pre-computed.
      There is also another divison by n, that is also integerized.
      
      Change-Id: Id7b81bbafead0b8f04a1853ec69b9dec423bb66a
      4be12628
    • Debargha Mukherjee's avatar
      Support trapezoidal models for global motion · 5dfa9300
      Debargha Mukherjee authored
      Adds functinoality for least-squares, RANSAC as well as encoding and
      decoding with new constrained homographies that warp blocks to horizontal
      and/or vertical trapezoids. This is for future experimentation. None
      of the models are actually enabled in the code.
      
      Change-Id: I1936018c6b11587d6fd83c3a2c63548cb641b33f
      5dfa9300
    • Thomas Daede's avatar
      Avoid unused variable warnings when CLPF and dering are enabled. · 15dbc1a1
      Thomas Daede authored
      Change-Id: I7909756e6a7d2da817b3354d6a8cb341cdc5bf98
      15dbc1a1
    • Nathan E. Egge's avatar
      Use tx_size_cdf with CONFIG_EC_MULTISYMBOL. · 2ea519e5
      Nathan E. Egge authored
      This commit produces a bit-exact bitstream because prior calls to code
       the tx_size using aom_write_tree() would automatically convert the
       aom_tree_index on the fly to a CDF.
      The tx_size_cdf[]'s are now computed once per frame.
      Based on recent tests, this patch reduces decode time by 4%.
      
      Change-Id: I920dbf036b8a9574ea6e65ae5f9c43eef1c3f864
      2ea519e5
    • Jean-Marc Valin's avatar
      Disabling second dering filter when CLPF is enabled. · d9ad054e
      Jean-Marc Valin authored
      Low-latency:
      masterfix-ll-dering+clpf@2017-02-14T02:31:30.023Z -> masterfix-ll-dering-nosecond@2017-02-16T21:30:38.937Z
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.1151 | -0.2440 | -0.1287 |  -0.0454 | -0.1130 | -0.0632 |    -0.1206
      
      High-latency:
      masterfix-dering-clpf@2017-02-16T21:28:58.511Z -> dering-nosecond+clpf@2017-02-15T23:46:08.501Z
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0340 | -0.0883 | -0.0130 |  -0.0104 | -0.0026 |  0.0245 |     0.0215
      
      Change-Id: I3e8f34b1971d3ec280c5695a6fcfb7d7b270b2d9
      d9ad054e
    • Angie Chiang's avatar
      Use 8tap sharp filter for UV plane · 4d4cbc9b
      Angie Chiang authored
      So far the overall performance drop by
      lowres: 0.027%
      midres: 0.049%
      hdres: roughly 0.07%
      
      Change-Id: If3dc7619d91cb97b6d494b33f36112af45efcd8f
      4d4cbc9b
    • Rostislav Pehlivanov's avatar
      Implement a new rate control system · 002e7b7a
      Rostislav Pehlivanov authored
      This commit implements a new rate control system which was ported from
      Daala's rate control system (which was based off of Theora's rate
      control system) to the encoder. Its aim is to address the weaknesses of
      the current rate control system and eventually serve as its replacement.
      
      This is still work in progress. So far this commit only implements
      support for single pass encoding for constant quality and bitrate
      targeting.
      Additional commits which implement two-pass support and the rest to
      match the feature set of the current rate control system are coming
      soon.
      
      The rate control system hasn't been fully tuned (and will likely need
      additional tuning as the encoder's development progresses) and does
      contain some "hacks", to convert the quality to a quantizer value
      (empirical) and to tweak the quantizer in between golden frames (which
      uses some code from the current rate control system as well as code
      which attempts to model what that code does), the latter of which is
      only in the constant quality codepath.
      
      Bitrate targeting works much better than the current rate control
      system's targeting and will actually closely match the rate specified by
      the user without the current rate control system's bursty behaviour.
      
      Change-Id: I588fbfd2e80a3d21ce7176903115d6a96ef1700a
      002e7b7a
  7. 16 Feb, 2017 1 commit
    • Joe Young's avatar
      [ext-intra] fix bug in sample interpolation when dy < 0 · e568e6f0
      Joe Young authored
      When the "dy" variable is between -1 and 0 (base2 == -1)
      we should interpolate between the upper-left(-1,-1) and left(-1,0)
      samples, instead of just taking the left sample.
      
      Coding gain improves a bit with this change.
      
      BUG=aomedia:357
      
      Change-Id: If520f71b22115e79120499c21f8d6925c1fa24be
      e568e6f0