1. 27 Dec, 2017 1 commit
  2. 23 Dec, 2017 1 commit
    • Yunqing Wang's avatar
      Add optimized convolve functions for single reference case · 94e3fe3b
      Yunqing Wang authored
      Added optimized convolve functions for single reference case, so that no
      separate post rounding is needed and the result is written to the
      destination buffer directly. Duplicate code will be cleaned up later.
      
      Change-Id: Iffc0cc6e135b8b6f45a95c314d63368f5aa35f34
      94e3fe3b
  3. 22 Dec, 2017 1 commit
  4. 15 Dec, 2017 1 commit
    • Jingning Han's avatar
      Remove sub8x8 mv average functions · 07f93afb
      Jingning Han authored
      These functions are deprecated with the unified block size
      operation design in cb4x4.
      
      Change-Id: Idce15add89022db52de1bc5a89518e7cc7bb7b1a
      07f93afb
  5. 13 Dec, 2017 1 commit
  6. 07 Dec, 2017 1 commit
  7. 01 Dec, 2017 1 commit
  8. 27 Nov, 2017 1 commit
    • David Barker's avatar
      scaling: Fix border clamping for subsampled planes · b3b5304f
      David Barker authored
      When forming a scaled prediction, we need to clamp against
      the extended frame border which was set up when the relevant
      reference frame was decoded. The width of this border actually
      depends on the subsampling mode (for UV planes), but before this
      patch we were always using the Y plane's border width.
      
      This resulted in bad predictions when signalling a motion vector
      which points far outside the reference frame. This patch fixes
      the clamping, and restores the intended behaviour for out-of-frame
      motion vectors.
      
      Change-Id: I2cf575ce339a3e22a3c8444de0d0c3be031007c9
      b3b5304f
  9. 20 Nov, 2017 1 commit
    • Cheng Chen's avatar
      JNT_COMP: refactor if statements · 8263f80c
      Cheng Chen authored
      Refactor if statement that use frame_offset == -1 to indicate
      jnt_comp is not chosen, as distance now can not be negative.
      Instead, add a variable use_jnt_comp_avg for the same functionality.
      
      Change-Id: Ie6b9c6ab36131b48bc9e066babada17046729cd8
      8263f80c
  10. 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
  11. 14 Nov, 2017 1 commit
  12. 10 Nov, 2017 1 commit
    • Cheng Chen's avatar
      JNT_COMP: turn off for one_sided_compound · 060e192b
      Cheng Chen authored
      One_sided_compound is less likely to provide gains for jnt_comp.
      Stop jnt_comp search when one_sided_compound is true. It saves coding
      time as well as bit overhead.
      
      Change-Id: I6714e5d211eba14a5793bdae7215ccfcc1d8f67a
      060e192b
  13. 06 Nov, 2017 1 commit
    • Cheng Chen's avatar
      JNT_COMP: Refactor code · f78632e0
      Cheng Chen authored
      The refactoring serves two purposes:
      1. Separate code paths for jnt_comp and original compound average
      computation. It provides function interface for jnt_comp while leaving
      original compound average computation unchanged. In near future, SIMD
      functions can be added for jnt_comp using the interface.
      
      2. Previous implementation uses a hack on second_pred. But it may cause
      segmentation fault when the test clip is small. As reported in Issue
      944. This refactoring removes hacking and make it possible to address
      the seg fault problem in the future.
      
      Change-Id: Idd2cb99f6c77dae03d32ccfa1f9cbed1d7eed067
      f78632e0
  14. 04 Nov, 2017 1 commit
  15. 01 Nov, 2017 2 commits
    • Yue Chen's avatar
      Remove CONFIG_INTERINTRA · 670b660d
      Yue Chen authored
      Change-Id: Icbedc16b01adf9b48f0f357ec89143462865d54e
      670b660d
    • 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
  16. 31 Oct, 2017 2 commits
  17. 30 Oct, 2017 2 commits
  18. 27 Oct, 2017 1 commit
    • Zhijie Yang's avatar
      Add short_filter experiment · f02f8aef
      Zhijie Yang authored
      Reduce the motion interpolation filter taps for inter prediction
      blocks with widths or heights smaller than or equal to 4 to alleviate the memory
      bandwidth increase.
      
      AWCY HL: 0.01% Y, -0.20% U, -0.29% V (positive number means loss)
      
      Change-Id: Ic454340e20aea2f1aae622336990f24a9e5b54d8
      f02f8aef
  19. 24 Oct, 2017 1 commit
  20. 21 Oct, 2017 1 commit
  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. 17 Oct, 2017 1 commit
  23. 16 Oct, 2017 1 commit
  24. 13 Oct, 2017 1 commit
  25. 12 Oct, 2017 2 commits
  26. 04 Oct, 2017 1 commit
    • Rupert Swarbrick's avatar
      Pack InterpFilters into a single integer · 27e90295
      Rupert Swarbrick authored
      Before this patch, if CONFIG_DUAL_FILTER was true then an MB_MODE_INFO
      stored its filter choices as an array of four numbers, each of which
      was between 0 and 10. It also seems that elements 2 and 3 of the array
      were always the same as elements 0 and 1 when used.
      
      This patch defines a new type(def) called InterpFilters together with
      constructor and extractor functions. When CONFIG_DUAL_FILTER is zero,
      InterpFilters is a synonym for InterpFilter and the constructor and
      extractor functions should compile away to nothing. When it is
      nonzero, InterpFilters is a uint32_t which stores the x filter in the
      high part and the y filter in the low part (this looks strange, but
      matches the old numbering).
      
      Making this change allows us to get rid of lots of special case code
      that was dependent on CONFIG_DUAL_FILTER. The uniform
      extract/make/broadcast interface also actually shortens code in
      general.
      
      Change-Id: I6b24a61bac3e4b220d8d46d0b27cfe865dcfba81
      27e90295
  27. 02 Oct, 2017 1 commit
  28. 27 Sep, 2017 1 commit
    • David Barker's avatar
      ext-partition: Don't read not-yet-decoded values · 761b1ac8
      David Barker authored
      When deciding whether the top-right or bottom-left blocks are
      available, we currently always act as if we're using 128x128
      superblocks. This means that, when using 64x64 superblocks,
      we sometimes conclude that blocks are available when they haven't
      been decoded yet!
      
      This typically happens at, for example, mi_row=15, mi_col=16
      (for bottom left), where we're at a 64x64 boundary but not
      a 128x128 boundary.
      
      This patch fixes the issue by checking based on the signalled
      superblock size.
      
      Note: Most of this patch is just threading 'cm' through the
      intra prediction process, so that we have access to cm->sb_size
      in has_top_right() and has_bottom_left()
      
      Change-Id: I126964c510aafffc870e7cd8b3e64a46abb14b3a
      761b1ac8
  29. 05 Sep, 2017 1 commit
  30. 25 Aug, 2017 1 commit
    • Rupert Swarbrick's avatar
      Add support for 16x4 partitions · 6a93b155
      Rupert Swarbrick authored
      When updating default_partition_cdf, this sums the probabilities that
      were divided evenly across the pairs PARTITION_HORZ_A/PARTITION_HORZ_B
      and PARTITION_VERT_A/PARTITION_VERT_B. Those summed probabilities now
      get distributed evenly across the triples you get by adding
      PARTITION_HORZ_4 and PARTITION_VERT_4, respectively.
      
      Rather than implement 2X8/8X2 blocks for now, ss_size_lookup returns
      4X8/8X4 block sizes to use as chroma transform sizes for 4X16/16X4
      blocks.
      
      The changes in setup_pred_plane and set_skip_context are because this
      is presumably the first time we've had to deal with 16x4 or 4x16
      blocks. Since BLOCK_16X4 is not less than BLOCK_8X8, the existing
      logic didn't work (and the "shuffle back one" logic should probably be
      done for small widths and heights separately).
      
      Change-Id: If28d8954da42d6c726f2bcce2cb5242154b0870c
      6a93b155
  31. 16 Aug, 2017 1 commit
    • Rupert Swarbrick's avatar
      Simplify motion var parameters in reconinter.h · 1cfe474b
      Rupert Swarbrick authored
      Before this patch, the functions build_inter_predictors, allow_warp
      and av1_make_inter_predictor took two parameters (if
      CONFIG_MOTION_VAR): mi_col_offset and mi_row_offset. These were used
      for two things: they were used to look up a MODE_INFO structure and
      the code figured out it was doing OBMC if at least one offset was
      nonzero.
      
      This patch slightly simplifies things by passing the relevant mi and a
      flag saying whether we're doing OBMC instead. This means the
      allow_warp function actually loses a parameter.
      
      It also moves all mention of the functions out of the header and into
      reconinter.c since they are only used in that compilation unit.
      
      Change-Id: I8dedad9d7384ee0aa17b977e92ea7bfa83a532ef
      1cfe474b
  32. 15 Aug, 2017 1 commit
  33. 14 Aug, 2017 1 commit
  34. 21 Jul, 2017 1 commit
  35. 13 Jul, 2017 2 commits