1. 21 Apr, 2017 4 commits
    • Luc Trudeau's avatar
      [Code Cleanup] Move accounting.[ch] to decoder · 83fbd577
      Luc Trudeau authored
      Bit accounting is really a decoder thing
      
      BUG=aomedia:450
      
      Change-Id: Ib0229064caa98f742e2df08fd79c0451b0d8c09e
      83fbd577
    • Urvang Joshi's avatar
      Revert "warp_affine_c: Refactor highbd and lowbd versions." · 0d08afdc
      Urvang Joshi authored
      This reverts commit 8cd0e7ef.
      
      Reason for revert:
      This change breaks av1_warp_affine_c when CONFIG_HIGHBITDEPTH is enabled.
      
      In particular, running ./test_libaom --gtest_filter=*Warp* compiled with --enable-warped-motion --enable-highbitdepth shows several test failures, followed by a segmentation fault when it gets up to test SSE2/AV1WarpFilterTest.CheckOutput/4
      
      The tricky part is that the use the lowbd version of the function is dependent on a mix of two conditions:
      (1) Compile time check for CONFIG_HIGHBITDEPTH and
      (2) Run time check to see if bit-depth == 8
      So, it is tricky to refactor.
      
      BUG=aomedia:442
      
      Change-Id: I610c537fb65bde4f357185a13081639f906351de
      0d08afdc
    • Urvang Joshi's avatar
      Move scale_sqrt2_* functions to a common location. · ec4048ae
      Urvang Joshi authored
      All of these were duplicated in two places.
      
      BUG=aomedia:442
      
      Change-Id: I8eb027c814f58eb23f71a8b8b4691970a333ad96
      ec4048ae
    • Debargha Mukherjee's avatar
      With chroma2x2 turn compound sub8x8 off by default · 7f8feefd
      Debargha Mukherjee authored
      Change-Id: Ie1e45b318d5f1b53c6519d91bd3e9c11a30ec56d
      7f8feefd
  2. 20 Apr, 2017 9 commits
    • Urvang Joshi's avatar
      Common Identity 16x8 transform: forward and reverse. · bd343f43
      Urvang Joshi authored
      The code for forward and reverse transform was exactly same, so moved to
      a common header.
      
      BUG=aomedia:442
      
      Change-Id: Ic0d82b6213127c757c81e7a84045a30e28036161
      bd343f43
    • Urvang Joshi's avatar
      highpass_filter: Refactor the highbd and lowbd versions. · c92c6e9d
      Urvang Joshi authored
      Almost the whole function was common except the type of 'dgd', so use a
      common helper function.
      
      BUG=aomedia:442
      
      Change-Id: I4bf20dce5f2faeaa7e6255452282f7653090b990
      c92c6e9d
    • Urvang Joshi's avatar
      warp_affine_c: Refactor highbd and lowbd versions. · 8cd0e7ef
      Urvang Joshi authored
      Only a few lines differed between the two.
      
      BUG=aomedia:442
      
      Change-Id: I304c07d962c9a166596ec97ae4e2ec23ea90a195
      8cd0e7ef
    • Yue Chen's avatar
      Always use above predictor in under 8x8 chroma obmc · f7ba6470
      Yue Chen authored
      Change-Id: Ic23c96b78112ef9fbd7adad69f63bdbe3a56ce23
      f7ba6470
    • Sebastien Alaiwan's avatar
      Drop support for CONFIG_EMULATE_HARDWARE · c6a48a25
      Sebastien Alaiwan authored
      This experiment complexifies DSP function dispatch, without bringing
      any real value (it's non-normative arbitrary behaviour).
      Moreover, it only has an effect on obsolete transforms, the new ones
      don't implement this mechanism.
      
      Change-Id: Idaccdd0c14ed6b7008cd4f365c7f017ba8ccacf5
      c6a48a25
    • Alex Converse's avatar
      intrabc: Add initial skeleton · 28744309
      Alex Converse authored
      Missing features:
      * RDOPT (Forced on for certain blocks)
      * Any form of border extension
      * Non MI sized right and bottom edges
      * MV prediction
      
      Present features:
      * Force intrabc for some blocks
      * Carry intrabc in the bitstream
      * Validate DV is causal
      * Reconstruct intrabc block assuming border extension is unnecessary
      
      Change-Id: Ib1f6868e89bfacc2a4edfc876485bad1b347263b
      28744309
    • Jonathan Matthews's avatar
      Bugfix: Insert missing bracket · b28b78cd
      Jonathan Matthews authored
      Introduced in Change-Id I06b8b75b667bb1bc4ddffc78f895e48a09f4c578
      
      BUG=aomedia:440
      
      Change-Id: Ic261617fced9d211a93c075bff2e2b4771de98fc
      b28b78cd
    • David Barker's avatar
      Harmonize ext-inter and ref-mv · 3dfba994
      David Barker authored
      This changes the behavior of the ext-inter compound modes
      as follows:
      * NEAREST_NEARESTMV, NEAR_NEARMV, NEW_NEWMV, ZERO_ZEROMV
        work the same as the corresponding compound modes without
        ext-inter
      * NEAREST_NEWMV and NEW_NEARESTMV keep their current behavior,
        which is to use the first ref-mv candidate pair for their
        particular reference frames
      * NEAR_NEWMV and NEW_NEARMV select between the second, third,
        and fourth candidate pairs.
      * NEAREST_NEARMV and NEAR_NEARESTMV use the first candidate
        pair for the NEAREST component and the second, third, or
        fourth candidate pair for the NEAR component.
      
      Also do some minor refactoring and fix compile errors
      with --enable-ext-inter --disable-ref-mv
      
      Change-Id: If0d2a60559083b7c1189909d426b705af42d2d0e
      3dfba994
    • Yunqing Wang's avatar
      ext_tile: add 2 tile encoding modes · d8cd55f4
      Yunqing Wang authored
      Added 2 tile encoding modes:
      TILE_NORMAL mode supports the large-scale tile coding up to 1024 x 1024
      tiles;
      TILE_VR mode supports the large-scale tile coding and also the decoding
      of a single tile.
      
      TILE_NORMAL mode allows the non-vr content to be encoded in multiple tiles
      without using the coding tool that are designed for vr applications.
      
      Change-Id: Id804806a1bbcb916b7f5dc7e2c5509d88f3defcb
      d8cd55f4
  3. 19 Apr, 2017 3 commits
    • Steinar Midtskogen's avatar
      Retune CDEF dering threshold adjustment · fade4637
      Steinar Midtskogen authored
      Change the adjustment range from [50% ... 300%] to [25% ... 100%].
      Adjustments above 100% were very rare, and capping the adjustment at
      100% adds SIMD optimisation opportunities.  And lowering the other end
      to 25% seems to help compresson slightly.
      
      Low latency, used-cpu=0:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0453 | -0.1118 | -0.1127 |  -0.0689 | -0.0429 | -0.0814 |    -0.0762
      
      High latency, used-cpu=0:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      -0.0303 |  0.0583 |  0.1740 |  -0.0440 | 0.0033 | -0.0042 |     0.0040
      
      Change-Id: Id999158330a53e8c3383cd0e53a91c7f59fe062a
      fade4637
    • Steinar Midtskogen's avatar
      Signal CDEF damping in the frame header · 0c966a50
      Steinar Midtskogen authored
      Change-Id: I57f232623e647f029b007de8ddb203c47ca3c11c
      0c966a50
    • Michael Bebenita's avatar
      Fix CDEF SIMD code for cb4x4 · efacce93
      Michael Bebenita authored
      Change-Id: Iec83111328d5343250b9a35dc2896541393f3efa
      efacce93
  4. 18 Apr, 2017 4 commits
    • Ryan Lei's avatar
      unify the intra prediction angle options for different block sizes · c81ea6e0
      Ryan Lei authored
      this change unifies the intra prediction angles so that 8x8 block has
      the same number of angles and angle steps as 16x16 and 32x32 blocks.
      the benefit is that HW implementation can have the same logic to
      handle all block sizes. otherwise, prediction angles for 8x8 is
      different from other block sizes, which requies special logic.
      
      Change-Id: I99f8d82b4b96fa1442a657b56a93e326f1eec321
      c81ea6e0
    • Angie Chiang's avatar
      Add txk_sel exp · cd9b03fb
      Angie Chiang authored
      This will separate the transform kernel selection from lv_map
      experiment such that we can evaluate each feature's performance
      separately
      
      Note that txk_sel is build on top of lv_map
      
      Change-Id: I5bd1ea99be30000efcdc2bcd42de002b78b1c3c8
      cd9b03fb
    • Timothy B. Terriberry's avatar
      ec_smallmul: Convert CDFs to iCDFs. · f6c807c5
      Timothy B. Terriberry authored
      Hoists the iCDF conversion outside of the daala code.
      We directly store 32768 - cdf[i] in each cdf, to avoid having to
      convert the whole array every time a symbol is coded.
      
      This works with ec_multisymbol, new_tokenset, and ec_adapt.
      
      Compared to Change-Id Idbbd3743e9189146cb519d5b984bdabd69e3f4c0,
      this improves decoder runtimes by 1.15% at QP=55 and 2.64% at
      QP=20.
      
      The overall slowdown of ec_smallmul is now 0.12% at QP=55 and
      0.44% at QP=20.
      
      Encoder output should not change, and all streams should remain
      decodable without decoder changes.
      
      Change-Id: I06b8b75b667bb1bc4ddffc78f895e48a09f4c578
      f6c807c5
    • Yi Luo's avatar
      Deliver the eob threshold to inverse transform · f8e87b46
      Yi Luo authored
      Change-Id: Iaa8ab77eb4a982759939fb5fc475f699cb21a4e1
      f8e87b46
  5. 17 Apr, 2017 4 commits
  6. 14 Apr, 2017 9 commits
  7. 13 Apr, 2017 6 commits
    • Yue Chen's avatar
      Reduce the bandwidth requirement of sub8x8 chroma obmc · 85c7e906
      Yue Chen authored
      HW does not support < 4x4 prediction. To limit the bandwidth
      requirement, for small blocks, only blend with neighbors from one
      side. If block-size of current plane is 4x4 or 8x4, the above
      neighbor will be skipped. If it is 4x8, the left neighbor (dir = 1)
      will be skipped.
      This change will keep the bandwidth requirement of OBMC not more
      than what is required by normal compound inter modes.
      
      Loss of gain (PSNR-Y/PSNR-Cb/PSNR-Cr/CIEDE2000)
      AWCY HL: 0.05/0.09/0.14/0.04
      AWCY LL: 0.06/0.07/0.10/0.12
      
      Change-Id: I3854afc69c3014da99bde4b19bb726e4c077d59e
      85c7e906
    • Debargha Mukherjee's avatar
      Adds option to use 1/32 subpel precision for gm/wm · 16056f5b
      Debargha Mukherjee authored
      Adds filters for 1/32 subpel precision for warping.
      To use 1/32 subpel precision make WARPEDPIXEL_PREC_BITS 5.
      By default, WARPEDPIXEL_PREC_BITS is set as 6 in common/mv.h,
      which uses 1/64 subpel precision.
      
      If 1/32 precision is used, BDRATE drops:
      on lowres:
      -1.101 (vs. -1.186% with 1/64) w/warped-motion
      -1.587 (vs. -1.650% with 1/64) w/global-motion
      
      on cam_lowres:
      -2.638 (vs. -2.707% with 1/64) w/warped-motion
      -3.396 (vs. -3.453% with 1/64) w/global-motion
      
      Change-Id: I82fbfddaad9bd9be658fe382401d212833c7ceef
      16056f5b
    • Yi Luo's avatar
      Add EOB threshold calculation for ADAPT_SCAN · cfe0fede
      Yi Luo authored
      Change-Id: I0c58fb5ee2a77ae15f6243b1c645dbe601171e67
      cfe0fede
    • Steinar Midtskogen's avatar
      CDEF: Optionally filter 8x8 skip blocks · 7b069a57
      Steinar Midtskogen authored
      Optionaly filter 8x8 skip blocks, but still leave superblocks that are
      completely skipped unchanged.  Use one bit in the dering level to
      signal replacing the signal for dering damping.
      
      This works better with cb4x4 that now is enabled by default.
      
      Low latency, used-cpu=4 change:
         PSNR|PSNR Cb|PSNR Cr|PSNR HVS|   SSIM|MS SSIM|CIEDE 2000
      -0.6260|-0.3263|-0.3797| -0.3574|-0.7072|-0.4828|   -0.6584
      
      Change-Id: I42c4290b52a50779770884fbabb020fdb1034ff7
      7b069a57
    • Jean-Marc Valin's avatar
      Can't skip deringing on threshold=0 because chroma needs direction · 87c24a1d
      Jean-Marc Valin authored
      Change-Id: I7481fe139e1c9454c73948de3d8b8fefaf37e79a
      87c24a1d
    • Sarah Parker's avatar
      Disable neighbor warping for gm + obmc · a036d86f
      Sarah Parker authored
      Adds an option to disable warp when obmc is used with a
      global motion neighbor.
      
      Change in BDRATE on cam_lowres
      gm + obmc enabled: 0.035%
      gm + obmc + wm enabled: -0.005%
      
      Change-Id: I1d6de75c7ead325cec31ed3748b5532f3658d8a7
      a036d86f
  8. 12 Apr, 2017 1 commit