1. 18 Jan, 2018 5 commits
  2. 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
  3. 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
  4. 15 Jan, 2018 1 commit
  5. 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
  6. 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
  7. 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
  8. 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
  9. 09 Jan, 2018 2 commits
  10. 08 Jan, 2018 3 commits
  11. 06 Jan, 2018 4 commits
  12. 05 Jan, 2018 3 commits
    • Jingning Han's avatar
      Make txk-sel support cfl in key frame coding · 60db3c95
      Jingning Han authored
      Properly store and update the luma component result in the key
      frame rate distortion optimization process for chroma component
      prediction. The txk-sel provides 0.15% gains for key frame coding
      on top of lv-map/multi and all other default experiments.
      
      Change-Id: I694860607b318d0a84333ed928d3de85c7676623
      60db3c95
    • 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
    • Jingning Han's avatar
      Fix txk-sel rd search in the key frames · c5c37032
      Jingning Han authored
      If the transform block selects a transform kernel type that makes
      it all zero coefficients and hits the best rd cost, store such
      decision and force the transform block to be coded as all zero
      block in the final coding pass. This makes txk-sel improve the
      kf coding performance by 0.15% now.
      
      Change-Id: I4bc3c185b9c68daefb856276da45bbf9e317d02e
      c5c37032
  13. 04 Jan, 2018 1 commit
    • Hui Su's avatar
      Remove probability model for single ref frames · 3d30b4b6
      Hui Su authored
      -Use the CDF values to calculate the cost for ref frame signaling
      -Update the cost per superblock
      -Fix some errors in the default CDF
      
      Test on midres speed-1 30 frames shows ~0.1% coding gain.
      
      Change-Id: I6f3e5896ef1cae9b515fc8287bc7565d68d05a57
      3d30b4b6