1. 24 Dec, 2017 1 commit
  2. 22 Dec, 2017 2 commits
    • 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
    • Cheng Chen's avatar
      Remove lpf_sb · 07365c9a
      Cheng Chen authored
      As loopfilter is not needed for intrabc, clean up related code.
      
      Change-Id: If89d4969a7795cd8993e6add8fd03ef1296699ef
      07365c9a
  3. 20 Dec, 2017 2 commits
    • Zoe Liu's avatar
      Remove unused prediction modes for ext-skip · feb1ebe9
      Zoe Liu authored
      For ext-skip, if a partition block uses the new skip mode,
      NEAREST_NEARESTMV is the prediction mode. Other predictions were once
      tried out but did not show noticeable coding gains.
      
      Change-Id: I76c0aa0c68fe71f95cc4a09ef0de533e4ceb2f60
      feb1ebe9
    • Imdad Sardharwalla's avatar
      Fix inconsistent use of ref_mv_idx. · c23ad632
      Imdad Sardharwalla authored
      "+ 1" has been added in a few locations to match the indices for the
      context for the CDFs and the motion vectors.
      
      Suggested fix (of removing +1s entirely) can then be implemented
      without further affecting the overall behaviour of the encoder and
      decoder.
      
      BUG=aomedia:858
      
      Change-Id: I650a618d3fda1d27bd3550d25ad1ac52e4365061
      c23ad632
  4. 18 Dec, 2017 2 commits
    • Luc Trudeau's avatar
      [CleanUp] Remove block from av1_mode_context_analyzer · 15a18e3d
      Luc Trudeau authored
      av1_mode_context_analyzer is always called with block == -1.
      
      Change-Id: Ibc9e7e87ea95f3651f7505b82674a6fd795ae985
      15a18e3d
    • 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
  5. 16 Dec, 2017 2 commits
    • Cheng Chen's avatar
      Add filter delay for intraBC · 7b88ade6
      Cheng Chen authored
      Because of loop filter, the bottom 8 rows and the rightmost 8 cols
      of IntraBC area now is invalid. It is equal to let the valid region
      add an offset of the filter delay.
      
      Change-Id: Ia91a5b3e81279166dc97a60a7fb6fbda3f2df138
      7b88ade6
    • 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
  6. 15 Dec, 2017 1 commit
  7. 14 Dec, 2017 1 commit
    • 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
  8. 12 Dec, 2017 2 commits
    • Hui Su's avatar
      intrabc: modify default ref dv · 2d46afcd
      Hui Su authored
      Make sure the ref dv is a valid dv.
      
      Improves compression by about 0.3% on screen_content keyframes.
      
      Change-Id: I3a20c1a04b0ebcad610276f21b410dcfc8ba4c4d
      2d46afcd
    • Cheng Chen's avatar
      LPF_SB: set row delay to work with intrabc · f18ba021
      Cheng Chen authored
      Intrabc search area can't use pixels of the last 8 rows in the current
      superblock row. Add a delay so that lpf_sb can work with intrabc.
      
      Let lpf_sb on with intrabc while other loop filtering off (cdef, loop
      restoration).
      
      Change-Id: I98ab093a17096387b6233182da2656f90dfa09eb
      f18ba021
  9. 09 Dec, 2017 1 commit
  10. 05 Dec, 2017 1 commit
  11. 22 Nov, 2017 1 commit
  12. 21 Nov, 2017 1 commit
    • Dominic Symes's avatar
      Proposed changes to intrabc valid source area · 1699b50e
      Dominic Symes authored
      The horizontal delay is specified in pixels to work for SB64 and SB128.
      The wavefront gradient is changed so the above block is available.
      
      Change-Id: I24cc426bded6904925930f6d431f5737070f9e17
      1699b50e
  13. 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
  14. 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
  15. 15 Nov, 2017 1 commit
  16. 10 Nov, 2017 1 commit
    • Urvang Joshi's avatar
      Remove smooth_hv experiment flag. · b7301cd6
      Urvang Joshi authored
      This experiment has been cleared by Tapas.
      
      Also, fix a couple of hash signatures in the test while we are at it.
      
      Change-Id: I1658bcb07913cf8bd47cfffadd729e16d5c55fc3
      b7301cd6
  17. 07 Nov, 2017 1 commit
  18. 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
  19. 31 Oct, 2017 1 commit
  20. 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
  21. 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
  22. 16 Oct, 2017 1 commit
  23. 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
  24. 11 Oct, 2017 1 commit
  25. 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
  26. 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
  27. 02 Oct, 2017 1 commit
  28. 29 Sep, 2017 1 commit
  29. 19 Sep, 2017 1 commit
  30. 02 Sep, 2017 1 commit
  31. 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
  32. 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