1. 14 Jun, 2017 7 commits
  2. 08 Jun, 2017 1 commit
  3. 02 Jun, 2017 6 commits
    • Angie Chiang's avatar
      Pass above/left ctx plane_bsize to av1_optimize_b · 3511c37d
      Angie Chiang authored
      This is to facilitate lv_map experiment
      
      Change-Id: Ife779b172c4b81a9b2b4640464163300996e3969
      3511c37d
    • Angie Chiang's avatar
      Add test code for optimize_txb() · 5e012fe6
      Angie Chiang authored
      Change-Id: Ieae4c1a1c932d375b4577c7e42a9764e5f9cd16a
      5e012fe6
    • Angie Chiang's avatar
      Add av1_optimize_txb()/optimize_txb() · 07c57f3b
      Angie Chiang authored
      This function will check if downgrading each coeff by one level
      will reduce overall rd cost. If so, it will down grade the
      coeff and update the effect and then move on to the next coeff.
      
      In general, we found out that updating according to the
      coding order will provide better coding performance.
      The optimization order is as follows.
      1) forward optimize coeffs == 1 or -1 only
      2) backward optimize all coeffs
      
      Change-Id: Ic0fd4d44d11878258e09d4fa87a8b48b397a10a8
      07c57f3b
    • Angie Chiang's avatar
      Add update_level_down() · d19969e4
      Angie Chiang authored
      This function will update txb_cache and txb_info affected by
      downgrading the coeff by one level
      
      Change-Id: I57f9377eb7fb94b4244e677704b33c5eece83133
      d19969e4
    • Angie Chiang's avatar
      Add try_level_down_facade() · 47e07077
      Angie Chiang authored
      Change-Id: I82e12e312e6685c3801b243196af2570d3793aac
      47e07077
    • Angie Chiang's avatar
      Add try_change_eob() · c77799be
      Angie Chiang authored
      This function will be applied to the last non-zero coeff to
      calculate the cost difference including eob change
      
      Change-Id: I471aa74600c41fd371447ec121d113c79bd767b8
      c77799be
  4. 01 Jun, 2017 4 commits
    • Angie Chiang's avatar
      Add try_level_down() · a530ef40
      Angie Chiang authored
      This function computes the overall (i.e. self and neighbors') cost
      difference caused by downgrading a coefficient by one level at
      a specific location
      
      Change-Id: I1b7b6acfe06ed06b9a2ff48b5bb11527646d1aa8
      a530ef40
    • Angie Chiang's avatar
      Add try_self_level_down() and get_level_prob() · 7afbba41
      Angie Chiang authored
      try_self_level_down() computes the cost difference of the coeff
      that is downgraded by one level
      
      get_level_prob() computes the probability of level_map coding
      at a specific position and level.
      
      Change-Id: Iaa9d40477aaf798993c2d5d26341551db665902b
      7afbba41
    • Angie Chiang's avatar
      Add gen_txb_cache() and it's related functions · 2affb3b0
      Angie Chiang authored
      This function pre-generate counts/magnitudes of each level map
      such that we don't have to re-calculate the counts/magnitudes
      while doing the optimization.
      
      Change-Id: Ifdfc89522cf2f2b9f3734d451324081f42b47cb0
      2affb3b0
    • Angie Chiang's avatar
      Add get_coeff_cost() and get_txb_cost() · 488f921c
      Angie Chiang authored
      Change-Id: I085f2bc706fde41afbee5ff48b56acc095f804c2
      488f921c
  5. 21 May, 2017 2 commits
    • Timothy B. Terriberry's avatar
      cb4x4: Fix reset_skip_context() without chroma_2x2 · a2d5cdef
      Timothy B. Terriberry authored
      reset_skip_context() was always clearing the entropy contexts for
      all three color planes, using a block size that corresponded with
      the luma plane.
      
      However, when chroma_2x2 is disabled, then for sub-8x8 luma block
      sizes, the corresponding chroma block size is always 4x4, and the
      skip flag only affects the chroma blocks corresponding to the
      upper-left luma block.
      
      This patch makes reset_skip_context() reset the contexts that
      actually correspond to the chroma blocks that are skipped (if any).
      It also moves reset_skip_context() to av1_reset_skip_context() in
      blockd.c, because blockd.h gets included before onyx_int.h, which
      declares the required is_chroma_reference() function.
      reset_skip_context() was too large and used in too many places to
      be a reasonable candidate for inlining, anyway.
      
      AWCY results on objective-1-fast:
      
      cb4x4-fix-base@2017-05-11T06:26:50.159Z -> cb4x4-fix-reset_skip@2017-05-11T06:28:45.482Z
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0301 |  0.1068 |  0.1463 |   0.0359 | 0.0260 |  0.0347 |     0.0479
      
      A regression (near the noise range), but without this fix, the line
      buffer size required by the entropy contexts will be doubled.
      
      Change-Id: I12fa6e60d9c1c7c85927742775a346ea22b3193f
      a2d5cdef
    • Jingning Han's avatar
      Support level map coeffs in var-tx encoding · 4fe5f67f
      Jingning Han authored
      Use recursive transform block coding order.
      
      Change-Id: I6d4671fe669e8a1897e034973de181078272cbfd
      4fe5f67f
  6. 19 May, 2017 1 commit
    • Jingning Han's avatar
      Unify tokenize_b_arg struct · 6171ae77
      Jingning Han authored
      Use a single struct for tokenization and level map coding.
      
      Change-Id: Id685992b7db5964ee204c4b0b90379df50c56546
      6171ae77
  7. 04 May, 2017 1 commit
    • Angie Chiang's avatar
      Move eob/lossless check into av1_optimize_b · 7dec6c4c
      Angie Chiang authored
      This will guarantee that av1_optimize_b will be turned off when
      lossless mode is on
      
      Remove heuristic lossless check in optimize_b_greedy
      
      Change-Id: I636c776f3f6b632eb03bc57a470ea43aae4fe0f6
      7dec6c4c
  8. 24 Apr, 2017 1 commit
  9. 18 Apr, 2017 2 commits
    • Angie Chiang's avatar
      Redo txfm/quant in av1_txk_search · 2ed03a37
      Angie Chiang authored
      Change-Id: I622d499187f3881b274ca6cf3745f51fa0103b18
      2ed03a37
    • 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
  10. 16 Apr, 2017 2 commits
  11. 15 Apr, 2017 1 commit
  12. 14 Apr, 2017 1 commit
  13. 13 Apr, 2017 1 commit
    • Angie Chiang's avatar
      Use max_block_wide/high in av1_write_coeffs_mb · 8d6bc80b
      Angie Chiang authored
      This fix the invalid tx_type error happened when mb_to_right_edge
      is negative
      
      The invalid tx_type error will cause bitstream error and then
      let the decoder hang in the while loop of read_golomb()
      
      Change-Id: Ide6c3497cdd5b69b20b4b093241ed89ccc1b0f00
      8d6bc80b
  14. 12 Apr, 2017 2 commits
  15. 11 Apr, 2017 2 commits
  16. 05 Apr, 2017 2 commits
  17. 27 Mar, 2017 2 commits
    • Angie Chiang's avatar
      Use txb_entropy_ctx to store entropy ctx of lv_map · 74e2307b
      Angie Chiang authored
      1) Add txb_entropy_ctx into MACROBLOCK_PLANE and PICK_MODE_CONTEXT
      
      2) Add av1_get_txb_entropy_context() to compute the entropy context
      
      3) Compute and sore the entropy context before av1_xform_quant()
      return
      
      Change-Id: Ia2170523af3163b9456f7c6a305c1e77ad2b23be
      74e2307b
    • Angie Chiang's avatar
      Compute lv_map's coeff cost in av1_cost_coeffs() · 47e4b369
      Angie Chiang authored
      1) move the original implementation in av1_cost_coeffs() to
      cost_coeffs() and let av1_cost_coeffs become a switch for
      choosing original coeff cost or lv_map's coeff cost
      
      2) change get_txb_ctx's naming. Use plane_bsize instead of
      bsize to make the intention clear.
      
      3) remove txb context computing in get_txb_ctx
      Change-Id: I17e3d39d796e051d1c90f0a0c5d7d0888b9ca292
      47e4b369
  18. 23 Mar, 2017 2 commits