1. 02 Aug, 2017 1 commit
  2. 31 Jul, 2017 2 commits
  3. 26 Jul, 2017 2 commits
  4. 25 Jul, 2017 2 commits
    • Jingning Han's avatar
      Account for the 64x64 proc block constrain in obmc masking · 440d4254
      Jingning Han authored
      Make the codec account for the 64x64 processing unit constraint
      when producing the mask for overlapped filter.
      
      Change-Id: I3e596492ae522abe678369b0c9710441549e817e
      440d4254
    • Jingning Han's avatar
      Make maximum obmc process unit 64x64 · 501294ce
      Jingning Han authored
      For 128x128 level blocks, process the overlapped prediction in
      the unit of 64x64. This allows hardware design to reuse the 64x64
      processing unit in 128x128 level block coding.
      
      Change-Id: I3967b8e3c1c697f96a50e59a0957fc69b67e6f8e
      501294ce
  5. 21 Jul, 2017 2 commits
  6. 13 Jul, 2017 3 commits
    • Urvang Joshi's avatar
      Refactor av1_build_inter_predictors_sb(). · 686d4fd2
      Urvang Joshi authored
      Before this, this function was copied-and-edited from
      av1_build_inter_predictors_sby() and av1_build_inter_predictors_sbuv().
      Also, some places used sb() one directly (like rdopt.c), while others used
      sby() and sbuv() separately (like encodeframe.c --> encode_superblock()).
      
      This was prone to errors, if someone mistakenly modified only one/two of
      the 3 functions.
      
      Now, we just reuse sby() and sbuv() functions in sb().
      
      Verified that there's no change in output.
      
      Change-Id: If81d78e767cc3fa09f06094d4db36ff1eaea3e4f
      686d4fd2
    • Jingning Han's avatar
      Remove deprecated av1_build_inter_predictor_sub8x8 function · 2cf590fe
      Jingning Han authored
      Change-Id: Ia75a5160fc11df5d5dcbcb1bcf767de9925f811e
      2cf590fe
    • Jingning Han's avatar
      Resolve performance regression in compound rounding and segment · 077e320a
      Jingning Han authored
      This commit resolves the compression performance regression when
      both compound rounding and compound segment are enabled.
      
      Change-Id: I831b4e44d2b054aa74922eb0c541eaa2ac355e0e
      077e320a
  7. 12 Jul, 2017 1 commit
    • Rupert Swarbrick's avatar
      ext-partition-types: Add 4:1 partitions · 93c39e91
      Rupert Swarbrick authored
      This patch adds support for 4:1 rectangular blocks to various common
      data arrays, and adds new partition types to the EXT_PARTITION_TYPES
      experiment which will use them.
      
      This patch has the following restrictions, which can be lifted in
      future patches:
      
        * ext-partition-types is incompatible with fp_mb_stats and supertx
          for the moment
      
        * Currently only 32x32 superblocks can use the new partition types
      
      There's a slightly odd restriction about when we allow
      PARTITION_HORZ_4 or PARTITION_VERT_4. Since these both live in the
      EXT_PARTITION_TYPES CDF, read_partition() can only return them if both
      has_rows and has_cols is true. This means that at least half of the
      width and height of the block must be visible. It might be nice to
      relax that restriction but that would imply a change to how we encode
      partition types, which seems already to be in a state of flux, so
      maybe it's better to wait until that has settled down.
      
      Change-Id: Id7fc3fd0f762f35f63b3d3e3bf4e07c245c7b4fa
      93c39e91
  8. 08 Jul, 2017 2 commits
    • Fergus Simpson's avatar
      Fix frame scaling prediction · 505f0068
      Fergus Simpson authored
      Use higher precision offsets for more accurate predictor
      generation when references are at a different scale from
      the coded frame.
      
      Change-Id: I4c2c0ec67fa4824273cb3bd072211f41ac7802e8
      505f0068
    • Debargha Mukherjee's avatar
      Changed scaling of MVs to use higher precision. · 15836145
      Debargha Mukherjee authored
      This is intended to be a no-op when scaling is not
      enabled, but is expected to result in more accurate
      prediction when references need to be scaled.
      
      However note all xs, yx, subpel_x and subpel_y values
      are now at higher than 1/16th precision.
      
      Change-Id: I4b22573ea290a31fc58ead980bb0d5e5a9e89243
      15836145
  9. 24 Jun, 2017 1 commit
    • David Barker's avatar
      Change mv scaling behaviour · 67d968f3
      David Barker authored
      This patch changes the motion vector scaling and clamping to be
      slightly more accurate (removing an occasional 1px offset due to
      multiple roundings) and fixes the border clamping when scaling
      frames.
      
      Change-Id: I032dc0b87854eebafa58f1f803981e23c8cc2d9b
      67d968f3
  10. 23 Jun, 2017 1 commit
    • David Barker's avatar
      Fix bug with chroma-sub8x8 + resizing · 11132ce3
      David Barker authored
      The special path in build_inter_predictors for chroma blocks
      corresponding to sub8x8 luma blocks would always fetch the
      scale factors from 'xd', which correspond (at least in the
      decoder) to the references of the block for which is_chroma_reference
      returns true.
      
      The correct behaviour is to fetch the scale factors from 'ref_buf',
      which corresponds to the references of the block currently being
      predicted.
      
      This patch fixes some encode/decode mismatches which were caused
      by the above behaviour when the various reference frames had
      different sizes.
      
      Change-Id: I48a0a167ea25d47d08018016cf8b77885b3b5d6b
      11132ce3
  11. 21 Jun, 2017 1 commit
    • Timothy B. Terriberry's avatar
      cb4x4: Move sub-4X4 block sizes behind chroma flags. · 81ec2619
      Timothy B. Terriberry authored
      cb4x4 itself should not require these sizes.
      
      This simplifies compatibility with other experiments, since we can
      first make them work with cb4x4 (which is now on by default), and
      then worry about chroma_sub8x8 and chroma_2x2 (which is not) in
      separate steps.
      
      Encoder and decoder output should remain unchanged.
      
      Change-Id: Iff2a5494cab3b7d96f881e8bd9cd4bf18c817cfa
      81ec2619
  12. 16 Jun, 2017 1 commit
    • Fergus Simpson's avatar
      Unify resize and superres denominator constants · bfbf6a59
      Fergus Simpson authored
      RESIZE_SCALE_DENOMINATOR and SUPERRES_SCALE_DENOMINATOR were two
      constants with the same value that did essentially the same thing.
      
      This patch merges the two into SCALE_DENOMINATOR for simplicity's sake.
      
      Change-Id: I252a9b7f89f10d77bdb0c3cf2d67d31d337afa4b
      bfbf6a59
  13. 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
  14. 12 Jun, 2017 1 commit
    • Yue Chen's avatar
      supertx: code refactoring + resolve conflicts with baseline · 8e689e4b
      Yue Chen authored
      Refactoring: split prediction+extension for each plane, so we can
      handle luma/chroma supertx pred in different ways.
      Compatibility fix: fix conflicts with cb4x4 and chroma_sub8x8, now
      for chroma sub8x8 supertx, only the top-left(basic cb4x4) or the
      the bottom-right(cb4x4 + chroma_sub8x8) predictor will be used
      without any blending within a 8x8 unit.
      
      Change-Id: I6cf7b12768a82d3c7e01811ada02de84af9bd8ac
      8e689e4b
  15. 11 Jun, 2017 1 commit
  16. 09 Jun, 2017 1 commit
    • David Barker's avatar
      Add 'do_average' to ConvolveParams structure · e64d51a9
      David Barker authored
      The 'ref' member of ConvolveParams currently serves two purposes:
      * To indicate which component of a compound we're currently predicting,
        eg. for fetching interpolation filters with dual-filter enabled.
      * To determine whether we should average into the destination buffer.
      
      But there are two cases where we want to separate these out:
      * In joint_motion_search, we want to try combining a fixed second
        prediction with various first predictions.
      * When searching masked interinter compounds, we want to predict
        each component separately then try different combinations.
      
      In these cases, we set 'ref' to 0 and use temporary variables to
      make sure we use the correct interpolation filters. But this is
      quite fragile.
      
      This patch separates out the two uses into separate members.
      This allows us to remove some temporary variables, but more
      importantly gives easy fixes to two bugs in
      build_inter_predictors_single_buf (used by rdopt):
      
      * We previously set ref=0 but didn't fix up the interpolation filters
      * For ZERO_ZEROMV modes, the second component would accidentally
        average into the (uninitialized!) second prediction buffer
      
      BUG=aomedia:577
      BUG=aomedia:584
      BUG=aomedia:595
      
      Change-Id: Ibc31d1ac701a029ea5efaa1197dd402bc4b7af1e
      e64d51a9
  17. 01 Jun, 2017 1 commit
  18. 25 May, 2017 2 commits
  19. 24 May, 2017 1 commit
    • Jingning Han's avatar
      Fix chroma-sub8x8 for non-420 format · bdcee1e7
      Jingning Han authored
      The chroma-sub8x8 is mainly designed for YUV420 format. When the
      format is YUV444, it falls back to regular block size behavior.
      
      Change-Id: Ibedc4f1d59e7bf717384ede9423f22678d54c0fa
      bdcee1e7
  20. 20 May, 2017 1 commit
  21. 19 May, 2017 3 commits
    • Jingning Han's avatar
      Prevent obmc access 2x2 level prediction block · 90edf660
      Jingning Han authored
      When the above and left neighbor blocks are coded in the sub8x8
      block size, use 4x4 level prediction block to produce the reference
      for obmc.
      
      Change-Id: Ic19f6e3b3880cebd153078823a3b77b04e28053b
      90edf660
    • Jingning Han's avatar
      Fix inter predictor route condition · f28b8cfe
      Jingning Han authored
      Fix a bug introduced in the previous commit that effectively
      disables chroma-sub8x8.
      
      Change-Id: I521fdc1f15f5bed5272081217e70d1e2549c7ecd
      f28b8cfe
    • Jingning Han's avatar
      Guard the OBMC not to use 2x2 level prediction block · 6247103b
      Jingning Han authored
      Limit the minimum prediction block size for chroma component to
      be 4x4 in OBMC. This resolves an enc/dec mismatch when all the
      experiments are turned on.
      
      BUG=aomedia:548
      
      Change-Id: I3151912387943b03ef5c9aa2d10fe13d15c79cf7
      6247103b
  22. 18 May, 2017 1 commit
  23. 15 May, 2017 1 commit
  24. 11 May, 2017 1 commit
    • Yue Chen's avatar
      Add CONFIG_INTERINTRA flags and reduce # of interintra modes to 4 · 4d26acb4
      Yue Chen authored
      Use CONFIG_INTERINTRA to properly separate interintra from the basic
      ext_inter experiment.
      When macro REDUCE_INTERINTRA_MODES is 1, only 4 ii modes are enabled
      so as to reduce the complexity overhead.
      (Right now the flag is off)
      
      Change-Id: Iec6f36a1000f181adbb822ad66c7d5b2625e9cc7
      4d26acb4
  25. 10 May, 2017 4 commits
  26. 09 May, 2017 2 commits
    • Jingning Han's avatar
      Rework inter prediction process in cb4x4 mode · c44009c1
      Jingning Han authored
      Use 2x2 inter prediction for chroma component. This improves the
      compression performance by 0.6% for lowres.
      
      Change-Id: If9d98e49cee63f40085b179652bfacc31ff462ea
      c44009c1
    • Angie Chiang's avatar
      Make convolve_round work with warped_motion · 05685e9a
      Angie Chiang authored
      Warped_motion doesn't go through inter_predictor() function to
      generate prediction where convolve_round is activated.
      Therefore, we could avoid doing post rounding when the
      warped_motion mode is on.
      
      We use do_post_rounding to indicate whether post rounding is
      needed
      Change-Id: Ib17a0c0d4e6e5232e9682afa8cfdb9576f5cf4c0
      05685e9a