1. 17 Oct, 2017 9 commits
    • Yue Chen's avatar
      new_multisymbol: use cdf-based costs of palette flags · dab2ca9d
      Yue Chen authored
      The modification is only applicable to palette_y_mode and
      palette_uv_mode. Welcome to make changes to other palette syntax.
      
      Change-Id: I7bf0a49c06a3986475076fe291e26f4b783b8ab9
      dab2ca9d
    • Yushin Cho's avatar
      [dist-8x8] Add more asserts · 1cd34621
      Yushin Cho authored
      Added more asserts for dist-8x8 running in PSNR mode,
      i.e. with the encoder option "--enable-dist-8x8=1"
      instead of --tune=[cdef-dist | daala-dist].
      
      The asserts checks whether a 8x8 distortion measured on reconstructed 8x8 pixels
      is identical to the sum of distortions from sub8x8 partitions (or tx blocks for
      var-tx case).
      
      Change-Id: I14f2b24e674a9cbbe60e663449fc4e7f46f0e481
      1cd34621
    • Alexander Bokov's avatar
      Improving the model for pruning the TX type search · 0c7eb10d
      Alexander Bokov authored
      Introduces two new TX type pruning modes that provide better
      speed-quality trade-off compared to the existing ones. A shallow
      neural network with one hidden layer trained separately for each
      block size is used as a prediction model. The new modes differ in
      thresholds applied to the output of the neural net, so that they
      prune different number of TX types on average.
      
      Owing to relatively low quality loss PRUNE_2D_ACCURATE is used
      by default, regardless of speed settings. Starting with speed
      setting of 3 we switch to PRUNE_2D_FAST mode to get better
      speed-up.
      
      Evaluation results:
      ----------------------------------------------------------
      Prune mode | Avg. speed-up | Quality loss | Quality loss
                 |(high bitrates)|   (lowres)   |   (midres)
      ----------------------------------------------------------
      PRUNE_ONE  |     18.7%     |    0.396%    |    0.308%
      ----------------------------------------------------------
      PRUNE_TWO  |     27.2%     |    0.439%    |    0.389%
      ----------------------------------------------------------
      PRUNE_2D_  |     18.8%     |    0.032%    |    0.063%
      ACCURATE   |               |              |
      ----------------------------------------------------------
      PRUNE_2D_  |     33.3%     |    0.504%    |     ---
      FAST       |               |              |
      
      Change-Id: Ibd59f52eef493a499e529d824edad267daa65f9d
      0c7eb10d
    • Debargha Mukherjee's avatar
      Fix a compile bug with ext-partition-types · 0b34a79f
      Debargha Mukherjee authored
      Removes some stray CONFIG_CB4X4 config macros.
      
      BUG=aomedia:921
      
      Change-Id: Icc65e0b000f659d7fb18178c928a7bff7879f58c
      0b34a79f
    • 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
    • Sebastien Alaiwan's avatar
      Remove abandonned CHROMA_2X2 experiment · d8b93f56
      Sebastien Alaiwan authored
      Change-Id: I5bff0a68602a89ce480fec049c8b2c4bce44f6bb
      d8b93f56
    • 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
    • Hui Su's avatar
      Remove max_tx_size in MACROBLOCKD · a4808100
      Hui Su authored
      This variable is unused.
      
      Change-Id: I8ee9c588898417e956e7cd7993ff54cbb885285e
      a4808100
  2. 16 Oct, 2017 9 commits
  3. 15 Oct, 2017 1 commit
    • Jingning Han's avatar
      Shortcut soft quant optimization for certain coeffs · 641c1e57
      Jingning Han authored
      When the reconstructed coefficient is below the original coeff
      in magnitude, skip the level down search for the given coefficient.
      With fast-mode fix, performance change is within 0.01% level. The
      overall clip encoding process speed is up by 10%-15%.
      
      Change-Id: I93b68e494aa995faa3093fdfa1bda0bcb0e2564a
      641c1e57
  4. 14 Oct, 2017 3 commits
  5. 13 Oct, 2017 7 commits
  6. 12 Oct, 2017 5 commits
    • Alexander Bokov's avatar
      Fine-tune loop-filter level prediction for 8 bit · ac504f72
      Alexander Bokov authored
      Change-Id: I1269acec6c80c8c51c22b2adb4962bd1db646304
      ac504f72
    • 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
    • Rupert Swarbrick's avatar
      Support 4:1 partitions in count_segs_sb · 2725693d
      Rupert Swarbrick authored
      BUG=aomedia:898
      
      Change-Id: I5c3eb62407c8025650d4023dd408674381312d26
      2725693d
  7. 11 Oct, 2017 6 commits
    • Alexander Bokov's avatar
      Fix the memory alignment issue in predict_skip_flag_8bit · f93feec7
      Alexander Bokov authored
      BUG=aomedia:899
      
      Change-Id: Ia216eb8a7b1ef21a2643055816eada98cfb5d41a
      f93feec7
    • Rupert Swarbrick's avatar
      Skip partitions not allowed for subsampling mode · fc2ac957
      Rupert Swarbrick authored
      Before this patch, there was nothing to stop the encoder choosing a
      partition into 4x16 blocks (say) when only subsampling in the x
      direction. This would give a 2x16 block in the chroma plane and fall
      foul of bitstream conformance.
      
      I found this while trying to fix aomedia:897, but that turns out to be
      an unrelated problem.
      
      Change-Id: I35f175236188fb7c3c182ef1f5a8a12f8f6d761f
      fc2ac957
    • Yaowu Xu's avatar
      Correct an assertion · 288f8168
      Yaowu Xu authored
      BUG=aomedia:651
      
      Change-Id: Ibd52e05f2223d8c34cd3456095922ad5d220fbbb
      288f8168
    • Yaowu Xu's avatar
      Add ALT_MIN_LAG · 6da42301
      Yaowu Xu authored
      This is the minimum lag-in-frames to allow auto_alt_ref.
      
      BuG=aomedia:648
      
      Change-Id: Idb5eb839463e8257de1cce9c8d6590409d0cc60c
      6da42301
    • Cheng Chen's avatar
      Train LPF_SB cdf · 855f0fc7
      Cheng Chen authored
      Count filter level reuse, sign, and delta. And use counts to train
      default cdfs.
      Default cdf tables updated.
      
      Change-Id: If4fbf3e06ec7d568d940ca7b170bbbb4b778f176
      855f0fc7
    • Yue Chen's avatar
      filter_intra: stats collection and cdf optimizer · 4bd0b2f8
      Yue Chen authored
      Change-Id: Ic4c5cb2baa661733662cdf932a05dc6de1667b6b
      4bd0b2f8