1. 01 Feb, 2018 4 commits
    • Jonathan Matthews's avatar
      Revert "Reduce memory usage of inter_tx_size[] in MB_MODE_INFO" · 1fa9ba4c
      Jonathan Matthews authored
      This reverts Change-Id: Ie11dd055255d200954b704b8c2ad8ca3dff7bf5c
      
      BUG=aomedia:1305
      
      Change-Id: I6894928dcadc99a79417034a7096a215693a46f2
      1fa9ba4c
    • Jingning Han's avatar
      Enable 2-pass coding block partition search · 4489c267
      Jingning Han authored
      Obtain the most likely partition range from a first pass square
      block base partition search. Use the constrained partition search
      region for full rate-distortion optimization search in the second
      pass.
      
      Tested on pedestrian 1080p at 2000 kbps, it makes the encoding
      speed 40% faster for speed 0 and 30% faster for speed 1. The
      average coding performance loss is around 0.15%.
      
      Change-Id: Ifc83d48e6413d1b887e68cd1962084e018a2258f
      4489c267
    • Jingning Han's avatar
      Add partition search speed feature · c58ccc31
      Jingning Han authored
      Use simple rate-distortion search route for the first pass coding
      block partition.
      
      Change-Id: Iaaec3e1af83f46f625d3de8361eddd79a2bc6cef
      c58ccc31
    • Jingning Han's avatar
      Support two pass block partition search · a5847e89
      Jingning Han authored
      Add square block partition to serve as the first pass partition
      search.
      
      Change-Id: Ib637bba205d2cd0f6b0a5e2e91b270e22dce5580
      a5847e89
  2. 31 Jan, 2018 3 commits
    • Hui Su's avatar
      Reduce memory usage of inter_tx_size[] in MB_MODE_INFO · 1379beb7
      Hui Su authored
      Reduce the length of inter_tx_size[] from 1024 to 16.
      
      On a cif test sequence,
      encoder memory consumption decreases by 18% (380MB -> 312MB);
      decoder memory consumption decreases by 56% (21.4MB -> 9.4MB).
      
      Change-Id: Ie11dd055255d200954b704b8c2ad8ca3dff7bf5c
      1379beb7
    • Urvang Joshi's avatar
      Cleanup some fragile aspects of rd_pick_partition. · 00c6e6f7
      Urvang Joshi authored
      (1) Explicitly reset RD stats for each partition.
      
      Earlier,
      PARTITION_SPLIT was the only one resetting the RD_STATS in 'sum_rdc'.
      
      But this was working because:
      - PARTITION_SPLIT was tried before VERT, HORZ, VERT_4 and HORZ_4; and
      - RD cost calculations in VERT, HORZ, VERT_4 and HORZ_4 partitions
      implicitly discarded existing value in sum_rdc
      
      However, that was very fragile; explicitly resetting the stats every
      time is much safer.
      
      (2) Using a separate variable 'temp_best_rd_cost' was fragile as someone
      may forget to update the same. So, we use best_rdc.rdcost directly.
      
      BUG=aomedia:1246
      
      Change-Id: Icd75f25c34bb0f1806e691784648bcffce2417e6
      00c6e6f7
    • Imdad Sardharwalla's avatar
      Added HighBD support for mismatch debugging · 5b084ee1
      Imdad Sardharwalla authored
      Enabling CONFIG_MISMATCH_DEBUG with highbd streams was producing undefined
      behaviour. This patch adds support for highbd frames.
      
      BUG=aomedia:1246
      
      Change-Id: I36ff4ddbb9b2e884e4a5b76485247a20b1f5db3c
      5b084ee1
  3. 30 Jan, 2018 1 commit
  4. 29 Jan, 2018 2 commits
  5. 27 Jan, 2018 1 commit
  6. 26 Jan, 2018 1 commit
    • Jingning Han's avatar
      Properly reset the skip_mode element in mb_mode_info · 3da65bff
      Jingning Han authored
      The skip_mode element might re-use prior frame's coding decision
      for a current coding block rate-distortion search. Properly reset
      it to be zero for regular rate-distortion mode search.
      
      This improves the coding performance for ext-skip by 0.07% for
      lowres.
      
      Change-Id: Idbda5b441e3eb844e03ca07bd174b4b7f8a7cb59
      3da65bff
  7. 25 Jan, 2018 2 commits
    • Yaowu Xu's avatar
      Add num_plane to av1_copy_tree_context() · 68377282
      Yaowu Xu authored
      To support monochrome video and fixes a nightly test segfault.
      
      BUG=aomedia:1273
      
      Change-Id: I87dd3d5ca79e8f0ce51ee31738205ae5a53af072
      68377282
    • Zoe Liu's avatar
      Simplify context identification for coding ref frames · fa8bad19
      Zoe Liu authored
      This patch simply aggregates the checking on the counts of certain
      reference frames in the neighboring above and left blocks. It does
      not incur any coding performance change.
      
      Change-Id: I59a962ba95e7ab16731ce97371ec5709a582a0ba
      fa8bad19
  8. 24 Jan, 2018 1 commit
    • Zoe Liu's avatar
      Use split and horz/vert to predict horzA/B/vertA/B · 6001fb05
      Zoe Liu authored
      In rd_pick_partition(), the first one or two blocks for the partition
      types HORZ_A, HORZ_B, VERT_A, and VERT_B may be already evaluated,
      during the evaluation of SPLIT, HORZ, and VERT. This patch saves the
      RD pick mode results and tries to reuse them to remove the duplicate
      RD mode evaluation operations.
      
      This patch should not incur any coding performance loss.
      
      Testing on a few lowres frames: when CFL is off, this patch obtains
      >10% encoder speedup.
      
      Change-Id: I932e233bc93873de62a88230254df44494236dde
      6001fb05
  9. 23 Jan, 2018 2 commits
    • Frederic Barbier's avatar
      Move encoder-specific function out of decoder · 57ddc51a
      Frederic Barbier authored
      Change-Id: I5ae45abe5145dedf9751adbeb81a111a49df7eb5
      57ddc51a
    • Imdad Sardharwalla's avatar
      Don't calculate chroma data in monochrome mode · af8e2648
      Imdad Sardharwalla authored
      Encoder: Prior to this patch, some chroma data was calculated and
      later discarded when in monochrome mode. This patch ensures that
      the chroma planes are left uninitialised and that chroma
      calculations are not performed.
      
      Decoder: Prior to this patch, some chroma calculations were still
      being performed in monochrome mode (e.g. loop filtering). This
      patch ensures that calculations are only performed on the y
      plane, with the chroma planes being set to a constant.
      
      Change-Id: I394c0c9fc50f884e76a65e6131bd6598b8b21b10
      af8e2648
  10. 19 Jan, 2018 1 commit
  11. 18 Jan, 2018 2 commits
  12. 17 Jan, 2018 4 commits
    • David Barker's avatar
      Fix inter block detection in get_tx_size_context() · 84dc6e97
      David Barker authored
      In the decoder, the function get_tx_size_context() is called
      by read_selected_tx_size(), *before* mbmi->ref_frame is set up.
      This means that mbmi->ref_frame still holds the ref frames from
      the previous block, and does not indicate if the current block is
      inter or not.
      
      Fortunately, all of the other functions called by read_selected_tx_size()
      have an explicit "is_inter" parameter, which is set correctly.
      So we can just plumb this through into get_tx_size_context().
      
      Change-Id: I00f0f3704937f592ccc5d304ed20ee25196dd520
      84dc6e97
    • Hui Su's avatar
      Update inter_tx_size in reset_tx_size() · cf600296
      Hui Su authored
      BUG=aomedia:1231
      
      Change-Id: Ibddf60bfbdd6ac037ca4d2fa9bbc2eb30841991b
      cf600296
    • Debargha Mukherjee's avatar
      Adjust dq_type 1/2 parameters · dc024c46
      Debargha Mukherjee authored
      Change-Id: I5e205150c62f07049187ddd61b670ad5197c1645
      dc024c46
    • Hui Su's avatar
      intrabc: do not transmit delta_lf_present_flag · 22a51d9e
      Hui Su authored
      BUG=aomedia:1230
      
      Change-Id: I8a66b6303752b77a09cca1fe6890137146c50d1e
      22a51d9e
  13. 16 Jan, 2018 1 commit
    • David Michael Barr's avatar
      [CFL] separate uv_mode CDFs, split on is_cfl_allowed · cb3a8ef5
      David Michael Barr authored
      This is to exclude coding CFL for block sizes where it is normatively
      not allowed.
      
      Reuse the alternate CDFs from the --disable-cfl path.
      
      This yields some improvement on subset1:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0113 | -0.2630 | -0.2138 |   0.0021 | -0.0110 | -0.0157 |    -0.0511
      
      BUG=aomedia:1182
      
      Change-Id: I1e5f23ef7f2debcf8edce788bfa63ec95db4a679
      cb3a8ef5
  14. 15 Jan, 2018 1 commit
  15. 14 Jan, 2018 1 commit
  16. 11 Jan, 2018 2 commits
    • Ryan's avatar
      fix bug to use b_quantizer when trellis quantization is disabled. · 5b8c5fdc
      Ryan authored
      when trellis quantizaiton is disabled, the b_quantizer should be used.
      existing code has a lot of hard coded flag not hooked up correctly with
      high level trellis quantization enable/disable flag, which causes
      fp_quantizer is used. this patch is intended to remove the hard coded
      flags and correctly get them from the high level control.
      
      Change-Id: I0142aace03586d07aedea138fce08d3e72d99c32
      5b8c5fdc
    • Debargha Mukherjee's avatar
      Change dq_type in frame header in new_quant expt · 6e42741f
      Debargha Mukherjee authored
      dq_type now takes 4 possible values, one of which is
      the original multiply-only dequantizer.
      
      Change-Id: I2180f632f0d7f91dc391a6e802a93a77de789228
      6e42741f
  17. 10 Jan, 2018 3 commits
    • Hui Su's avatar
      intrabc: update intrabc_cdf per superblock · 28b53c30
      Hui Su authored
      Update intrabc_cdf per superblock during encoding.
      Also added support for entropy_stats.
      
      Change-Id: Ie106309a8932b86bb069990db0b0ea13a4c5e8ae
      28b53c30
    • 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
    • Hui Su's avatar
      Move sum_intra_stats into update_stats() · ea7320e1
      Hui Su authored
      Change-Id: Ied3252c3075e84252d8268a13d3f50066b3418e1
      ea7320e1
  18. 08 Jan, 2018 2 commits
  19. 06 Jan, 2018 4 commits
  20. 05 Jan, 2018 2 commits
    • Yushin Cho's avatar
      [dist-8x8] Remove asserts for sub8x8 distortions · 796d4e29
      Yushin Cho authored
      Remove the asserts in rd_pick_partition(), which check
      whether the sum of distortions of sub8x8 partitions matches to
      the 8x8 distortion measured in final reconstructed 8x8 pixels,
      because the sum of the sub8x8 distortions returned from rd_pick_sb_modes()
      is sometimes different from what is measured with final reconstructed 8x8 pixels.
      
      The asserts have been provided for the purpose of sanity check with PSNR
      and triggered with "--enable-dist-8x8=1" encoder option.
      
      Change-Id: I08e331900b19077cbb325ef5117688f05095dcc7
      796d4e29
    • Jingning Han's avatar
      Replace full txfm rd search with luma writing · 159f72c3
      Jingning Han authored
      The cfl route needs the reconstructed luma pixels in the chroma
      RD search. Replace an extra route of txfm_rd_in_plane with the
      use of av1_encode_intra_block_plane to directly write out the
      needed luma pixels in the key frame rate-distortion optimization
      process.
      
      The compression stats remain identical. The key frame encoding
      speed is on average 3% faster for a few tested 1080p clips.
      
      Change-Id: I65760b657a6d4b45bed9c4f1eca0cff1a2c274a1
      159f72c3