1. 25 Oct, 2017 1 commit
  2. 24 Oct, 2017 3 commits
  3. 21 Oct, 2017 1 commit
  4. 20 Oct, 2017 3 commits
  5. 17 Oct, 2017 1 commit
    • Hui Su's avatar
      intrabc: support var-tx · 12546aa2
      Hui Su authored
      Support recursive tx block partition.
      
      On the screen content testset, 0.2% gain for keyframe encoding.
      
      Change-Id: I623e6fbb910fef9c91617e02edf420019f67d189
      12546aa2
  6. 16 Oct, 2017 3 commits
  7. 13 Oct, 2017 2 commits
  8. 12 Oct, 2017 3 commits
    • 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
    • Yue Chen's avatar
      filter_intra: make fi mode index entropy coded · 63ce36fc
      Yue Chen authored
      Make fi mode index entropy coded instead of using raw bits. Mode
      cost estimation in key-frame RDO is updated as well. Modification
      to inter frame RDO is not included in this patch.
      Also key-frame y mode cdf table is re-trained since fi modes are
      attached to DC_PRED
      
      Key frame BDRate:
      -0.399% lowres, -0.339% midres
      
      Change-Id: I9ccf478b0a2e48fb1870fe8451e45e2c858a5f63
      63ce36fc
    • David Barker's avatar
      Make SEG_LVL_{SKIP,ZEROMV} blocks be single-ref-only · d92f3560
      David Barker authored
      This patch modifies the interpretation of SEG_LVL_SKIP and
      SEG_LVL_ZEROMV slightly, to fix a decoder crash and to save bits
      in the intended use cases of these segment flags.
      
      Previously, blocks using either of these segment flags could
      signal reference frames just like any other block. But the mode
      was implicitly taken to be ZEROMV. This worked fine in VP9, but
      crashed for compound blocks in AV1 since those should use
      ZERO_ZEROMV instead.
      
      Now we make it so that SEG_LVL_SKIP and SEG_LVL_ZEROMV imply
      that the block is single-reference. The reference to use is taken
      from the SEG_LVL_REF_FRAME segment feature if that is present,
      or is set to LAST_FRAME if not. See the attached bug report
      for the reasoning behind this.
      
      As a related change, we also teach the encoder how to deal with
      the combination of SEG_LVL_SKIP + SEG_LVL_REF_FRAME.
      
      BUG=aomedia:675
      
      Change-Id: I5e657cbfc1f08395a0301cba701edfb1682502a5
      d92f3560
  9. 11 Oct, 2017 1 commit
    • Yunqing Wang's avatar
      Refactor temporal MV code · c99a564a
      Yunqing Wang authored
      Removed rounding of blk_row/blk_col, which is more clear and doesn't
      change the result since the step size(mi_step) are even number.
      
      Change-Id: I3b0de69316e10c4834eb2d0d7e160a0ec9fbf130
      c99a564a
  10. 10 Oct, 2017 4 commits
    • Hui Su's avatar
      Add function to control palette usage · e87fb237
      Hui Su authored
      Add av1_allow_palette() to control whether palette mode should be enabled.
      
      Change-Id: Iee24636451be42eb36093dc3453bc39c7e686276
      e87fb237
    • Lester Lu's avatar
      lgt-from-pred: transforms based on prediction · 432012f6
      Lester Lu authored
      In this experiment, sharp image discontinuity in the predicted
      block is detected. Based on this discontinuity, we choose
      particular LGTs as row and column transforms.
      
      Bitstream syntax, entropy coding, and RD search for LGT are added.
      One binary symbol is used to signal whether LGT is used. This
      experiment can work independently with the lgt experiment.
      
      lowres: -0.414% for key frames, -0.151% overall
      midres: -0.413% for key frames, -0.161% overall
      
      Change-Id: Iaa2f2c2839c34ca4134fa55e77870dc3f1fa879f
      432012f6
    • Debargha Mukherjee's avatar
      Fix conflicts between ext-partition & other expts · e30159ce
      Debargha Mukherjee authored
      Most of the fixes are related to replacing BLOCK_64X64 with
      cm->sb_size.
      
      Fixes the AV1/AqSegmentTest.TestNoMisMatchExtDeltaQ/* tests that
      were breaking before with ex-partition.
      
      Change-Id: I19d6045b422a93891b8cf4f8a929def97a595058
      e30159ce
    • Hui Su's avatar
      Remove unused parameter in intra mode reader · aa2965e6
      Hui Su authored
      Change-Id: Ibea4c2c732b16851ad16b475ea40f021d5b5d5b3
      aa2965e6
  11. 09 Oct, 2017 4 commits
    • Sarah Parker's avatar
      Change rectangular vartx recursion depth to 2 · d25ef8c6
      Sarah Parker authored
      0.15% improvement on lowres set
      
      Change-Id: If16a8e07797c64508f9e2d9b26ae874ac53c57a4
      d25ef8c6
    • Urvang Joshi's avatar
      Revert wrong uses of TX_SIZE enum. · ab8840eb
      Urvang Joshi authored
      Introduced by: https://aomedia-review.googlesource.com/c/aom/+/25181
      
      Change-Id: I1f25178d6b273fbeade4c33f153b5f2bac4a8b99
      ab8840eb
    • Rupert Swarbrick's avatar
      Define block_signals_txsize function · fcff0b25
      Rupert Swarbrick authored
      This returns true if a block signals tx_size in the stream and uses it
      in the bitstream writing code and the decoder.
      
      Note that we can't quite use it in pack_inter_mode_mvs when
      CONFIG_VAR_TX && !CONFIG_RECT_TX but I've switched the code to using
      it the rest of the time since rect-tx is adopted and eventually the
      other code path should be deleted.
      
      Also use the helper function in tx_size_cost in rdopt.c, where the
      test was wrong and caused underestimates of block
      costs. (Specifically, the code that subtracts tx_size_cost from
      this_rate_tokenonly in rd_pick_intra_sby_mode ended up subtracting
      zero for a 4x8 block).
      
      The behaviour of the decoder should be unchanged. The only change in
      the encoder's behaviour should be in tx_size_cost where it should now
      match the rest of the code.
      
      Change-Id: I97236c9ce444993afe01ac5c6f4a0bb9e5049217
      fcff0b25
    • 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
  12. 08 Oct, 2017 2 commits
    • 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
    • Zoe Liu's avatar
      Clean up obsolete code for mismatch debugging · 0b3ef733
      Zoe Liu authored
      Change-Id: Ibdcb1530b9f81a2a5222e95cf5c0b7b2938509a8
      0b3ef733
  13. 06 Oct, 2017 2 commits
  14. 05 Oct, 2017 3 commits
  15. 04 Oct, 2017 3 commits
    • Cheng Chen's avatar
      Clamp current_delta_lf_from_base in ext_delta_q · 9dccdf24
      Cheng Chen authored
      BUG=aomedia:829
      
      Change-Id: I78347e12b4efa05ebd424ba25de7767437495b42
      9dccdf24
    • 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
    • Cheng Chen's avatar
      LOOPFILTER_LEVEL: add flexibility for EXT_DELTA_Q · 880166ab
      Cheng Chen authored
      When experiment LOOPFILTER_LEVEL is on, there're four base filter levels
      for each frame. This patch enables one to use one delta or four deltas
      to update corresponding filter levels for each superblock in
      EXT_DELTA_Q.
      
      1 bit per frame is sent through bitstream to select one or four deltas.
      Now, we hard code to use one delta.
      
      Change-Id: I9c61a035064fa81878b0575ad21664e2b22a6a45
      880166ab
  16. 03 Oct, 2017 2 commits
    • Hui Su's avatar
      Remove symbol mapping of intra modes · 814f41e7
      Hui Su authored
      The _ind and _inv mapping tables are not necessary. The CDF tables are
      updated with new values converted from the old tables. Performance
      impact is small and neutral.
      
      Change-Id: I65845ab3c80f88794abd9ab9e61494af56099c7c
      814f41e7
    • Cheng Chen's avatar
      Make LOOPFILTER_LEVEL support EXT_DELTA_Q · a97394f7
      Cheng Chen authored
      Before LOOPFILTER_LEVEL, there's one filter level,
      now we have four filter levels for y plane vertical,
      y plane horizontal, u plane and v plane.
      
      This patch enables experiment LOOPFILTER_LEVEL to support per
      superblock loop filter level update.
      
      Change-Id: Ib11a1564471eb3076c26e73e5cdf7b5a3045ef97
      a97394f7
  17. 02 Oct, 2017 2 commits