1. 18 Feb, 2017 7 commits
    • Jingning Han's avatar
      Re-schedule sub8x8 chroma component encoding process · 18c53c81
      Jingning Han authored
      Use the top-left 4x4 luma block's coding information for chroma
      component encoding at size 4x4.
      Change-Id: I4bcfbc2bf8b71f7fc30094553503468460a56f9b
    • Jean-Marc Valin's avatar
      Merging the dering and clpf experiments into a single experiment: CDEF · 01435130
      Jean-Marc Valin authored
      The result is identical to enabling both deringing and CLPF
      Change-Id: I71db5ba9e21fcaf11ad87e94841eaf80be58c0a8
    • Steinar Midtskogen's avatar
      Remove ATTRIBUTE_PACKED from InterpFilter which broke something · a0671722
      Steinar Midtskogen authored
      The ATTRIBUTE_PACKED caused something to break in MB_MODE_INFO.
      boundary_info got corrupted and moving InterpFilter around in
      MB_MODE_INFO could cause a segfault or the problems to go away (for
      instance by moving InterpFilter to the end of the struct).  Perhaps
      something in MB_MODE_INFO is sensitive to alignment.  This should be
      investigated further and get fixed or documented, but for now remove
      the attribute.
      Change-Id: Ic4326ab98fe784d9b7d2b47d8f086b8429cedee9
    • Jingning Han's avatar
      Remove av1_foreach_transformed_block() function · 475d4198
      Jingning Han authored
      Change-Id: I3fa9d24f2a61dd1b4a234fb1cfea679af06ebdb5
    • Jingning Han's avatar
      Refactor build_inter_predictors_for_planes() · f828d40b
      Jingning Han authored
      Remove redundant table access.
      Change-Id: Ib45f9b0bafe2a0c57449e787d60e70d35f19f6c7
    • Nathan E. Egge's avatar
      Remove tx_size_prob from compressed header with EC_ADAPT. · b353a8ed
      Nathan E. Egge authored
      When run with --enable-ec_adapt, forward updates to the tx_size_prob
       array will not be made.
      master-ec_adapt-e568e6f0@2017-02-17T15:30:27.109Z ->
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0113 | -0.0112 | -0.0113 |  -0.0114 | -0.0114 | -0.0114 |    -0.0112
      master-ec_adapt-robust-e568e6f0@2017-02-17T20:29:45.315Z ->
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0244 | -0.0243 | -0.0243 |  -0.0245 | -0.0245 | -0.0245 |    -0.0243
      Change-Id: I5873c5d14e3f3868997775f85fa743d2d55d81b7
    • hui su's avatar
      ext-intra and filter-intra: use switchable transform type · 5e76162d
      hui su authored
      When ext-intra or filter-intra is enabled, the transform type was inferred from
      prediction mode as in VP9. Should use mbmi->tx_type instead.
      Change-Id: I6a8e356285a8461d67e69d38df40541d34bade04
  2. 17 Feb, 2017 10 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
      - We use ATTRIBUTE_PACKED to indicate that the enum should still use the
      smallest integral type.
      Change-Id: I7532428da31744d3441b363bd932a7f233ee7ab5
    • Yaowu Xu's avatar
      Change to use correct size · 0a79a1b1
      Yaowu Xu authored
      Replace obselete size "4" with correct one "tile_size_bytes". This
      fixes a decoder crash.
      Change-Id: I5b1c606a4d5be946acc68b3cfe0d0603a5591c44
    • Debargha Mukherjee's avatar
      Replace division in self-guided filter · 4be12628
      Debargha Mukherjee authored
      Replaces division with multiplication in self-guided
      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
      There is also another divison by n, that is also integerized.
      Change-Id: Id7b81bbafead0b8f04a1853ec69b9dec423bb66a
    • 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
    • Thomas Daede's avatar
      Avoid unused variable warnings when CLPF and dering are enabled. · 15dbc1a1
      Thomas Daede authored
      Change-Id: I7909756e6a7d2da817b3354d6a8cb341cdc5bf98
    • 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
    • Yushin Cho's avatar
      Remove PVQ_CHROMA_RD codes · 5c207296
      Yushin Cho authored
      Which was a workaround to balance the quality between
      luma and chroma when PVQ is enabled, by
      1) skipping PVQ DC RDO for chroma and
      2) using smaller lambda value (x0.5) for intra prediction of chroma,
      intended to spend more bits and thus improve quality for chroma.
      The change in metric for 5 frames of objective-1-fast is:
      -1.45 -1.54     -1.46 4.62        13.71   14.87     -1.47
      For still images (subset1)
      -1.52 -1.54     -1.60 2.56        11.92   12.17     -1.52  -1.66
      Change-Id: I31c4d7a7de2939f6004c112649f7303f0e944156
    • Jean-Marc Valin's avatar
      Disabling second dering filter when CLPF is enabled. · d9ad054e
      Jean-Marc Valin authored
      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
      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
    • 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
    • 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
      Additional commits which implement two-pass support and the rest to
      match the feature set of the current rate control system are coming
      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
  3. 16 Feb, 2017 5 commits
  4. 15 Feb, 2017 2 commits
    • Zoe Liu's avatar
      Make convolve_round compiled without dual_filter · 1b672d3f
      Zoe Liu authored
      Change-Id: I532e46b3947ca3f5898a2da61fb6b82c2f4bd5c6
    • David Barker's avatar
      Speed up global motion determination · 15338d5f
      David Barker authored
      When global-motion is enabled, a considerable amount
      of encoder time is spent in the functions in corner_match.c.
      This patch optimizes those functions to be 3.5-4x as fast,
      leading to an end-to-end encoder speed improvement
      (on 20 frames of tempete_cif.y4m) of:
       200kbps: ~26% faster
       800kbps: ~19% faster
      2800kbps: ~12% faster
      Change-Id: I04d3f87484c36c41eb5a1e86e814f2accbe86297
  5. 14 Feb, 2017 7 commits
  6. 13 Feb, 2017 8 commits
  7. 12 Feb, 2017 1 commit
    • Jingning Han's avatar
      Make adapt-scan support multi-thread encoding · 5d0b310b
      Jingning Han authored
      This commit makes the adaptive scan order system support multi-
      thread encoding. It fixes unit test failure issue associated with
      Change-Id: I61cbf9531c8deab97fb3bb17428d0b2a63cf309a