1. 04 Nov, 2017 1 commit
  2. 01 Nov, 2017 1 commit
  3. 31 Oct, 2017 2 commits
  4. 30 Oct, 2017 2 commits
  5. 27 Oct, 2017 3 commits
    • Cheng Chen's avatar
      JNT_COMP: 3. rd select the best weight · ca6958c6
      Cheng Chen authored
      Select the best compound_idx in rd.
      The rate/cost for compound_idx and their ctx will be in patch 4.
      But there's a bug for now if we don't encode one more time using the
      selected compound_idx. It remains a issue to be solved in the future.
      Change-Id: I5e1ba51da2b6ab5bacd8aba752dda43bd2257014
    • Sebastien Alaiwan's avatar
      Accept all warped motion model settings · 163710c0
      Sebastien Alaiwan authored
      When needed, fallback regular interp filter at reconstruction stage.
      Such bitstreams are valid.
      However, as we don't expect aomenc to generate them,
      print a helper warning.
      Change-Id: If30c8d8e478688d142abd857f4c35f3e8c68edb4
    • RogerZhou's avatar
      Fixed build conflict (amvr,intrabc). · 10a0380a
      RogerZhou authored
      Change-Id: Ibfeb424bf0ebab7bbeb69f6f6df24a4f4924ec97
  6. 24 Oct, 2017 2 commits
    • Cheng Chen's avatar
      JNT_COMP: 1. Init version of experiment JNT_COMP · d867c9aa
      Cheng Chen authored
      Enable to assign distance based weight for joint compound prediction.
      (w0, w1) are weights for two predictors of different distance to
      current frame.
      Use 4 bit precision for quantized distance weight. e.g.
      the prediction is generated as
      value = (w0 * p0 + w1 * p1) >> n
      w0 + w1 = (1 << n), n = 4;
      Change-Id: Ib0ff0c41c82b9ebb033f498e90c18a03d18969e4
    • Hui Su's avatar
      Remove experimental flag of chroma_sub8x8 · 9fa96234
      Hui Su authored
      Change-Id: I32c5015bedef07f58413c679b4aaf30651a357b9
  7. 23 Oct, 2017 2 commits
  8. 21 Oct, 2017 2 commits
  9. 20 Oct, 2017 2 commits
  10. 17 Oct, 2017 1 commit
  11. 16 Oct, 2017 1 commit
  12. 15 Oct, 2017 1 commit
  13. 13 Oct, 2017 1 commit
  14. 12 Oct, 2017 2 commits
  15. 06 Oct, 2017 1 commit
  16. 04 Oct, 2017 2 commits
    • David Barker's avatar
      Harmonize OBMC prediction at tile edges · 1e2fb103
      David Barker authored
      When we have an OBMC block at the top of a tile, we don't generate
      an 'above' prediction, in order to preserve tile independence.
      However, the conditions for when to *generate* the above prediction
      and when to *use* it were different when dependent-horztiles is
      Since dependent-horztiles allows each tile to depend on the tile
      above, it seems reasonable to unify the conditions to use
      xd->above_available (and similar for left preds, for the sake
      of consistency). This allows OBMC across horizontal tile boundaries,
      but not across tile group boundaries, in line with the rest of the
      dependent-horztiles experiment.
      Change-Id: I86d5de132c4429106a6025e7a7a2baec974e618c
    • 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
      Change-Id: I6b24a61bac3e4b220d8d46d0b27cfe865dcfba81
  17. 03 Oct, 2017 1 commit
    • David Barker's avatar
      Fix global-motion + error-resilient-mode · d7c8bd51
      David Barker authored
      Patch https://aomedia-review.googlesource.com/c/21783
      changed things so that error-resilient frames use the default
      global motion parameters as a reference, rather than taking
      the reference from the previous frame.
      This was implemented by clearing out cm->prev_frame->global_motion
      when we have an error-resilient frame. Unfortunately, this causes
      an issue: if we have an error resilient frame which isn't stored
      into any reference slots, followed by a non-error-resilient frame,
      then both frames refer to the same prev_frame. The second frame
      then delta-codes against cm->prev_frame->global_motion, but
      this was reset to the default values by the intervening
      error-resilient frame!
      In order to allow the above case to work as intended, expand the
      default warp parameter set to a full WarpedMotionParams struct,
      and use that as the reference for error-resilient frames.
      This also allows us to remove set_default_warp_params, as we
      can now just copy directly from default_warp_params.
      Change-Id: I9645615db2700c1d3810e6e42f4f1da626fcd5e3
  18. 02 Oct, 2017 1 commit
  19. 29 Sep, 2017 2 commits
  20. 28 Sep, 2017 1 commit
    • Rupert Swarbrick's avatar
      Make yv12_buffer_config more uniform · 82529d22
      Rupert Swarbrick authored
      This patch slightly reorders the fields in yv12_buffer_config and then
      uses anonymous unions in order to make it possible to write code that
      iterates uniformly over planes.
      The patch also ports some code (mostly in yv12extend.c and
      aom_scale.c) to show how this can make things more concise.
      This should make no difference to the coded results. I think it's
      unlikely to have any significant performance impact (the reordered
      fields in a yv12_buffer_config only come to 17*4 = 68 bytes in total,
      so almost fit in a normal sized cache line).
      Change-Id: Iebb46344500b9df82915f34cfd193e189d712062
  21. 27 Sep, 2017 4 commits
    • Rupert Swarbrick's avatar
      Fix typo in previous patch (av1_make_masked_inter_predictor) · 9a6015d7
      Rupert Swarbrick authored
      With convolve round, tmp_buf32 should be set to tmp_buf rather than
      tmp_dst because we want the actual pointer value rather than the funky
      rescaled one when the frame is high bit depth.
      Change-Id: I614ca1ebb4b6db8c4957fdced9dc2009a7ac107e
    • 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
    • Rupert Swarbrick's avatar
      Only allocate one temp buffer in av1_make_masked_inter_predictor · e41223d1
      Rupert Swarbrick authored
      Exactly one of tmp_dst/tmp_dst_/tmp_dst2 is used in a call to
      av1_make_masked_inter_predictor. Work out how many bytes are needed by
      the largest one possible and just allocate that.
      Change-Id: Ib8fabaf1f461ce1192c5657a3d2b5a4f7fa8d7b1
    • David Barker's avatar
      Fix ext-partition + motion-var · b74b9560
      David Barker authored
      When calculating the above overlapped prediction, we adjust
      xd->mb_to_bottom_edge to have the correct value for the prediction
      we're about to make. This prediction is half the height of the
      current block - *unless* the block is 128 pixels high, in which
      case the prediction is only 32 pixels high.
      This patch implements the special case for 128-pixel high blocks.
      (all of this applies analogously for left predictions too)
      Change-Id: I2780e8d4a6f8a9f82f540f2c2dfde691d07298e2
  22. 26 Sep, 2017 1 commit
    • Rupert Swarbrick's avatar
      Remove duplicated code in av1_make_masked_inter_predictor · 87fe5b96
      Rupert Swarbrick authored
      This patch basically just pushes #if CONFIG_HIGHBITDEPTH down past
      other #if/#endif blocks, letting us pull out common code instead of
      having to repeat it. There should be no functional change (indeed,
      there should be no change except whitespace after preprocessing!)
      Change-Id: I9bcbfbdec5ad54e42095de085df381e85bf48197
  23. 19 Sep, 2017 1 commit
  24. 18 Sep, 2017 2 commits
    • Luc Trudeau's avatar
      Remove duplicate code in reconinter.c · 9ead3b8c
      Luc Trudeau authored
      Pull out the identical code block that declares tmp_dst2 with or without
      CONFIG_HIGHBITDEPTH and stick it at the front of there.
      Change-Id: I69787875f6d67281c9b3c0df99c1eda6a168f426
    • Luc Trudeau's avatar
      Fix static analysis undefined operation · 030ff74d
      Luc Trudeau authored
      Making the condition const simplifies the static analysis and
      resolves the issue
      Change-Id: Ie247acc0c6a4f842db16b34c8af48e04b81e74d3
  25. 14 Sep, 2017 1 commit