1. 23 Feb, 2017 7 commits
    • 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
    • emilkeyder@google.com's avatar
      Fix some includes in global_motion.{c,h}. · 30ba4b41
      emilkeyder@google.com authored
      Change-Id: I288890b964fda354ac58939f3a6b54a33f40666d
      30ba4b41
    • 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
    • Yushin Cho's avatar
      Another fix for building pvq and palette together · cc715089
      Yushin Cho authored
      Fixes that pack_palette_tokens() was disabled when pvq is enabled and
      av1_decode_palette_tokens() was not complied.
      
      Change-Id: I468bdc4d77ae7ddbca7fb5ed8e1da5506486a58c
      cc715089
  2. 22 Feb, 2017 19 commits
  3. 21 Feb, 2017 4 commits
  4. 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
      18c53c81
    • 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
      01435130
    • 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
      a0671722
    • Jingning Han's avatar
      Remove av1_foreach_transformed_block() function · 475d4198
      Jingning Han authored
      Change-Id: I3fa9d24f2a61dd1b4a234fb1cfea679af06ebdb5
      475d4198
    • Jingning Han's avatar
      Refactor build_inter_predictors_for_planes() · f828d40b
      Jingning Han authored
      Remove redundant table access.
      
      Change-Id: Ib45f9b0bafe2a0c57449e787d60e70d35f19f6c7
      f828d40b
    • 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.
      
      objective-1-fast:
      
      master-ec_adapt-e568e6f0@2017-02-17T15:30:27.109Z ->
       tx_size-ec_adapt@2017-02-17T15:31:49.504Z
      
         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 ->
       tx_size-ec_adapt-robust@2017-02-17T20:33:06.405Z
      
         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
      b353a8ed
    • 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
      5e76162d
  5. 17 Feb, 2017 3 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
    • 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.
      
      BUG=aomedia:352
      
      Change-Id: I5b1c606a4d5be946acc68b3cfe0d0603a5591c44
      0a79a1b1
    • 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