1. 01 Feb, 2018 1 commit
  2. 26 Jan, 2018 1 commit
    • Yunqing Wang's avatar
      Speed up av1_find_mv_refs() · b41ffb95
      Yunqing Wang authored
      av1_update_mv_context() is only used to provide compound_mode_context,
      which is the same as mode_context in find_mv_refs_idx(). This patch
      removes the calling of av1_update_mv_context() that takes 0.5% of the
      decoder time. This doesn't change bitstream.
      
      Change-Id: I6f0e082b237ff42c3b3e72361c46f98249ba07ab
      b41ffb95
  3. 25 Jan, 2018 1 commit
    • Zoe Liu's avatar
      Simplify context identification for coding ref frames · fa8bad19
      Zoe Liu authored
      This patch simply aggregates the checking on the counts of certain
      reference frames in the neighboring above and left blocks. It does
      not incur any coding performance change.
      
      Change-Id: I59a962ba95e7ab16731ce97371ec5709a582a0ba
      fa8bad19
  4. 24 Jan, 2018 1 commit
  5. 23 Jan, 2018 1 commit
  6. 18 Jan, 2018 1 commit
    • Jingning Han's avatar
      Use single context model for mv diff · d7b54cac
      Jingning Han authored
      Reduce the context model size from 3 sets to 1 set for motion
      vector difference coding in opt-ref-mv.
      
      Change-Id: Iece1e01bb44f6a445c13787aa948400b8feef118
      d7b54cac
  7. 17 Jan, 2018 1 commit
  8. 04 Jan, 2018 1 commit
    • Yunqing Wang's avatar
      Remove sample sorting in warped motion sample selection · d3c13e88
      Yunqing Wang authored
      The original sample selection process involves finding best 8 sorted
      samples according to motion vector difference(MVD) between neighbor
      block and current block, and then trimming samples. To reduce the
      complexity, use the current block width/height as the MVD threshold,
      and trim the samples without sorting.
      
      This gives slightly less gain than the original method.
      AWCY result:
               PSNR   PSNR HVS   SSIM
      Average  -0.07   -0.13     -0.12
      Borg test result:
                   avg_psnr ovr_psnr ssim
      cam_lowres:  -0.112   -0.112  -0.180
      lowres:      -0.068   -0.073  -0.125
      
      Change-Id: Ic2f79a170441d5bcb04ea87dddf490ef7fbba8bc
      d3c13e88
  9. 27 Dec, 2017 1 commit
    • Jingning Han's avatar
      Drop mvs with magnitude above 4096 from mvs reference frame · 05102b52
      Jingning Han authored
      When either component of a motion vector is above 4096, drop this
      motion vector from the motion vector reference frame for later
      motion field projection use. The coding performance change is close
      to 0 for lowres and midres. This ensures that the motion vector
      and reference frame tuple can be efficiently stored within 32 bits.
      
      Change-Id: I9ae60a5caab2d3f49200abb5415532d82986839f
      05102b52
  10. 26 Dec, 2017 1 commit
    • Zoe Liu's avatar
      Not signal reference_mode if one ref avaialble · c67d98c6
      Zoe Liu authored
      Use the frame ID that indicates the frame display order to identify
      whether two different reference frames exist for inter-coded frames.
      If there is only one unique reference valid in the reference buffer,
      there is no need to signal reference_mode. Instead, the decoder may
      identify such scenario and set reference_mode to SINGLE_REFERENCE.
      
      Change-Id: If7d374f5355f153c50b408be5a9956a833c976c3
      c67d98c6
  11. 24 Dec, 2017 1 commit
  12. 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
  13. 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
  14. 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
  15. 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
  16. 15 Dec, 2017 1 commit
  17. 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
  18. 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
  19. 09 Dec, 2017 1 commit
  20. 05 Dec, 2017 1 commit
  21. 22 Nov, 2017 1 commit
  22. 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
  23. 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
  24. 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
  25. 15 Nov, 2017 1 commit
  26. 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
  27. 07 Nov, 2017 1 commit
  28. 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
  29. 31 Oct, 2017 1 commit
  30. 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
  31. 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
  32. 16 Oct, 2017 1 commit
  33. 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