1. 21 Aug, 2017 1 commit
    • Joe Young's avatar
      [cb4x4][refmv] scan_row_mbmi/scan_col_mbmi · 8e4c3a74
      Joe Young authored
      For sub-8x8 blocks, scan loop should have at least one iteration.
      Previously, loop would be skipped if col_offset == 1 and n8_w == 1.
      
      This change appears to have neutral effect on bdrate (+0.01).  This could
      mean that extra MV candidates are not helping that much for sub-8x8.
      
      Change-Id: Ic778312b39113ab8f348f5c7c18813593a831b7c
      8e4c3a74
  2. 10 Aug, 2017 1 commit
    • Yunqing Wang's avatar
      Adjust the sample selection in Warped Motion · 9a7c660e
      Yunqing Wang authored
      This CL follows the original one"Sample selection in warped motion", and
      aims to reduce the number of samples gathered. We only search 1 above row
      and 1 left column instead of 1/2 bsize range in each direction. The gain
      is a little less, but not much.
      
      Borg test result:
                   avg_psnr ovr_psnr ssim
      cam_lowres:  -0.225   -0.228  -0.231
      lowres:      -0.081   -0.075  -0.114
      
      The changes are wrapped in WARPED_MOTION_SORT_SAMPLES macro.
      
      Change-Id: Ifb499c80470b2ffe7a40f68fc401589faada7730
      9a7c660e
  3. 08 Aug, 2017 1 commit
  4. 07 Aug, 2017 3 commits
  5. 31 Jul, 2017 1 commit
    • Yushin Cho's avatar
      Another fix of dangling braces for search · 127c5838
      Yushin Cho authored
      These are caused when both #if and #else has if (...) '{' but
      there is only one matching '}'.
      
      Fixed for some of decoding side files. More to come soon.
      
      Change-Id: I9e63b90ba6e739b5c7e37498458c7808e2e16d33
      127c5838
  6. 14 Jul, 2017 1 commit
    • Yunqing Wang's avatar
      Sample selection in warped motion · 1bc82866
      Yunqing Wang authored
      Added a sample selection process in warped motion.
      1. Gather more samples including multiple rows on the top, multiple
      columns on the left, and the upper-right block.
      2. Sort samples by the MV difference between the neighbour's MV and
      the current block's MV. Trim the samples with considerably large MV
      difference.
      
      Borg test result:
                   avg_psnr ovr_psnr ssim
      cam_lowres:  -0.241   -0.243  -0.376
      lowres:      -0.104   -0.110  -0.179
      
      The changes are wrapped in WARPED_MOTION_SORT_SAMPLES macro.
      
      Change-Id: I2730bb31a0a3ad28215ccd16fd6da0ea8b2ed404
      1bc82866
  7. 30 Jun, 2017 1 commit
    • David Barker's avatar
      Fix bug when cb4x4 is disabled · e3afdd89
      David Barker authored
      When cb4x4 is disabled and global-motion is enabled, the function
      av1_append_sub8x8_mvs_for_idx accidentally fetched
      cm->global_motion[ref] instead of cm->global_motion[rf[0]],
      ie. it used the reference *index* instead of the reference *frame*.
      
      Change-Id: Ieebf60f6b7c0a1cbbc083a70d4451ad799e27fe3
      e3afdd89
  8. 15 Jun, 2017 1 commit
  9. 15 May, 2017 2 commits
  10. 05 May, 2017 1 commit
  11. 03 May, 2017 1 commit
  12. 29 Apr, 2017 1 commit
  13. 11 Apr, 2017 1 commit
  14. 07 Apr, 2017 1 commit
    • Yue Chen's avatar
      Simply calculation of sample projections in WM+GM · ff61610f
      Yue Chen authored
      Directly use mbmi->mv[0] since the displacment of block center has
      been calculated according to GM/WM model and stored in mbmi->mv[0].
      
      Change-Id: I09bc88832d80197fccbb1df1518ad33fafa9756f
      ff61610f
  15. 02 Apr, 2017 1 commit
    • Yue Chen's avatar
      Use 1 sample per neighbor for local warping model estimation · 5558e5da
      Yue Chen authored
      Only 1 sample needs to be collected. Max of 8 neighbors are
      used.
      In LS estimation, the projection samples (sx, sy)->(dx, dy) are
      intentionally smoothed by assuming 3 shifted versions
      (sx, sy+n)->(dx, dy+n), (sx+n, sy)->(dx+n, dy), (sx+n,
      sy+n)->(dx+n, dy+n) also contribute to the estimation.
      For example, instead of using A[0] = sx^2, we use the sum of
      squares of source x of four points, A[0] += 4sx^2+4*n*sx+n^2.
      But computational cost wise, it does not add much overhead. Coding
      gain is mostly same as the old version. If no smoothing is added,
      will lose 0.3% on lowres.
      
      Change-Id: I04be32cffa525f7dc8ee583c0bf211d7bdc6e609
      5558e5da
  16. 23 Mar, 2017 1 commit
  17. 22 Mar, 2017 1 commit
  18. 08 Mar, 2017 1 commit
  19. 04 Mar, 2017 1 commit
  20. 02 Mar, 2017 2 commits
    • Debargha Mukherjee's avatar
      Some optimizations on integer affine estimation · 93105538
      Debargha Mukherjee authored
      1. Adds a limit on number of candidate samples used for the
      estimation.
      2. Adds a limit on max mv magnitude for use in the least-squares
      3. Makes some of the internal variables 32-bit.
      
      Impact on coding efficiency in the noise range.
      
      Change-Id: I8c1c3216368ceb2e3548660a3b8c159df54a8312
      93105538
    • Sarah Parker's avatar
      Turn off global motion for sub8x8 blocks · ae7c458a
      Sarah Parker authored
      Lowres: 0.03% improvement, 1% improvement on waterfall_cif.y4m
      Midres: 0.085% overall improvement, 1.253% improvement on station2_480p25.y4m
      Change-Id: I3872934d978bb4ca828c6b9acd2fdb951d9da299
      ae7c458a
  21. 27 Feb, 2017 2 commits
    • Debargha Mukherjee's avatar
      Better block center in gm_get_motion_vector fn · f6dd3c68
      Debargha Mukherjee authored
      Also supports homography models for future experiments.
      
      Change-Id: I4510540f54133e063891ed491c95c087222f7810
      f6dd3c68
    • Debargha Mukherjee's avatar
      Integerize warped motion computation · e6eb3b53
      Debargha Mukherjee authored
      Integerizes computation of the least squares for warped motion.
      The model is restricted to only Affine. Affine seems easiest
      to compute and integerize since it can be split into two 3-dim
      least squares problems, as opposed to rotation-zoom which needs
      a 4-dim least-squares problem to be solved.
      The current implementation requires only one division per block.
      
      BDRATE impact is mminimal. The upgrade to the affine model improves
      coding efficiency but integerization also degrades efficiency a
      little. Overall there is a net gain of about -0.07% BDRATE on
      the lowres set.
      BDRATE lowres: -1.113% with ----enable-warped-motion vs. without
      (up from -1.044%).
      
      Change-Id: I6b9216ac0737d76f59054293eabee48e17739ec4
      e6eb3b53
  22. 25 Feb, 2017 2 commits
  23. 23 Feb, 2017 1 commit
    • 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
  24. 13 Feb, 2017 1 commit
  25. 04 Feb, 2017 1 commit
  26. 30 Jan, 2017 1 commit
  27. 27 Jan, 2017 1 commit
  28. 26 Jan, 2017 1 commit
    • Debargha Mukherjee's avatar
      Fix mismtach with ref-mv and ext-partition-types · ff59b6ac
      Debargha Mukherjee authored
      Change the list of search offsets searched when ext-partition-types
      is on for square block_sizes. This is because the VERTICAL_A and
      HORIZONTAL_A partitions are incompatible with the default list.
      
      BUG=AOMEDIA:141
      
      Change-Id: I884c45c3d11039b7dcb72336a928362f926473ed
      ff59b6ac
  29. 24 Jan, 2017 1 commit
    • Jingning Han's avatar
      Fix conflicts between ext-inter and cb4x4 modes · 61418bbd
      Jingning Han authored
      Resolve the broken coding pipeline in ext-inter experiment when
      cb4x4 mode is enabled. Turn off rectangular inter-intra mode.
      This needs some more work to hook up. Given that it gives fairly
      limited coding performance gains, disable it for the moment.
      
      BUG=aomedia:309
      
      Change-Id: I9b406df6183f75697bfd4eed5125a6e9436d84b0
      61418bbd
  30. 23 Jan, 2017 2 commits
  31. 13 Jan, 2017 1 commit
    • Yue Chen's avatar
      Correct projection samples for local warping model estimation · d193cdcf
      Yue Chen authored
      When both GLOBAL_MOTION and WARPED_MOTION are enabled, identify
      the neighbors using global motion, and generate correct projection
      samples, from which the local warped motion is estimated.
      
      Change-Id: I13556a49649208e6f4d30bc570a41074aabc8ae6
      d193cdcf
  32. 19 Dec, 2016 1 commit
    • Jingning Han's avatar
      Scale reference motion vector search step size · fab16037
      Jingning Han authored
      This commit allows the dynamic motion vector referencing system to
      scale its search range according to the coding block size. This
      provides higher search resolution for smaller size coding unit.
      
      The cb4x4 mode improves the compression performance across all the
      test sets:
      
               avg     low    mid    high
      lowres   2.8%    2.4%   3.1%   3.0%
      midres   1.3%    0.3%   1.8%   2.7%
      hdres    0.9%    0.5%   1.4%   1.5%
      
      Change-Id: I1bc501506a9f2f06071c5274391f6bd053b235a7
      fab16037
  33. 15 Dec, 2016 1 commit