1. 24 Dec, 2017 1 commit
  2. 23 Dec, 2017 1 commit
    • Jingning Han's avatar
      Reduce the ref mv search region for sub8x8 blocks · 818b0064
      Jingning Han authored
      Reduce the reference motion vector search region over the spatial
      neighbor blocks for sub8x8 block sizes, in order to reduce the
      worst case context model parsing latency.
      
      Change-Id: I77a2a25483836cc02cf1784c93566fa7cff40fc8
      818b0064
  3. 22 Dec, 2017 1 commit
    • Jingning Han's avatar
      Take out drl index control from opt-ref-mv · b4fc74da
      Jingning Han authored
      Removing the drl dependency on the candidate list length appears
      to incur more than 0.3% compression performance loss. Hence remove
      this option from opt-ref-mv to allow better latency vs compression
      performance trade off.
      
      Change-Id: I6edaeb2d437996082b7bdd6cda7351426c5584b9
      b4fc74da
  4. 21 Dec, 2017 1 commit
  5. 20 Dec, 2017 2 commits
  6. 18 Dec, 2017 1 commit
    • Zoe Liu's avatar
      Expand skip mode support for all comp frames · 4b847e19
      Zoe Liu authored
      All compound predicted frames now have the choice to either turn on
      or off the use of the skip mode. The current encoder design only
      turns on the use of skip mode when the temporal distances of the two
      reference frames to the current frame are only different by 1.
      
      This patch also includes a fix on the calculating of the temporal
      distance between the two reference frames to the current frame for
      skip mode.
      
      Performance wise, this patch does not have noticeable impact as the
      encoder stays with the same choice with the frame-level skip mode
      flag.
      
      Change-Id: I34f370940b3b25d2ab429b8721344133ae6288ad
      4b847e19
  7. 16 Dec, 2017 1 commit
    • Zoe Liu's avatar
      Support ext-skip for both low delay and high delay · 104d62e1
      Zoe Liu authored
      For both low delay and high delay scenarios, the reference pair in
      skip mode are specified as the closest fwd ref, together with the
      closest bwd ref if there is any bwd ref, otherwise with the two
      closest fwd refs.
      
      Skip mode by default uses COMPOUND_AVERAGE. When all the reference
      frames are on the same side, temporal-distance weighted compound is
      considered, and a compound index is signaled to indicate whether
      distance-weighted compound or compound-average is usd.
      
      Whether to use distance-weighted compound for skip mode is still
      under experimenting, hence a flag is temporarily added:
      SKIP_MODE_WITH_JNT_COMP.
      
      Following experimental results are obtained over 30 frames, using the
      setup of --disable-ext-partition --disable-ext-partition-types
      --disable-txmg --enable-jnt-comp --enable-mfmv --enable-ext-skip:
      
      (1) High Latency:
      For Google test sets (lowres/midres), the BDRate coding gain is ~0.2%;
      For AWCY, the coding gain is ~0.1%.
      (2) Low Latency:
      No gain has been observed over Google sets and ~0.1% gain is obtained
      only when temporal-distance weighted prediction is used.
      
      Change-Id: I8c433357adebed0126ebfdd5c4d51aa71e64be57
      104d62e1
  8. 14 Dec, 2017 2 commits
    • Jingning Han's avatar
      Fix an unintended condition in refmv ctx model · 03d46bd6
      Jingning Han authored
      Make the force reset condition under the opt-ref-mv flag.
      
      Change-Id: I2c5f317e064d9517abee98937f3982c8e50dcfa5
      03d46bd6
    • Luc Trudeau's avatar
      [Clean Up] Remove get_y_mode() · 2eb9b845
      Luc Trudeau authored
      The get_y_mode function, is superfluous, not used consistently, and requires a
      useless block_idx parameter than gets pass around a lot inside the
      codebase for no apparent reason.
      
      The block parameter is misleading, as it could cause people to think all these
      functions actually use this value.
      
      Change-Id: I7ae0a8d1282c009b9114c83771cce10f5c2ee397
      2eb9b845
  9. 13 Dec, 2017 1 commit
  10. 12 Dec, 2017 2 commits
  11. 09 Dec, 2017 1 commit
  12. 06 Dec, 2017 1 commit
  13. 05 Dec, 2017 3 commits
  14. 04 Dec, 2017 1 commit
  15. 20 Nov, 2017 1 commit
    • Yunqing Wang's avatar
      Only use 1 above row and left column in warped reference MV · d3af66c7
      Yunqing Wang authored
      Multiple above rows and left columns are checked while generating reference
      MV candidate list for the current block. But, for warped ref_mv, we only
      generate warped reference MV for current block if one neighbor block is
      WARPED_CAUSAL mode and is located in the immediate above row or left column.
      
      Change-Id: Ia9e9c2b7f97b61e0e4d2eeffd8d91e9e5f93d1a0
      d3af66c7
  16. 18 Nov, 2017 1 commit
    • Zoe Liu's avatar
      Add motion selection to ext_skip · f40a9577
      Zoe Liu authored
      A new block mode, referred to as skip_mode is added. If a block is
      coded as skip_mode, it will be inter-coded, with its references and
      motion vectors derived from its neighboring blocks with zero-residue.
      Otherwise, the block can be coded in the current intra or inter mode.
      
      The computational load on skip_mode evaluation at the encoder should
      be kept minimum. No transform size / type evaluations are needed.
      
      Change-Id: I5aef0159c7d5ecd64258510835903375d6c536d6
      f40a9577
  17. 17 Nov, 2017 1 commit
    • Yunqing Wang's avatar
      Reuse neighbor's warped motion parameters · 876a8b0b
      Yunqing Wang authored
      If a block's motion_mode is WARPED_CAUSAL and its mode is NEARESTMV, search
      its immediate above and left neighbors to get the set of neighbor blocks
      using WARPED_CAUSAL motion mode, pick the one with largest block size, and
      use that neighbor's warped motion parameters directly for the current block.
      If none of the neighbors uses WARPED_CAUSAL motion mode, we estimate the
      current block's warped motion parameters.
      
      Before this patch, for every block, we estimate its warped motion parameters.
      With this patch, we reduce the number of blocks doing parameter estimation.
      Here are results by testing on clips with camera motions.
                          WARPED_CAUSAL blocks   blocks reusing parameters
      station2_240p(30f):     3857                    1678
      netflix_arieal(30f):     692                     223
      
      No noticable changes in coding gain. Borg test result showed a PSNR
      change of +0.006% on cam_lowres set, and -0.014% on lowres set.
      
      Change-Id: If12387ad0ca8a1996ea4c3f1bedcb269ebf78c6c
      876a8b0b
  18. 15 Nov, 2017 2 commits
  19. 14 Nov, 2017 1 commit
    • Zoe Liu's avatar
      Change mv projection to signed rounding · 11273449
      Zoe Liu authored
      The numerator in the mv projection can be negative, e.g. cur_to_bwd
      or cur_to_alt2, since either bwdref or altref2 can be a forward
      predictive reference, whereas the denominator always stays positive.
      The rounding inside mv projection hence should use signed operation.
      
      Change-Id: I42a105835754a002dd31fcfa7c845e4c105ec54f
      11273449
  20. 07 Nov, 2017 1 commit
  21. 04 Nov, 2017 1 commit
    • Jingning Han's avatar
      Separate ref frame mvs control from prev_frame_mvs · e17ebe92
      Jingning Han authored
      The control of using reference frame motion vector is a separate
      factor from the existence of previous frame motion vectors. This
      commit decouples these two, such that the encoder can control the
      use of reference motion vector. When it is used, one can further
      identify if the previous frame exists or not, then to decide if
      need to force use_prev_frame_mvs to be zero.
      
      This solves the issue where the previous frame mvs is set to be
      0 and it accidentally shuts off the access to all other existing
      referece frames mvs in the mfmv system. It brings back the coding
      performance gains to normal.
      
      Change-Id: I2531f73e55582a9bb5b3e0ff47e361a199ec8082
      e17ebe92
  22. 01 Nov, 2017 5 commits
    • Sarah Parker's avatar
      Rename ZEROMV to GLOBALMV · 2b9ec2ea
      Sarah Parker authored
      This name better reflects the functionality of the mode.
      
      Change-Id: Idc2372e7c7b226f70f63fa4f272a88cb4d857089
      2b9ec2ea
    • Zoe Liu's avatar
      Remove the use of prev_frame_mvs for mfmv · 294f59d0
      Zoe Liu authored
      The experiment of mfmv has already extensively leveraged the use of
      the motion vectors from the reference frames, hence there is no need
      to further add the motion vectors from the previous frame to serve
      as the motion vector reference candidates, let alone such motion
      vectors have not taken into account of the use of frame offsets.
      
      Experimental results collected so far have shown this patch has zero
      coding performance impact.
      
      Change-Id: I57a2f8b60797bd5e8f0a95206689b6e443b28ed1
      294f59d0
    • Angie Chiang's avatar
      Assign right ref_stamp int av1_setup_motion_field · c906e65b
      Angie Chiang authored
      Change-Id: Ie9152c5a631cd53ac69cc09469682505a88b045d
      c906e65b
    • Zoe Liu's avatar
      Add decoder support to ext_skip · f704a1c8
      Zoe Liu authored
      At the frame header level, add the checking on whether an inter-coded
      frame allows the use of 'skip_mode'. At the block level, add the
      decoding of 'skip_mode' for all the blocks if 'skip_mode' is allowed
      for the current frame. If 'skip_mode' is set, no further bit needs to
      read out, and the block is set as:
      - Inter-coded in compound mode;
      - With the nearest forward and backward reference frames;
      - In NEAREST_NEARESTMV mode;
      - In SIMPLE_TRANSLATION motion mode;
      - In COMPOUND_AVERAGE compound type; and
      - Skip set for residual.
      
      Change-Id: I50297f63a81135109332c4a51b516bffd7726777
      f704a1c8
    • Jonathan Matthews's avatar
      ref-mv: Don't stop scanning when ref-mv stack is full. · ca9132d0
      Jonathan Matthews authored
      This would result in certain motion vectors getting
      lower weights than they deserve, so putting them in
      the wrong position in the stack.
      
      BUG=aomedia:981
      
      Change-Id: I8bd106e97f494f5d3debaf967efcabcd39846726
      ca9132d0
  23. 31 Oct, 2017 2 commits
  24. 30 Oct, 2017 1 commit
  25. 27 Oct, 2017 1 commit
  26. 25 Oct, 2017 4 commits