1. 16 Dec, 2017 2 commits
    • Jingning Han's avatar
      Deprecate the use of bmi structure from av1 codec · 2fac8a41
      Jingning Han authored
      Change-Id: I7f5010ae3b9a014b3dca0425c9eada3b9e2c0ab3
      2fac8a41
    • 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
  2. 15 Dec, 2017 5 commits
  3. 14 Dec, 2017 4 commits
    • Jingning Han's avatar
      Fix enc/dec mismatch bewteen mfmv and obu · 923f827e
      Jingning Han authored
      BUG=aomedia:1123
      
      Change-Id: I3886bd74cf3ee266eee13020c8821aff5b59e11d
      923f827e
    • 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
    • Hui Su's avatar
      fix conflict between intrabc and obu · ad7536be
      Hui Su authored
      Change-Id: Ieed2451060f68fee6e67bca7d836d27bc6483c0f
      ad7536be
    • Yaowu Xu's avatar
      Revert "enable obu (HLS R19) by default" · a14de5b3
      Yaowu Xu authored
      This reverts commit 0dc0ddc0.
      
      Reason for revert: enc/dec mismatch was found and tracked down to this commit. 
      
      BUG=aomedia:1123
      
      Change-Id: I47ac289426e18d2118117d56c2cbc8930b78bda2
      a14de5b3
  4. 13 Dec, 2017 5 commits
  5. 12 Dec, 2017 3 commits
    • Rupert Swarbrick's avatar
      Fix calculation of tx_type cost for rectangular transforms · ffbff57d
      Rupert Swarbrick authored
      This patch fixes up av1_tx_type_cost to match the code in
      av1_write_tx_type. Beforehand, we wrongly assumed a 32x16 block needed
      to signal its transform size (with rect-tx-ext & rect-tx-ext-intra)
      because we were passing 16x16 to get_ext_tx_types.
      
      I've also changed av1_write_tx_type to use get_min_tx_size rather than
      inlining its body. No functional change, but it's probably better to
      use the same helper function both times.
      
      Change-Id: Iff6ee0bff2d332d5270fe0219db88c95e0b051d0
      ffbff57d
    • Cheng Chen's avatar
      Make lpf_sb work with loopfilter_level · 765e34e3
      Cheng Chen authored
      Make lpf_sb compatible with loopfilter_level, when USE_GUESS_LEVEL = 1.
      
      Filter levels will be selected based on q index and applied for
      filtering on Y, U, V planes separately.
      
      Current model only allows to guess one filter level.
      Now Y_vert = Y_horz = U = V. In the future, we need to retrain the
      model and get filter levels for Y_vert, Y_horz, U and V separately.
      
      When USE_GUESS_LEVEL = 0, lpf_sb can't work with loopfilter_level yet.
      
      Change-Id: Icd774a147c07a4035cf8204a8754b2a99668bbfd
      765e34e3
    • 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
  6. 11 Dec, 2017 3 commits
  7. 10 Dec, 2017 1 commit
    • Imdad Sardharwalla's avatar
      Monochrome control now in colorspace header · 317002fb
      Imdad Sardharwalla authored
      The monochrome bit has been removed from the end
      of the sequence header.
      Monochrome is now coded as a type of colorspace.
      
      Encode in monochrome by using
        aomenc --color-space=monochrome ...
      
      Change-Id: I9550de58eb3d67dae0eb651697cb63dc8b137931
      317002fb
  8. 09 Dec, 2017 2 commits
    • Debargha Mukherjee's avatar
      Enable 4:1 -> 2:1 -> 1:1 splits for 4:1 transforms · e4e18fcc
      Debargha Mukherjee authored
      Also, splits the sub_tx_size_map array into inter and intra
      in order to enable the new 4:1 transforms for inter and
      intra separately.
      Includes refactoring such as removing the intra_tx_size_cat_lookup
      array since it is unnecessary, and consolidating the
      max_txsize_rect_lookup array for convenience.
      
      Change-Id: I112553bab612dafb973611c87f36a43e1ac4be85
      e4e18fcc
    • Rostislav Pehlivanov's avatar
      Change q_segmentation to spatial_segmentation · 938710cb
      Rostislav Pehlivanov authored
      Adds spatial prediction to standard segmentation instead of a separate
      segmentation feature.
      When using temporal prediction skipped blocks are flagged as mispredicted.
      
      Change-Id: I0c32281286d3fbce66d339c9247bcc6516f37a63
      938710cb
  9. 08 Dec, 2017 3 commits
  10. 06 Dec, 2017 1 commit
    • Zoe Liu's avatar
      JNT_COMP: Simplify logic on inter-inter comp modes · 5f11e915
      Zoe Liu authored
      This patch simplies the checking criteria for the two groups of
      compound modes. It also makes the encoder side cdf update inside the
      RD loop consistent with that in the bitstream.
      
      Experimental results on Google test sets (30 frames of lowres and
      midres) confirm this patch obtains identical coding performance.
      
      Change-Id: I170eea91f7d2be2170df544cfc2c692b09aa82d6
      5f11e915
  11. 05 Dec, 2017 7 commits
    • Luc Trudeau's avatar
      [CFL] Disable CfL for 4:1 and 1:4 Partitions · 4d6ea54e
      Luc Trudeau authored
      Moving CfL to using partition unit DC_PRED requires 4:1 and 1:4 DC_PRED,
      which are not currently implemented. A simple solution is to disable CfL
      for 4:1 and 1:4 partitions.
      
      CfL is also disabled for luma intra partitions < 4x4. This is inherent
      to luma intra prediction partition sizes. We add an assert to enforce
      this.
      
      Resulting in the following regression for Subset1
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      -0.0093 |  0.1803 |  0.1519 |  -0.0180 | 0.0256 |  0.0226 |     0.0352
      
      https://two.arewecompressedyet.com/?job=CfL%402017-11-30T19%3A05%3A05.639Z&job=CfL-Disable-4to1%402017-11-30T19%3A04%3A00.761Z
      
      Change-Id: Ie2c8b4d9cb6b6f33a103b540209e1a2fb6df74a7
      4d6ea54e
    • Cheng Chen's avatar
      Change comp_group index context and save sending comp_group · 5a88172c
      Cheng Chen authored
      Extend context model for comp_group_idx.
      Save sending comp_group_idx when masked_compound is not allowed.
      
      Change-Id: Ia7ae53958c9e1c8fe07be4b14a425d9b8648082d
      5a88172c
    • Cheng Chen's avatar
      JNT_COMP: change COMPOUND_AVERAGE in cdf · 2ef24ea2
      Cheng Chen authored
      Remove COMPOUND_AVERAGE from compound_type_cdfs since it is now grouped
      to compound_idx. However, COMPOUND_AVERAGE is still used elsewhere.
      
      Change-Id: Ie0d460aabf9252e80eb4130cfef9aaf0efc3969d
      2ef24ea2
    • Cheng Chen's avatar
      JNT_COMP: divide compound modes into two groups · 33a13d9f
      Cheng Chen authored
      Divide compound inter prediction modes into two groups:
      Group A: jnt_comp, compound_average
      Group B: interintra, compound_segment, wedge
      
      Change-Id: I1142da2e3dfadf382d6b8183a87bde95119cf1b7
      33a13d9f
    • Dominic Symes's avatar
      max-tile: Fix issues discovered when testing max-tile · 917d6c06
      Dominic Symes authored
      max-tile remains off by default until more testing is performed but I would
      like to check in the fixes that are known so far to prevent this patch getting too big
      
      max_tile was provisionally adopted at the working group meeting 2017-Oct-10
      
      This patch fixes the following issues:
      - max_tile is fixed to suport superblock size 64x64 as well as 128x128 (ext_partition support)
      - max_tile is fixed in combination with loop_restoration
      - max_tile is fixed in combination with ext_tile (Bug: 1013)
      - max_tile is fixed in combination with lv_map and 64x64 subperblock (lv_map memory allocation
        fixed for 64x64 superblock)
      - max_tile reports the size of the first tile for inspection.c used by the analyzer
      
      Change-Id: Ib83ff613e5d66563c81452a085c7984d3b4813e4
      917d6c06
    • Jingning Han's avatar
      Re-design drl index coding to remove ctx parsing dep · b56b71ae
      Jingning Han authored
      Re-design the dynamic motion vector index coding system to remove
      the context parsing dependency on the reconstructed motion vectors.
      
      Change-Id: I01dd6eda239a0bed32d8dc98f0f10f18249a76d4
      b56b71ae
    • Sebastien Alaiwan's avatar
      Remove ANS experiment · b0460fa9
      Sebastien Alaiwan authored
      This experiment has been abandonned for AV1.
      
      Change-Id: I8110720cef1b56dbce4008a998d8f4281dd2fe44
      b0460fa9
  12. 04 Dec, 2017 1 commit
    • Debargha Mukherjee's avatar
      Fixes to make 4:1 rectangular intra work correctly · d2cfbefb
      Debargha Mukherjee authored
      This patch fixes and enables rectangular intra transform
      sizes for 4:1 partitions (that were turned off before).
      4:1 partitions can now use rectangular intra predictions with
      2:1 rectangular transform sizes.
      BDRATE lowres (single keyframe): -0.612%
      
      Change-Id: I6f062f7c08aae8eeb0a55d31e792c8f7e3f302a2
      d2cfbefb
  13. 02 Dec, 2017 2 commits
    • Yunqing Wang's avatar
      Modify the warped motion mode context · 3afbf3fb
      Yunqing Wang authored
      Modified the warped motion mode context based on neighbor's motion modes
      and current block's mode.
      
      Change-Id: I77ca35fab37ec640bb38661ff1799f643d5aafdc
      3afbf3fb
    • Cheng Chen's avatar
      Extend frame marker bits from 4 to 5 · d300f0e4
      Cheng Chen authored
      Although four bits are enough to represent current distances since
      Golden Frame Group is 16, for flexibility, we use 5 bits and allow
      frame distance up to 32.
      
      BUG=aomedia:1072
      
      Change-Id: I9f413baffd656eb8bd54333ba31a4e33faefd57a
      d300f0e4
  14. 01 Dec, 2017 1 commit
    • Steinar Midtskogen's avatar
      Change CDEF block skip condition and move signalling · 6c24b029
      Steinar Midtskogen authored
      Previously CDEF was implicitly disabled for a filter block if all its
      sub-blocks were skip, and no bits for that block was signalled.  That
      required the CDEF signal to be transmitted at the end of the block,
      and it was not possible to begin the filtering of the block before
      that.
      
      This patch moves the signalling to just after the first zero skip bit
      within a 64x64, 128x64, 64x128 or 128x128 block.  If sub-blocks are
      skip, then no CDEF bits will be signalled, as before.  Also, the skip
      condition flag has been removed so it's always known at the skip flag
      whether a coding block is to be filtered or not.
      
      Change-Id: I3adfa3d2d01e288b7db876198aa9985ee9f53917
      6c24b029