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
      Change-Id: I6894928dcadc99a79417034a7096a215693a46f2
    • 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
      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
    • 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
    • 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
      Change-Id: Ib637bba205d2cd0f6b0a5e2e91b270e22dce5580
  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
    • Urvang Joshi's avatar
      Cleanup some fragile aspects of rd_pick_partition. · 00c6e6f7
      Urvang Joshi authored
      (1) Explicitly reset RD stats for each partition.
      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.
      Change-Id: Icd75f25c34bb0f1806e691784648bcffce2417e6
    • 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.
      Change-Id: I36ff4ddbb9b2e884e4a5b76485247a20b1f5db3c
  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
      Change-Id: Idbda5b441e3eb844e03ca07bd174b4b7f8a7cb59
  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.
      Change-Id: I87dd3d5ca79e8f0ce51ee31738205ae5a53af072
    • 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
  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
  9. 23 Jan, 2018 2 commits
    • Frederic Barbier's avatar
      Move encoder-specific function out of decoder · 57ddc51a
      Frederic Barbier authored
      Change-Id: I5ae45abe5145dedf9751adbeb81a111a49df7eb5
    • 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
  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
    • Hui Su's avatar
      Update inter_tx_size in reset_tx_size() · cf600296
      Hui Su authored
      Change-Id: Ibddf60bfbdd6ac037ca4d2fa9bbc2eb30841991b
    • Debargha Mukherjee's avatar
      Adjust dq_type 1/2 parameters · dc024c46
      Debargha Mukherjee authored
      Change-Id: I5e205150c62f07049187ddd61b670ad5197c1645
    • Hui Su's avatar
      intrabc: do not transmit delta_lf_present_flag · 22a51d9e
      Hui Su authored
      Change-Id: I8a66b6303752b77a09cca1fe6890137146c50d1e
  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
      Change-Id: I1e5f23ef7f2debcf8edce788bfa63ec95db4a679
  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
    • 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
  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
    • 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
    • Hui Su's avatar
      Move sum_intra_stats into update_stats() · ea7320e1
      Hui Su authored
      Change-Id: Ied3252c3075e84252d8268a13d3f50066b3418e1
  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
    • 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
      The compression stats remain identical. The key frame encoding
      speed is on average 3% faster for a few tested 1080p clips.
      Change-Id: I65760b657a6d4b45bed9c4f1eca0cff1a2c274a1