1. 27 Oct, 2017 8 commits
    • Joe Young's avatar
      Ext-intra modification/tuning · 3ca43bf0
      Joe Young authored
      For ext-intra direcation intra modes:
      
      1. Use neighbor block modes to modify edge filtering strength
         Coding gain (lowres/midres/hdres):
           (8 keyframes)
           PSNR: -0.19 -0.22 -0.10
           SSIM: -0.29 -0.27 -0.13
      
      2. Use context-based cdf to code angle_delta syntax
           (8 keyframes)
           PSNR: -0.20 -0.24 -0.27
           SSIM: -0.29 -0.33 -0.37
      
      3. Filter corner sample:
           (8 keyframes)
           PSNR: -0.01 -0.02 -0.05
           SSIM: -0.03 -0.04 -0.05
      
      Combined Bd-rate improvement for 8 keyframes
           PSNR: -0.40 -0.47 -0.40
           SSIM: -0.57 -0.60 -0.51
      
      Change-Id: Id47ac17b6bf91cd810b70cacfc5b457341f417f3
      3ca43bf0
    • Urvang Joshi's avatar
      Superres: Fix writing/reading of denominator. · 8301018d
      Urvang Joshi authored
      Range is 9 to 16, and not 8 to 15.
      
      BUG=aomedia:972
      
      Change-Id: I7de6cea16a6377d9cd3b2af73efc841b42dad1fa
      8301018d
    • Rupert Swarbrick's avatar
      Fix ext-tile encoding when not using compressed header · 53685900
      Rupert Swarbrick authored
      The compressed header size is now sometimes not signalled and the
      encoder code hadn't been updated to match.
      
      Note: This mistake caused the failing test tracked in bug 917 to fail,
            but fixing it doesn't fix the test: the decoder now staggers on
            a little further before getting out of sync.
      
      BUG=aomedia:917
      
      Change-Id: Ic0de99ede778844c4dbdd34dba3fba9c1fa2d95f
      53685900
    • Rupert Swarbrick's avatar
      Reset restoration info at start of large_scale_tiles too · 7546b304
      Rupert Swarbrick authored
      Since commit 6c545216, loop restoration coefficients are written inside
      tiles data. Since the Wiener and Sgrproj coefficients are
      delta-encoded (and tiles must be decoded independently) this means we
      must call set_default_wiener and set_default_sgrproj at the start of
      encoding and decoding each tile. That patch missed doing so when
      encoding large scale tiles (part of the EXT_TILE experiment). This
      adds the missing lines.
      
      Note: This caused AV1/AVxEncoderThreadLSTest.EncoderResultTest/3 to
            fail with --enable-ext-tile, which is tracked in bug
            917. Unfortunately, there's something else going wrong that
            means the test is still failing: I'll address that in a separate
            patch.
      
      BUG=aomedia:917
      
      Change-Id: I5bd8e9d7f7a2abd60779abf170185a1c5b090474
      7546b304
    • Cheng Chen's avatar
      JNT_COMP: 5. Support compound_segment · 3392c436
      Cheng Chen authored
      Let jnt_comp work with compound_segment. When frame distance weights
      are used, compound_segment blending is turned off. When normal compound
      mode is used, compound_segment blending is searched. The rdcost should
      select between {frame distance weights, normal compound,
      compound_segment blending}.
      
      Change-Id: I162d1d204ba6a5976538357d9dbc71fc5b1aa8d5
      3392c436
    • Cheng Chen's avatar
      JNT_COMP: 4. add context and entropy read/write · 0a7f2f51
      Cheng Chen authored
      Change-Id: I0e6f7ab981e31f7120105515f6204568b6dc82d3
      0a7f2f51
    • Rupert Swarbrick's avatar
      Fix build with --enable-obu · 70f0eb33
      Rupert Swarbrick authored
      It seems that the change in commit 28444be6 missed this line (which
      only fails to compile with --enable-debug because it's in an assert)
      
      BUG=aomedia:952
      
      Change-Id: Ibe6200b2928d198c73f3e9c9f0badcbdaffcac49
      70f0eb33
    • RogerZhou's avatar
      Fixed build conflict (amvr,intrabc). · 10a0380a
      RogerZhou authored
      Change-Id: Ibfeb424bf0ebab7bbeb69f6f6df24a4f4924ec97
      10a0380a
  2. 26 Oct, 2017 3 commits
  3. 25 Oct, 2017 1 commit
    • Yue Chen's avatar
      Optimizations for filter_intra · 57b8ff68
      Yue Chen authored
      Reduce number of modes from 10 to 6, and disable fi modes in UV.
      To reduce complexity, apply filter directly without subtracting
      the estimated means.
      
      Change-Id: Iaf78d92d31e4a7cc30ea7863b57a9611c5f503e6
      57b8ff68
  4. 24 Oct, 2017 3 commits
    • Hui Su's avatar
      Remove experimental flag of chroma_sub8x8 · 9fa96234
      Hui Su authored
      Change-Id: I32c5015bedef07f58413c679b4aaf30651a357b9
      9fa96234
    • Sebastien Alaiwan's avatar
      Remove compile guards for VAR_TX experiment · fb838778
      Sebastien Alaiwan authored
      This experiment has been adopted.
      
      Change-Id: Ife4c18a59791268b7ac0de5a8a08e762a042cae2
      fb838778
    • Rupert Swarbrick's avatar
      Expose av1_loop_restoration_filter_unit in restoration.h · dd6f09ab
      Rupert Swarbrick authored
      This patch also does a certain amount of rejigging for loop
      restoration coefficients, grouping the information for a given
      restoration unit into a structure called RestorationUnitInfo. The end
      result is to completely dispense with the RestorationInternal
      structure.
      
      The copy_tile functions in restoration.c, together with those
      functions that operate on a single stripe, have been changed so that
      they take pointers to the top-left corner of the area on which they
      should work, together with a width and height.
      
      The same isn't true of av1_loop_restoration_filter_unit, which still
      takes pointers to the top-left of the tile. This is because you
      actually need the absolute position in the tile in order to do striped
      loop restoration properly.
      
      Change-Id: I768c182cd15c9b2d6cfabb5ffca697cd2a3ff9e1
      dd6f09ab
  5. 23 Oct, 2017 3 commits
  6. 21 Oct, 2017 2 commits
  7. 20 Oct, 2017 3 commits
  8. 18 Oct, 2017 3 commits
  9. 17 Oct, 2017 3 commits
    • Frederic Barbier's avatar
      Ensure that diff_len is lower than frame_id_length · 4d5d90ed
      Frederic Barbier authored
      A frame should be referenced with a unique delta,
      which is not guaranteed when diff_len is greater than frame_id_length.
      
      Otherwise, it's possible to get into a situation where a frame
      can be referenced with many different delta_frame_id values,
      although the decoder only accepts one of them.
      
      Avoid ambiguities when delta-referencing a frame, and
      avoid wasting bits by using a coding enforcing the restriction.
      
      Change-Id: If7c611c9b6ec69662c5af540ade59f08bacda2ba
      4d5d90ed
    • Frederic Barbier's avatar
      Hide coding details of fid_length/delta_fid_length · e83fcfeb
      Frederic Barbier authored
      Let the writing/parsing logic do the +7/+2 offseting,
      and let the rest of the code directly manipulate the actual values.
      
      Change-Id: I460d5bf18446c028f326cb747b3c26c8d451637c
      e83fcfeb
    • 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
  10. 16 Oct, 2017 5 commits
  11. 13 Oct, 2017 3 commits
  12. 12 Oct, 2017 2 commits
    • 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
  13. 11 Oct, 2017 1 commit
    • Yaowu Xu's avatar
      Correct an assertion · 288f8168
      Yaowu Xu authored
      BUG=aomedia:651
      
      Change-Id: Ibd52e05f2223d8c34cd3456095922ad5d220fbbb
      288f8168