1. 18 Sep, 2017 1 commit
    • David Barker's avatar
      Save global motion params even in error-resilient-mode · cba7da74
      David Barker authored
      The error-resilient-mode flag is currently set per frame,
      so we can encode a non-error-resilient frame immediately
      after an error-resilient frame.
      
      As of https://aomedia-review.googlesource.com/c/21783 , this
      case causes the decoder to read uninitialized memory. This
      happens because the error-resilient frame no longer sets up
      cm->cur_frame->global_motion. Then, on the non-error-resilient
      frame, that is renamed to cm->prev_frame->global_motion and we
      try to use it as a reference for delta encoding.
      
      Fix this by always writing cm->cur_frame->global_motion.
      
      Change-Id: I0d4f13bf413ca15da210e06d5ce1780331c005da
      cba7da74
  2. 13 Sep, 2017 2 commits
  3. 12 Sep, 2017 2 commits
  4. 11 Sep, 2017 1 commit
    • Sarah Parker's avatar
      Tokenize and write mrc mask · 99e7daa2
      Sarah Parker authored
      This allows a mask for mrc-tx to be sent in the bitstream for
      inter or intra 32x32 transform blocks. The option to send the mask
      vs build it from the prediction signal is currently controlled with
      a macro. In the future, it is likely the macro will be removed and it
      will be possible for a block to select either method. The mask building
      functions are still placeholders and will be filled in in a followup.
      
      Change-Id: Ie27643ff172cc2b1a9b389fd503fe6bf7c9e21e3
      99e7daa2
  5. 10 Sep, 2017 1 commit
  6. 09 Sep, 2017 1 commit
  7. 08 Sep, 2017 4 commits
    • Hui Su's avatar
      Resolve a confilict between intrabc and var-tx · ff37c1a5
      Hui Su authored
      Intrabc is counted as inter mode, but it doesn't support var-tx yet.
      This patch skips tx partition info update for intrabc blocks. It
      resolves a decoder crash issue.
      
      Change-Id: I97e413e4a837ba6510e110347f5aa6e5fd14dcc5
      ff37c1a5
    • Yaowu Xu's avatar
      Ensure valid cost table is used · ba9dd8a6
      Yaowu Xu authored
      BUG=aomedia:685
      
      Change-Id: I592016faeb4645cf43c599e0e2e11127e2a17c4e
      ba9dd8a6
    • Yaowu Xu's avatar
      Code simplification · 049a788c
      Yaowu Xu authored
      Change-Id: Ia84ea2f4e855671f5a29058cc7a6b5ba9e6bfef9
      049a788c
    • Hui Su's avatar
      Encoder speedup: buffer TX RD search results · 1ddf2314
      Hui Su authored
      Encoder may do multiple rounds of transform RD search on the same
      residue signals. Save the RD search results so that encoder can
      fetch the results and terminate early if the residue signals have
      been seen before.
      
      The hash functions are ported from the hash_me experiment.
      
      Test results show the encoder speed is increased by 10% on
      average (ranging from 0 to 30%) with all default experiments on.
      
      Change-Id: I47dd63549f67cb43d3d700f6a76ce0992b1ccd0d
      1ddf2314
  8. 07 Sep, 2017 2 commits
  9. 06 Sep, 2017 4 commits
  10. 05 Sep, 2017 2 commits
  11. 04 Sep, 2017 1 commit
  12. 02 Sep, 2017 1 commit
  13. 01 Sep, 2017 1 commit
    • David Barker's avatar
      Miscellaneous fixes for var-tx · 16c64e33
      David Barker authored
      Lots of small bug fixes, mainly around the transform size coding:
      
      * The loop filter was accidentally using the non-subsampled
        block size for the V plane, due to comparing a plane index
        (0, 1, or 2) against PLANE_TYPE_UV (== 1)
      
      * We allowed an initial update of the transform partition probabilities
        even on frames where we know they will never be used
        (because tx_mode != TX_MODE_SELECT).
        Further, these probabilities would not be reverted at the end
        of the frame, leading to the probability delta persisting across frames.
      
        Change this to behave more like the non-var-tx transform size coding,
        where probability deltas are only coded for frames with
        tx_mode == TX_MODE_SELECT, and the deltas only apply for one frame.
      
      * Fix decoder for the case where the video as a whole isn't lossless,
        and we have tx_mode == TX_MODE_SELECT, but the current segment
        *is* lossless.
        Note that the encoder already does the right thing in this case.
      
      * Don't allow the transform splitting to recurse "below" 4x4.
        This is really just a refactor, but means we can increase the
        maximum depth when subdividing rectangular transforms if we
        want to, whereas the previous code would have needed special cases
        for 4x8 and 8x4 transforms.
      
      * Finally, when we hit the maximum splitting depth, don't update
        the counts as if we had coded a 'no split' symbol.
      
      Change-Id: Iaebdacc9de81d2e93d3c49241e719bbc02e32682
      16c64e33
  14. 31 Aug, 2017 5 commits
    • Hui Su's avatar
      Do not allocate leaf nodes in pc tree when CB4x4 is on · cad9fb52
      Hui Su authored
      Change-Id: Idbde50deab816b669ca362e3e739c76a7f434f2c
      cad9fb52
    • Luc Trudeau's avatar
      [CFL] Asserts for chroma_sub8x8 · c84c21c4
      Luc Trudeau authored
      When Chroma from Luma is combined with chroma_sub8x8, the prediction
      used for sub8x8 blocks originates from multiple luma blocks. Extra
      asserts are added to validate that the prediction buffer contains all
      the required information.
      
      Change-Id: I305c46ce9b8292697e1d5b181d123461026da11c
      c84c21c4
    • hui su's avatar
      Remove probablity model for coeffecient tokens · b53682f5
      hui su authored
      Remove the token prob tables and counters.
      
      Change-Id: Ic63d52d80bb922fc10b586c27a20f2378618168c
      b53682f5
    • Jingning Han's avatar
      Enable motion field estimation in DRL · ffbb0f91
      Jingning Han authored
      Enable the use of motion field estimation in the dynamic motion
      vector referencing system. With default experiments on, it improves
      the compression performance:
      
      lowres 1.2%
      midres 1.5%
      
      Change-Id: Ifc5b15a7239b5c3212ea50f326ab99d372034658
      ffbb0f91
    • Jingning Han's avatar
      Add frame index to the decoded frames · c723b348
      Jingning Han authored
      Add frame index to the deocded frames. Store such information to
      the reference frame buffer pool. This design allows each frame
      to know its index in natural order, as well as its reference
      frames positions.
      
      Change-Id: I5bb36928dc5750a4fdcc582dca0d244d6482f400
      c723b348
  15. 30 Aug, 2017 1 commit
  16. 29 Aug, 2017 3 commits
  17. 28 Aug, 2017 3 commits
    • Jingning Han's avatar
      Refactor lv-map coefficient buffers · f5a4d3ba
      Jingning Han authored
      Reduce the encoder memory footprint in lv-map by ~800X.
      
      BUG=aomedia:713
      
      Change-Id: I7aad604cf3186a0d3c6d5b6d1aa9489ac7c36093
      f5a4d3ba
    • Luc Trudeau's avatar
      [CFL] Move store flag to CFL_CTX · fcca37a4
      Luc Trudeau authored
      With recent changes, it is now possible to store the storage
      flag inside the CFL_CTX. This simplifies the implementation
      and will allow reuse in the decoder.
      
      This change does not alter the bitstream.
      
      Change-Id: Ibb8aebdd3d06f8765d40248ece8a038892e87032
      fcca37a4
    • Luc Trudeau's avatar
      [CFL] Reorganize Reconstructed Pixel Buffering · 32306c22
      Luc Trudeau authored
      Reworked how the storage flag is set to avoid duplication on the encoder
      side. Reconstructed Luma pixels are stored in encode_superblock in the
      loop that calls av1_encode_intra_block_plane and in the extra call to
      txfm_rd_in_plane after the luma RDO, but prior to the chroma RDO.
      
      This change does not alter the bitsteam.
      
      Change-Id: Ifd8441363ea0733fea3d06129a025940abb2abc9
      32306c22
  18. 26 Aug, 2017 1 commit
  19. 25 Aug, 2017 1 commit
    • Rupert Swarbrick's avatar
      Add support for 16x4 partitions · 6a93b155
      Rupert Swarbrick authored
      When updating default_partition_cdf, this sums the probabilities that
      were divided evenly across the pairs PARTITION_HORZ_A/PARTITION_HORZ_B
      and PARTITION_VERT_A/PARTITION_VERT_B. Those summed probabilities now
      get distributed evenly across the triples you get by adding
      PARTITION_HORZ_4 and PARTITION_VERT_4, respectively.
      
      Rather than implement 2X8/8X2 blocks for now, ss_size_lookup returns
      4X8/8X4 block sizes to use as chroma transform sizes for 4X16/16X4
      blocks.
      
      The changes in setup_pred_plane and set_skip_context are because this
      is presumably the first time we've had to deal with 16x4 or 4x16
      blocks. Since BLOCK_16X4 is not less than BLOCK_8X8, the existing
      logic didn't work (and the "shuffle back one" logic should probably be
      done for small widths and heights separately).
      
      Change-Id: If28d8954da42d6c726f2bcce2cb5242154b0870c
      6a93b155
  20. 24 Aug, 2017 1 commit
    • Yue Chen's avatar
      Update cdf and mode rate per superblock in RDO · b855b8e8
      Yue Chen authored
      Update cdf after each superblock being finalized, and re-compute
      symbol costs. Affected symbols include prediction parameters,
      tx type, and new motion vector.
      BDRate: -0.121% lowres, -0.089% midres
      
      Change-Id: I005ef382762d6e3423f933cca0a0b7b40288e8bf
      b855b8e8
  21. 22 Aug, 2017 2 commits
    • Sarah Parker's avatar
      Refactor palette functions to write a general color map · 0cf4d9f1
      Sarah Parker authored
      This will allow the mrc-tx experiment to pass in its own color map
      and set of probabilities to the tokenize and bit packing functions.
      The corresponding change on the decoder side will come in a followup
      shortly.
      
      No change in performance.
      
      Change-Id: I1872b7f1b1cf5b102e6289388ce1ae449e67cb4d
      0cf4d9f1
    • Yaowu Xu's avatar
      Revert "Prevent access of array using -1 index" · 03dc6799
      Yaowu Xu authored
      This reverts commit 38cdce8e.
      
      Reason for revert: <INSERT REASONING HERE>
      
      It is reported that this introduced a segment fault, revert now to investigate. 
      
      Change-Id: I229dcdc09462ae4eb9cf2a3da4ce59aa9eafe65e
      03dc6799