1. 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
  2. 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
  3. 31 Oct, 2017 2 commits
  4. 30 Oct, 2017 1 commit
  5. 27 Oct, 2017 1 commit
  6. 25 Oct, 2017 4 commits
  7. 24 Oct, 2017 1 commit
    • Yunqing Wang's avatar
      Enhance and refactor copying code · b90a97a8
      Yunqing Wang authored
      Modified the copying code and the profiling showed better performance
      than previous implementation.
      
      Change-Id: I41f585e0b0eac7a0deb4dec197c178e412a48db9
      b90a97a8
  8. 23 Oct, 2017 3 commits
  9. 21 Oct, 2017 2 commits
  10. 20 Oct, 2017 4 commits
  11. 19 Oct, 2017 2 commits
  12. 16 Oct, 2017 2 commits
    • Yunqing Wang's avatar
      Further modify the sample selection in warped motion · 5a6dc0e7
      Yunqing Wang authored
      1. Reduce the worst-case number of samples from 34 to 16.
      2. Simplify the trimming strategy to not use multiplication and
      division operations.
      
      Overall, this modification reduces the complexity without affecting
      the coding gain too much.
      
      Turning on "ext_warped_motion", the Borg test showed:
                   avg_psnr ovr_psnr ssim
      cam_lowres:  -0.912   -0.920  -1.246
      lowres:      -0.229   -0.219  -0.373
      
      Change-Id: Ida21d1d3f22998c851b1270fe61a5e30f9e4ec38
      5a6dc0e7
    • Sebastien Alaiwan's avatar
      Remove compile guards for CONFIG_EXT_REFS · 365e644a
      Sebastien Alaiwan authored
      This experiment has been adopted, we can simplify the code
      by dropping the associated preprocessor conditionals.
      
      Change-Id: I4705652ac8231ee25f960e8096dc97c2aeed1d20
      365e644a
  13. 14 Oct, 2017 1 commit
  14. 13 Oct, 2017 1 commit
  15. 12 Oct, 2017 1 commit
    • Yunqing Wang's avatar
      Find warped reference MV · 97d6a37e
      Yunqing Wang authored
      While finding the reference MV for a block, if one neighbouring block's
      motion mode is warped motion mode, instead of directly adding that
      block's MV to the candidate MV list, we use that neighbouring block's
      warped motion parameters to compute a MV for the center point of the
      current block, and then add that MV to the candidate MV list.
      
      Borg test result:
                   avg_psnr ovr_psnr ssim
      cam_lowres:  -0.507   -0.514  -0.685
      lowres:      -0.114   -0.122  -0.180
      
      The change is added under ext_warped_motion config flag.
      
      Change-Id: I3ce6290a1fd512b613eab5d7620c8bcb08f189a6
      97d6a37e
  16. 11 Oct, 2017 2 commits
  17. 10 Oct, 2017 4 commits
    • Jingning Han's avatar
      Make inter mode context depend on nearest neighbor · abf6f284
      Jingning Han authored
      Reduce the inter mode context model dependency to be within the
      nearest neighbor search.
      
      Change-Id: I0b9e7d360919a809b5400f233040bb474ab56768
      abf6f284
    • Jingning Han's avatar
      Disable all_zero_flag in opt-ref-mv · 426caba9
      Jingning Han authored
      This breaks the inter mode context dependency on the full spatial
      neighbor search.
      
      Change-Id: Ic27fb63531ce2c949756ea10752a7a8e7b7b1046
      426caba9
    • Jingning Han's avatar
      Reduce newmv context model dependency size · 8a8c50af
      Jingning Han authored
      Make the newmv context model dependent only on the nearest spatial
      neighbors reference motion vectors count and the newmv coded block
      counts.
      
      Change-Id: I8db9ca453c4fefddafba5f3476ee0d733f87dfc0
      8a8c50af
    • Sarah Parker's avatar
      Compute global refmv candidate at center of current block · 0a5cc5fd
      Sarah Parker authored
      When a neighboring block uses global motion, use the mv
      computed at the center of the current block as the candidate vector
      rather than the mv computed at the center of the neighboring block.
      
      0.15% improvement on cam_lowres
      
      Change-Id: I79eff8bf27a7aa84ae4a6d56e4a10c41a4438fb9
      0a5cc5fd
  18. 09 Oct, 2017 1 commit
    • Zoe Liu's avatar
      Add encoder/decoder support to frame_sign_bias · 17af2748
      Zoe Liu authored
      Frame sign bias value will not be signaled in frame header. Instead,
      the sign bias of reference frames are derived from their corresponding
      frame offsets at both encoder and decoder.
      
      The tool of 'frame_sign_bias' is dependent of 'frame_marker'. Compared
      against baseline, the enabling of both tools obtains a small coding gain
      of -0.08 ~ -0.11% in BDRate over Google lowres/midres tests.
      
      Change-Id: I8d85dc427ced0b2152712ccf61be4be6068075b9
      17af2748
  19. 08 Oct, 2017 1 commit
    • Yunqing Wang's avatar
      Modify storing and using of the temporal frame MVs · d1d511f3
      Yunqing Wang authored
      Add an experiment "tmp", which includes:
      1. Always use larger block size while storing frame MVs and make
      it consistent for CB4X4 or non-CB4X4 cases. Namely, use 8x8 for
      4x4 mi size and 16x16 for 8x8 mi size.
      2. Allocate smaller buffer for frame MVs and save memory usage.
      3. Use nearby 8x8 or 16x16 location's previous frame MVs, and make
      the logic simple.
      4. Reduce the number of copying for frame MVs, that is very costly
      in decoder.
      
      Baseline decoder got 5+% speedup. Borg test on lowres set showed a
      +0.009% PSNR difference before/after the patch.
      
      Change-Id: I61e14e95fd35bea88f338931b4f43c44f4e4cf1f
      d1d511f3
  20. 05 Oct, 2017 1 commit
    • Jingning Han's avatar
      Limit inter mode context dependency scope · 0e4c8064
      Jingning Han authored
      Constrain the zeromv context model to depend on the top-left
      8x8 block in the collocated region only. This reduces the latency
      on parsing its context index. The coding performance loss is around
      0.05% level.
      
      Change-Id: I29bc7e4eb3e7c2e4ab32acd071420f4cb038c856
      0e4c8064