1. 11 Jan, 2018 2 commits
  2. 10 Jan, 2018 2 commits
    • Michelle Findlay-Olynyk's avatar
      hash_based_trellis speed feature · fbab0621
      Michelle Findlay-Olynyk authored
      Add speed feature that uses hash tables to
      reuse previously found optimized coefficients
      in av1_optimize_txb. This skips some expensive
      optimize_txb calls.
      
      Currently shows no significant quality
      degredation or speed improvement, and set to off
      by default. Requires hash_me, lv_map and
      lv_map_multi. Adding to speed features required
      changing AV1_COMMON *cm to AV1_COMP *cpi in a
      chain of functions.
      
      Variations that have been tried:
      -varying the maximum eob on which the feature
      activates: 16, 32, 64. 16 currently used. 64
      has best hit rate but longer execution time.
      -varying the data hashed and the length of hashes
      (first hash is 16 bit and based on context data,
      while second hash is 16 bit and based only on
      pre-optimized qcoeff values.)
      -softening the data used for the hashes: ideally
      this would raise the number of hits, without
      compromising quality too much.
      
      Change-Id: I94f22be82f3a46637c0489d512f2e334a307575f
      fbab0621
    • Cheng Chen's avatar
      Skip unnecessary computation in trellis · 37d88736
      Cheng Chen authored
      When current coeff is found to be set as eob, nz_rd is not needed
      in the computation of rdcost. Skip it.
      
      Similarly, when has_nz_tail >= 2, computation for nz_rd should be
      skipped.
      
      Local runs show ~3% speed up.
      
      Change-Id: I176abf1d1043cab40788934b70558b816af72732
      37d88736
  3. 08 Jan, 2018 2 commits
  4. 06 Jan, 2018 2 commits
  5. 05 Jan, 2018 2 commits
  6. 04 Jan, 2018 3 commits
  7. 03 Jan, 2018 1 commit
  8. 31 Dec, 2017 2 commits
    • Dake He's avatar
      [lv_map_multi] adjust speed of prob adaptation · 5641635f
      Dake He authored
      Use a lookup table to deterimine speed of adaptation in update_cdf.
      Tests on 5 keyframes show improvement in BD-rate: consistently more
      than -0.2% for google test sets (lowres, midres, hdres).
      
      Change-Id: I6f8927fc6e876e22ebcf2f9340ed62e54cc79d28
      5641635f
    • Dake He's avatar
      [lv_map_multi] multisymbol coding of eob · 0db7d0eb
      Dake He authored
      1. code the range of eob in a transform block as a single symbol.
      2. initialize cdfs directly.
      3. initial cdfs are trained by using laplace prob estimates as in base
      level coding (CL 38638)
      
      Change-Id: I65c88d6dd0da3381feeec837928ac5bd81be4296
      0db7d0eb
  9. 29 Dec, 2017 1 commit
    • Dake He's avatar
      [lv_map_multi] base level coding · 4d447696
      Dake He authored
      1. Train and init cdfs directly.
      2. Use laplace prob estimates in aom_entropy_optimizer to avoid zero
      probabilities.
      
      Change-Id: I878fc0a306cbffe3eb51c5b86d5872459b6705c5
      4d447696
  10. 25 Dec, 2017 1 commit
    • Angie Chiang's avatar
      Avoid changing motion_mode after rd search · 6f90fb29
      Angie Chiang authored
      Check if the global motion undergoes non-translation mode. If that
      is the case, do not force a newmv mode into globalmv mode.
      
      This will resolve a mismatch bug of txk_sel.
      
      Change-Id: I589f1619427f02045f8cf49bdea05f348f076236
      6f90fb29
  11. 23 Dec, 2017 1 commit
    • Sarah Parker's avatar
      Merge FINAL_PASS_TRELLIS_OPT with DISABLE_TRELLISQ_SEARCH · 792c2ec4
      Sarah Parker authored
      The speed feature FINAL_PASS_TRELLIS_OPT is meant to disable
      optimize_b during the transform search but allow it for the
      final encode of blocks. There was a previously existing macro
      called DISABLE_TRELLISQ_SEARCH, which does the same thing. This
      patch merges the functionality so the macro serves only to enable
      the speed feature.
      
      Change-Id: Ieee70f97f817998b7ca275f6e4647cc89a330ad6
      792c2ec4
  12. 22 Dec, 2017 5 commits
    • Luc Trudeau's avatar
      [CFL] Code cleaning and Fix for TXK_SEL · 439ba638
      Luc Trudeau authored
      Small code cleaning and partially resolves issue 1171. I can't confirm
      that it's a complete fix because the code asserts further a long
      
      aomenc: ../av1/common/blockd.h:1064: av1_get_tx_type:
        Assertion `tx_type < TX_TYPES' failed.
      
      BUG=aomedia:1171
      
      Change-Id: I3f1c91d751e937dd8e07f7e2f786a75eba4b6891
      439ba638
    • Sarah Parker's avatar
      Use new-quant lookup table in lv-map optimization · 3d75209a
      Sarah Parker authored
      Currently, optimize_txb does not use the new-quant
      lookup table when it updates the coefficients. This
      fixes the function to avoid a mismatch.
      
      With this patch, new-quant adds 0.28% gains on top of
      lv-map-multi on 40 frames of lowres.
      
      Change-Id: Ic4e76c28c7e4e007d277fe92b9030e078768bab3
      3d75209a
    • Linfeng Zhang's avatar
      Add av1_get_nz_map_contexts_sse2() · 0ba23e86
      Linfeng Zhang authored
      10x - 50x faster than C code.
      
      av1_cost_coeffs_txb() is about 6% faster.
      
      av1_cost_coeffs() is about 3% faster.
      
      Change-Id: Ib9cbed02a65b9cb0c5deb7a5d99c95d0d8ba32c0
      0ba23e86
    • Linfeng Zhang's avatar
      Add av1_get_nz_map_contexts() · d67c13f8
      Linfeng Zhang authored
      Change-Id: I9228a10fb0c50010a64aeb2761771522f378f33e
      d67c13f8
    • Linfeng Zhang's avatar
      Skip av1_cost_coeffs_txb() when eob is 0 · c02b4112
      Linfeng Zhang authored
      Tested with 720p encoding and av1_cost_coeffs() saves 12% time.
      Tried inline av1_cost_coeffs_txb() first but has no help.
      
      Change-Id: Idb59de8563010be6f39e9c803ee2d5137c5160f7
      c02b4112
  13. 21 Dec, 2017 1 commit
  14. 20 Dec, 2017 1 commit
  15. 19 Dec, 2017 3 commits
    • Dake He's avatar
      [lv_map_multi] BR coding · e2d8f183
      Dake He authored
      1. Use separate contexts for transforms of size 32x32 and above.
      2. Initialize cdf directly
      
      Change-Id: I3373143788e81b2547d99e420e591892ef2641a2
      e2d8f183
    • Jingning Han's avatar
      Conditionally drop cutting tails in lv-map coeff optimization · 8be58fad
      Jingning Han authored
      When the optimized non-zero tail is longer that 2, the likelihood
      that forcing to drop all the tail coefficients would give better
      rate-distortion optimization is much lower. This commit makes the
      encoder to check such conditions and speed up the lv-map/multi
      encoding speed.
      
      Local test clips at high target bit-rate / quality show 20% overall
      encoding speed up. The coding performance change for lowres is
      0.014%.
      
      Change-Id: Ifcf1d18e453a83110ca8be794aee26f3e0237605
      8be58fad
    • Sebastien Alaiwan's avatar
      Remove ADAPT_SCAN experiment · 23c511e7
      Sebastien Alaiwan authored
      This experiment has been abandonned for AV1.
      
      Change-Id: Ib3bb07d62f2025ce50dc9bc1b3f9fc22488519a7
      23c511e7
  16. 18 Dec, 2017 1 commit
  17. 14 Dec, 2017 4 commits
    • Monty's avatar
      Fix build when daala_tx and lv_map are both enabled · bca9e9ee
      Monty authored
      Daala TX removes the av1_get_tx_scale() call, which lv_map uses.
      This patch eliminates use of the call when Daala TX is enabled.
      
      Change-Id: I55ecdf630b8c5e1b30328a64252d1ca98e0c94ca
      bca9e9ee
    • Jingning Han's avatar
      Update levels in coeff optimization · a7a6f4e1
      Jingning Han authored
      When reducing the coefficient level gives better rate-distortion
      results, update the the corresponding levels for next coefficient
      context modeling.
      
      Change-Id: Ia04e287a576f2a4afd1e8ecc9bcb311d067f02e5
      a7a6f4e1
    • Luc Trudeau's avatar
      [Clean Up] Remove get_y_mode() · 2eb9b845
      Luc Trudeau authored
      The get_y_mode function, is superfluous, not used consistently, and requires a
      useless block_idx parameter than gets pass around a lot inside the
      codebase for no apparent reason.
      
      The block parameter is misleading, as it could cause people to think all these
      functions actually use this value.
      
      Change-Id: I7ae0a8d1282c009b9114c83771cce10f5c2ee397
      2eb9b845
    • Linfeng Zhang's avatar
      Update get_coeff_cost() · 5f1b8cef
      Linfeng Zhang authored
      Move get_nz_map_ctx() out of get_coeff_cost(), so that the coeff_ctx
      won't be recalculated in get_dist_cost_stats().
      
      Change-Id: I511d66e3e1a768c77314b290dc6bb90a123ca541
      5f1b8cef
  18. 13 Dec, 2017 4 commits
  19. 12 Dec, 2017 1 commit
  20. 11 Dec, 2017 1 commit