1. 06 Sep, 2017 5 commits
  2. 05 Sep, 2017 13 commits
  3. 04 Sep, 2017 8 commits
    • Jingning Han's avatar
      Static local functions in mfmv · 5c700910
      Jingning Han authored
      Change-Id: I0fefe099b314295583e8e17e55e4d8fc375a5b0c
      5c700910
    • Jingning Han's avatar
      Use 8x8 block resolution to store motion vectors · ba070c55
      Jingning Han authored
      Store the reference frame motion vectors in 8x8 block resolution.
      
      Change-Id: I5afde20c40f09b44e943034232359bdaac4a2b64
      ba070c55
    • Jingning Han's avatar
      Constrain motion vector projection range · b74a72bf
      Jingning Han authored
      Constrain the maximum motion vector projection range to be within
      +/-32 pixels in the vertical direction and +/-64 pixels in the
      horizontal direction.
      
      Such constraints allow a fixed amount of reference motion vector
      load to SRAM for each 64x64 block size, independent of the frame
      size. The wider range in the horizontal direction can be stored in
      the SRAM and reused by next 64x64 block. The compression performance
      loss is 0.03% for lowres and 0.04% for midres.
      
      Change-Id: I7f1c136363b136b1f2fa9f7c962a791c8e91a976
      b74a72bf
    • clang-format's avatar
      apply clang-format · 4eafefe0
      clang-format authored
      Change-Id: If0b48a4ee1f7902d8c6154945ccef68a2b5aabb5
      4eafefe0
    • Rupert Swarbrick's avatar
      Check for early end of data when reading tiles · cd75739f
      Rupert Swarbrick authored
      BUG=aomedia:709
      
      Change-Id: I26f8938a744f7ebfd9734929502730b17de348f9
      cd75739f
    • Rupert Swarbrick's avatar
      Replace an assertion with a proper error on bad bitstream · 5c73c003
      Rupert Swarbrick authored
      The example in bug 712 is a bitstream that signals a global motion
      type of ROTZOOM, but its second frame has shear parameters that fail
      the is_affine_shear_allowed check at warped_motion.c:754. This is
      quite possible (and it's not obvious how to change the bitstream
      format so that you can't signal something like this).
      
      This patch replaces the failing assertion with a proper "no you
      can't!" error.
      
      BUG=aomedia:712
      
      Change-Id: I6a32632d17031b777acd2f78a887491a40177785
      5c73c003
    • Rupert Swarbrick's avatar
      Fix argument to finer_search_pixel_proj_error · 1c8cdef5
      Rupert Swarbrick authored
      Patch https://aomedia-review.googlesource.com/c/aom/+/20200, merged as
      32d150b6, converted several functions in pickrst.c to take a
      "use_highbitdepth" flag as well as (or instead of) the actual bit
      depth.
      
      Unfortunately, I missed a call site and the code can end up passing
      the number 8 as the flag for use_highbitdepth (and, since 8 != 0, this
      ends up using the high bit depth patch).
      
      BUG=aomedia:714
      
      Change-Id: Ie4dbad92f57ea1bacc4d99aad15454d9e5b6ff47
      1c8cdef5
    • Rupert Swarbrick's avatar
      Fix loop-restoration with 8-bit data on highbd path · 32d150b6
      Rupert Swarbrick authored
      The code was incorrectly using "bit_depth == 8" as a test for whether
      to use the highbd path or not.
      
      BUG=aomedia:714
      
      Change-Id: Ib3995dcda949adfe9307bc4c8273c6c375c5a2c7
      32d150b6
  4. 03 Sep, 2017 1 commit
    • Rupert Swarbrick's avatar
      Move loop restoration coefficients to within the frame · 6c545216
      Rupert Swarbrick authored
      Rather than encoding the loop restoration coefficients at the start of
      the frame header, this patch moves them to occur just after certain
      top-level superblocks.
      
      You might hope that we could just encode coefficients on top-level
      superblocks where the top-left corner of the superblock was also the
      top-left corner of the loop restoration tile. Unfortunately, this
      can't work with the superres experiment, where the loop restoration
      tiles don't necessarily line up with the superblocks. Indeed, in
      general there can be multiple different loop restoration coefficients
      that apply in a given top-level superblock. This patch defines a
      function, av1_loop_restoration_corners_in_sb, which yields the
      rectangle [rrow0, rrow1) x [rcol0, rcol1) of loop restoration tiles
      whose top left corners lie in this top-level superblock.
      
      The total file size should be unchanged by this patch: the bits have
      just been moved from the frame header and spread out among the rest of
      the frame.
      
      Change-Id: Icf43b0560964a63dea0d2cd801313f04139188d7
      6c545216
  5. 02 Sep, 2017 3 commits
  6. 01 Sep, 2017 4 commits
    • Ryan's avatar
      this update fixes the bug described in bug report 723 · a97c897b
      Ryan authored
      link is https://bugs.chromium.org/p/aomedia/issues/detail?id=723
      
      BUG=aomedia:723
      
      Change-Id: Iece3abcd88de69ab410674615965687abb5e4579
      a97c897b
    • Jingning Han's avatar
      Fix zero block rate estimate in lv-map · e9814915
      Jingning Han authored
      Derive the rate cost from the probability model sets effectively
      in use.
      
      Change-Id: Ief1851a32ea7a3a52e82f52050cdc3dae6c72287
      e9814915
    • 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
    • Rupert Swarbrick's avatar
      Encode loop restoration coefficients per tile · 09b5b168
      Rupert Swarbrick authored
      This is a baby-step towards encoding the coefficients at the start of
      superblocks at the top-left of loop restoration tiles. Note that this
      patch causes us to reset "wiener_info" and "sgrproj_info" at each tile
      boundary, which will cause a performance drop.
      
      This is necessary because, in order for tiles to be processed in
      parallel, we cannot delta-encode coefficients across tile boundaries
      if the coefficients are signalled within tiles. We could probably do
      better than the current patch by, say, delta-encoding against previous
      frames.
      
      This patch also fixes up the costing in pickrst.c to match
      
      Change-Id: I5b8b91d63aaf49627cde40219c31c0ac776dfd38
      09b5b168
  7. 31 Aug, 2017 6 commits