1. 01 Nov, 2017 3 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 redundant macro USE_UNI_COMP_REFS · c6b17d82
      Zoe Liu authored
      USE_UNI_COMP_REFS is always true when ext-comp-refs is enabled and is
      always false otherwise.
      
      Change-Id: Ic6061a4ab88a2ebfeb11f178872ab13909060c0b
      c6b17d82
    • 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
  2. 31 Oct, 2017 1 commit
  3. 21 Oct, 2017 1 commit
    • Jingning Han's avatar
      Remove deprecated sub8x8 functions · 39ace890
      Jingning Han authored
      Cb4x4 unifies the operating for both sub8x8 and regular block sizes.
      Remove unused special handle for sub8x8.
      
      Change-Id: I7aadc541b753880a98979142206ccc73d22527ae
      39ace890
  4. 20 Oct, 2017 1 commit
    • Debargha Mukherjee's avatar
      Remove CONFIG_CB4X4 config flags · 6ea917ec
      Debargha Mukherjee authored
      Since CB4X4 is adopted and without it the codec does not work,
      it is better to remove it and simplify the code.
      
      Change-Id: I51019312846928069727967e3b2bbb60f0fba80d
      6ea917ec
  5. 16 Oct, 2017 1 commit
  6. 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
  7. 11 Oct, 2017 1 commit
  8. 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
  9. 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
  10. 02 Oct, 2017 1 commit
  11. 29 Sep, 2017 1 commit
  12. 19 Sep, 2017 1 commit
  13. 02 Sep, 2017 1 commit
  14. 31 Aug, 2017 2 commits
    • Jingning Han's avatar
      Enable motion field estimation in DRL · ffbb0f91
      Jingning Han authored
      Enable the use of motion field estimation in the dynamic motion
      vector referencing system. With default experiments on, it improves
      the compression performance:
      
      lowres 1.2%
      midres 1.5%
      
      Change-Id: Ifc5b15a7239b5c3212ea50f326ab99d372034658
      ffbb0f91
    • Jingning Han's avatar
      Add frame index to the decoded frames · c723b348
      Jingning Han authored
      Add frame index to the deocded frames. Store such information to
      the reference frame buffer pool. This design allows each frame
      to know its index in natural order, as well as its reference
      frames positions.
      
      Change-Id: I5bb36928dc5750a4fdcc582dca0d244d6482f400
      c723b348
  15. 30 Aug, 2017 1 commit
    • Yunqing Wang's avatar
      Refactor setup_ref_mv_list · d797ea9e
      Yunqing Wang authored
      This patch eliminates the is_inside() checking for each neighouring
      block in scan_row_mbmi() and scan_col_mbmi(). Instead, in
      setup_ref_mv_list(), find maximum above row_offset and left col_offset
      for current block, and use them to decide which above rows and left
      columns to search on. This patch doesn't change bitstream. No
      noticeable speedup is seen.
      
      Change-Id: Ic4ae74412605d86e9e675f86d23de3a69c04e8f3
      d797ea9e
  16. 15 Aug, 2017 1 commit
    • Urvang Joshi's avatar
      Remove ALT_INTRA flag. · 93b543ab
      Urvang Joshi authored
      This experiment has been adopted as it has been cleared by Tapas.
      
      Change-Id: I0682face60f62dd43091efa0a92d09d846396850
      93b543ab
  17. 21 Jul, 2017 1 commit
  18. 20 Jul, 2017 1 commit
    • Zoe Liu's avatar
      Add support to the experiment of altref2 · 97ad058e
      Zoe Liu authored
      This CL adds an extra alt-ref reference frame, namely ALTREF2_FRAME,
      and designs the contexts for ALTREF2_FRAME.
      
      Change-Id: I12fe8629b868aebf6c2b54260fca5abc38f90ae6
      97ad058e
  19. 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
  20. 12 Jul, 2017 1 commit
    • Zoe Liu's avatar
      Further work on ext-comp-refs for ref frame coding · fcf5fa27
      Zoe Liu authored
      (1) Work with var-refs to remove redundant bits in ref frame
          coding;
      (2) Add a new uni-directional compound reference pair:
          (LAST_FRAME, LAST3_FRAME);
      (3) Redesign the contexts for encoding uni-directional reference frame
          pairs;
      (4) Use aom_entropy_optimizer to collect stats for all the default
          probability setups related to the coding of reference frames.
      
      Compared against the baseline (default enabled tools excluding ext-tx
      and global-motion for encoder speed concern) with one-sided-compound,
      the coding gain of ext-comp-refs + var-refs - one-sided-compound is:
      
      lowres: avg_psnr -0.385%; ovr_psnr -0.378% ssim -0.344%
      midres: avg_psnr -0.466%; ovr_psnr -0.447% ssim -0.513%
      
      AWCY - High Latency:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.2758 | -0.1526 | -0.0965 |  -0.2581 | -0.2492 | -0.2534 |    -0.2118
      
      AWCY - Low Latency:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -1.0467 | -1.4500 | -0.9732 |  -0.9928 | -1.0407 | -1.0180 |    -1.0049
      
      Compared against the baseline (default enabled tools excluding ext-tx
      and global-motion for encoder speed concern) without
      one-sided-compound, the coding gain of
      ext-comp-refs + var-refs - one-sided-compound is:
      
      lowres: avg_psnr -0.875%; ovr_psnr -0.877% ssim -0.895%
      midres: avg_psnr -0.824%; ovr_psnr -0.802% ssim -0.843%
      
      Change-Id: I8de774c9a74c20632ea93ccb0c17779fa94431cb
      fcf5fa27
  21. 19 Jun, 2017 1 commit
    • Zoe Liu's avatar
      Add new coding tool of ext-comp-refs · c082bbcb
      Zoe Liu authored
      The tool of ext-comp-refs adds the uni-directional compound reference
      prediction. In details, 3 pairs of uni-direcitonal compound references
      are added for the comp ref prediction:
      (LAST_FRAME, LAST2_FRAME),
      (LAST_FRAME, GOLDEN_FRAME), and
      (BWDREF_FRAME, ALTREF_FRAME).
      
      This new tool of ext-comp-refs will eventually overwrite
      one-side-compound and have the two coding tools to merge to one.
      
      It achieves -0.35 ~ -0.55% coding gains in BDRate, compared against
      AV1 baseline with the default experiments on, but without
      one-sided-compound. It achieves -0.2% ~ -0.3% coding gains when
      one-sided-compound is on. It achieves larger gains on higher
      resolution.
      
      Change-Id: Icbdb16e97b96aaebaf2213f5f72d5331e2e358eb
      c082bbcb
  22. 13 Jun, 2017 1 commit
    • Zoe Liu's avatar
      Add encoder/decoder pipeline to support single ref comp modes · 85b66463
      Zoe Liu authored
      Now the single ref comp mode should work with WEDGE and
      COMPOUND_SEGMENT. For motion_var, the OBMC_CAUSAL mode uses the 2nd
      predictor if the neighboring block is single ref comp mode predicted.
      
      This patch removes the mode of SR_NEAREST_NEWMV and leaves four
      single ref comp modes in total:
      
      SR_NEAREST_NEARMV
      SR_NEAR_NEWMV
      SR_ZERO_NEWMV
      SR_NEW_NEWMV
      
      Change-Id: If6140455771f0f1a3b947766eccf82f23cc6b67a
      85b66463
  23. 23 May, 2017 1 commit
  24. 18 May, 2017 1 commit
  25. 15 May, 2017 1 commit
  26. 05 May, 2017 1 commit
  27. 27 Apr, 2017 1 commit
    • Zoe Liu's avatar
      Add new compound modes using single reference · 239f06b3
      Zoe Liu authored
      The hookup with the encoder-decoder pipeline will be in the following
      CLs. This is under the experiment of compound-singleref, with ext-
      inter enabled.
      
      Change-Id: I6523a1a6525539eb7c6aa6c5e11724a694e8bf6c
      239f06b3
  28. 20 Apr, 2017 1 commit
    • Alex Converse's avatar
      intrabc: Add initial skeleton · 28744309
      Alex Converse authored
      Missing features:
      * RDOPT (Forced on for certain blocks)
      * Any form of border extension
      * Non MI sized right and bottom edges
      * MV prediction
      
      Present features:
      * Force intrabc for some blocks
      * Carry intrabc in the bitstream
      * Validate DV is causal
      * Reconstruct intrabc block assuming border extension is unnecessary
      
      Change-Id: Ib1f6868e89bfacc2a4edfc876485bad1b347263b
      28744309
  29. 11 Apr, 2017 1 commit
  30. 23 Mar, 2017 1 commit
    • David Barker's avatar
      Re-enable av1_nmv_ctx() when ext-inter is enabled · 9620bcd5
      David Barker authored
      Currently, mbmi->ref_mv_idx can be set to a nonzero value
      on the encoder side if mbmi->mode is one of NEARMV, NEWMV,
      NEAR_NEARMV, or NEW_NEWMV. But it can only be nonzero on the
      decoder side if the mode is NEARMV or NEWMV. Hence av1_nmv_ctx
      has previously been disabled when ext-inter is enabled, to
      prevent a mismatch due to this.
      
      This patch changes the encoder behaviour to match the decoder
      behaviour.
      
      Change-Id: Icfe41fb72e76731ae373fe8c6065f5e003f6414f
      9620bcd5
  31. 08 Mar, 2017 1 commit
  32. 07 Mar, 2017 1 commit
  33. 02 Mar, 2017 1 commit
    • 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
  34. 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
  35. 04 Feb, 2017 1 commit
  36. 23 Jan, 2017 1 commit
    • Emil Keyder's avatar
      Rename NONE to NONE_FRAME. · 01770b3e
      Emil Keyder authored
      This follows the naming for the other frame types, and allows libaom
      to be compiled against other libraries that also #define NONE.
      
      Change-Id: Ic2e2814587bbc5ea67385a9af775396d29b7dde0
      01770b3e