1. 24 Jan, 2018 2 commits
    • Jingning Han's avatar
      Support rd model in txk sel search · dd8600f5
      Jingning Han authored
      Make the per transform block kernel selection process unified with
      the rate distortion model used in preliminary mode search. This
      makes the txk-sel model search space same as baseline.
      
      Change-Id: I82a2d94e88a03c88154582575ced500197f8a409
      dd8600f5
    • Hui Su's avatar
      Code cleanup in rdopt.h · 206d22f2
      Hui Su authored
      Change-Id: Iea0e8665cdd5b9bc0fe17930add7068443765ea9
      206d22f2
  2. 23 Jan, 2018 2 commits
    • Hui Su's avatar
      Remove av1_cost_bit() · 751a2335
      Hui Su authored
      It's more efficient to use av1_cost_literal() instead.
      
      Change-Id: I50727d4a4ee06492b373c2e7831c224c5eae8735
      751a2335
    • 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
  3. 19 Jan, 2018 2 commits
  4. 18 Jan, 2018 5 commits
  5. 17 Jan, 2018 7 commits
    • Hui Su's avatar
      Fix a bug in intra_block_yrd() · cdef3b38
      Hui Su authored
      The tx size cost should be included in the total rate cost.
      
      Change-Id: Ib8fe9cc67cf712ba1c7c8f539b390909c7e6be7b
      cdef3b38
    • Imdad Sardharwalla's avatar
      Fix ref_mv_idx offset in rdopt.c · be5ca551
      Imdad Sardharwalla authored
      The ref_mv_idx offset of 1 was not taken
      into account for the NEAR_MV mode.
      
      Change-Id: I0939cfd8cf2496f6d4f0dbac67b2e03942318195
      be5ca551
    • Hui Su's avatar
      Rework fast tx type search speed feature for intra frame · 00121edb
      Hui Su authored
      Fix tx type as the default type and search for the best prediction mode;
      then do a final search for the best tx type.
      
      When it's enabled at speed 0, encoding speed increases to 3x with 2%
      compression loss on keyframes. It's currently turned on for speed
      2 and above.
      
      Change-Id: Ic9ca1479da10d467a88a4d692d9c75da40d2798d
      00121edb
    • Hui Su's avatar
      Remove obsolete code about "FIXED_TX_TYPE" · 99350a62
      Hui Su authored
      Change-Id: I0156df138342be1f4ffa867a5e293887ff83e251
      99350a62
    • 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
    • Yue Chen's avatar
      Fix data overflow in interintra rd · 7ebfaf4f
      Yue Chen authored
      BUG=aomedia:1236
      
      Change-Id: I72c1e5ba7f0090c0831ca9aaccbc32dc4f1fdf4f
      7ebfaf4f
    • Urvang Joshi's avatar
      Remove flag ALLOW_INTRA_EXT_TX · 978152a9
      Urvang Joshi authored
      Change-Id: Ic68c6e8d54782f47fe9d1d1775b861edeb52bf35
      978152a9
  6. 16 Jan, 2018 4 commits
    • Debargha Mukherjee's avatar
      Add option to use fp quant when new-quant is used · 6cf2b467
      Debargha Mukherjee authored
      Change-Id: I861ccc09454606ce4172db02a52550f9b7a7800c
      6cf2b467
    • Cheng Chen's avatar
      Minor refactor · f9cf5b65
      Cheng Chen authored
      Static local functions.
      Remove av1_ prefix for local functions.
      
      Change-Id: I91cda7b6a1e09683ed70cd74e724db88ddf124dc
      f9cf5b65
    • 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
    • Yunqing Wang's avatar
      Store and use single_newmv correctly · 5f4f738e
      Yunqing Wang authored
      The motion vector search result at single reference frame mode is stored
      for later use. There are some issues in current implementation.
      1. single_newmv is only stored for 1st ref_mv, but not for other ref_mv
      values tested.
      2. If single reference mode is skipped and not tested, single_newmv is
      not available.
      3. Interintra mode always use single_newmv as its MV, which may not be
      available as mentioned above.
      To fix it, we store single_newmv for every ref_mv tested. In interintra
      mode, if single_newmv is not available, do motion search to find a MV.
      
      This was revealed by a motion vector unit test failure.
      
      BUG=aomedia:1190
      
      Change-Id: I3e690587644d4c8c31337f37380b796a3d71a3f6
      5f4f738e
  7. 15 Jan, 2018 1 commit
  8. 13 Jan, 2018 1 commit
    • Hui Su's avatar
      Fix valgrind error in av1_rd_pick_inter_mode_sb() · c05a4aa7
      Hui Su authored
      Initialize the RD_STATS variable to avoid valgrind error of
      "Conditional jump or move depends on uninitialised value(s)".
      
      BUG=aomedia:1219,aomedia:1226
      
      Change-Id: Ie7749c8297b377750f0901d07e2c6024552a10df
      c05a4aa7
  9. 12 Jan, 2018 3 commits
    • Yue Chen's avatar
      Refactor and speed-up interintra RDO · b8aa399a
      Yue Chen authored
      Interintra RDO is moved into motion_mode_rd instead of calling
      handle_inter_mode() separately. This will save time on interp
      filter and new mv search, also skips interintra modes if the base
      inter predictors are not good enough.
      
      Speedup: LL ~20% HL < 1%
      Tiny performnace improvements (<0.05%).
      
      Change-Id: If5b1ad22396df7590fbc1060e26b61734a205830
      b8aa399a
    • Hui Su's avatar
      Code simplification · ae9ec67d
      Hui Su authored
      Change-Id: I2a9e16bf337a91219fc2aa10937d3cd1dfa67a71
      ae9ec67d
    • Hui Su's avatar
      Support tx depth search speed feature for intra blocks · fbb75a99
      Hui Su authored
      Change-Id: I26d23cd1107b4568c6f473df373be77fddb7c752
      fbb75a99
  10. 11 Jan, 2018 3 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
    • Jingning Han's avatar
      Drop repeated tx size search from intra mode txfm RD · 6217782f
      Jingning Han authored
      When the coding block size is below 16x16, the current tx size
      search loop may end up searching 4x4 transform size multiple times.
      This commit skips the redundant search steps. Tested a a few
      1080p clips at 4 Mbps, the encoding speed is up by 10% for key
      frame coding, and 3% for overall.
      
      Change-Id: Ifbb27bad1ec55ef0011b1e789d995f36b3f4605e
      6217782f
    • Hui Su's avatar
      Add an identity scale factor in AV1_COMMON · 5ebd8704
      Hui Su authored
      Set up the identity scale factor once per frame, instead of per joint
      motion search.
      
      Change-Id: I5edd264655254f4b6a0a923d8ab43adbca044228
      5ebd8704
  11. 10 Jan, 2018 3 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
    • Hui Su's avatar
      intrabc: correctly store blk_skip[] · 29bd5895
      Hui Su authored
      BUG=aomedia:1203
      
      Change-Id: I03ca925734535c31a1ed6bdeb7f29b5b5d5f476c
      29bd5895
    • Urvang Joshi's avatar
      joint_motion_search: Make assumption explicit. · 48d3e633
      Urvang Joshi authored
      Use assert to test the assumption noted in the comment.
      
      Ran some encodes with varying per-frame resolutions (using
      SUPERRES_RANDOM and RESIZE_RANDOM modes) to ensure that these
      asserts are indeed valid.
      
      Change-Id: I30021fff05f9793f80e42c5319bed02b0ae04cbd
      48d3e633
  12. 09 Jan, 2018 2 commits
  13. 08 Jan, 2018 3 commits
  14. 06 Jan, 2018 2 commits