1. 29 Jan, 2018 2 commits
    • Hui Su's avatar
      intrabc: support txk-sel · 02e84155
      Hui Su authored
      Allow transform blocks within an intraBC block to use differenct transform
      types.
      
      Change-Id: Ibd1a0e920f9d37fae007eecb3c79e0b1b839b37e
      02e84155
    • Hui Su's avatar
      Correctly handle transform type cost · 6001e04c
      Hui Su authored
      Only consider transform type cost when there are more than just one
      candidate.
      
      Change-Id: I3b16bfb7f4d37a1826230396f46b741dbae82ac7
      6001e04c
  2. 28 Jan, 2018 2 commits
    • David Michael Barr's avatar
      [CFL] Independent search termination for plane and sign · 2fae28b2
      David Michael Barr authored
      Stop if less than half of the iterations give improvement.
      
      Minor metric changes for a 2.5x speed up of the alpha search.
      
      Results on subset1:
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -0.0038 |  0.0466 |  0.1388 |  -0.0103 | -0.0312 | -0.0220 |     0.0330
      
      Change-Id: Ic25a995eee500ffc4b80b73635baf0a710954dc0
      2fae28b2
    • Yaowu Xu's avatar
      Avoid out of bound array access · 92245c87
      Yaowu Xu authored
      Change-Id: I4066561b769cf2bd4af515c9d351f609c08e3076
      92245c87
  3. 26 Jan, 2018 2 commits
    • Sebastien Alaiwan's avatar
      Remove DAALA_TX experiment · 5859636f
      Sebastien Alaiwan authored
      This experiment has been abandonned for AV1.
      
      Change-Id: Ief8ed6a51a5e7bac17838ebb7a88d88bbf90a96f
      5859636f
    • Cheng Chen's avatar
      Skip txfm search · 3c22260b
      Cheng Chen authored
      Skip transform type search.
      
      Without txk_sel:
      Skip remaining transform type search when all transform blocks inside
      the coding block have eob = 0.
      
      With txk_sel:
      For each transform block, whenever eob = 0, we skip remaining
      transform type search.
      
      Speed impact:
      On low bitrate, 25% speed up.
      On high bitrate, 15-20% speed up.
      
      Performance impact: Google test lowres, 30 frames
      With txk_sel: 0.15% drop
      Without txk_sel: 0.30% drop
      
      Change-Id: I5e8db730a19feec22e378611046b1ce1ab001c85
      3c22260b
  4. 25 Jan, 2018 5 commits
    • Hui Su's avatar
      Re-enable the tx type pruning speed feature · 4e71fd94
      Hui Su authored
      Change-Id: I93702d24bf7d711b6910e2e502f9f97c661bcf6c
      4e71fd94
    • Jingning Han's avatar
      Use meaningful names in txk-sel rd control · 66965a20
      Jingning Han authored
      Change-Id: I83ca47c1469d8e383a815058c02c4826c6282873
      66965a20
    • Yue Chen's avatar
      Clean up and rework rates in motion_mode_rd() · c5024215
      Yue Chen authored
      Remove all *bmc variables, which were used to record basic motion
      search results (no advanced masked compound) when obmc and warped
      motion modes were allowed to work with compound ref.
      Remove switchable rate that is passed in to it, since in most
      motion modes, we need to recalculate the cost based on motion_mode
      and the refined mv. This change slightly improve the rd perf.
      
      Performance change: -0.024%
      
      Change-Id: I4afe0927e97cc7e7251022957f7665ed3032079c
      c5024215
    • 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
    • Hui Su's avatar
      Move av1_search_txk_type() to rdopt.c · 4a5c6cf8
      Hui Su authored
      Change-Id: I4f9d014324b35e30f25cae5fa570620249640cf6
      4a5c6cf8
  5. 24 Jan, 2018 4 commits
    • Cheng Chen's avatar
      Record total rate cost in trellis · 82775f61
      Cheng Chen authored
      Record total rate cost when computing trellis optimization.
      Reduce redundant rate computation in later stages.
      
      Speed impact: ~6% speed up
      Coding performance should not be affected.
      
      Change-Id: I9e940a2d126bb55930fcf22ea04d061eee1fc944
      82775f61
    • Jingning Han's avatar
      Skip RD search over lst 2/3 frame for non-nearest neighbor mvs · 8db5f17b
      Jingning Han authored
      Skip the rate distortion search over last 2/3 reference frames for
      the reference motion vectors derived from non-nearest neighbors.
      The overall coding performance change is in the noise range - 0.05%
      better. Speed up the encoding process by 20%.
      
      Change-Id: I823b8ca2805ae332f4c9bc8ee255069a82db4331
      8db5f17b
    • 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
  6. 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
  7. 19 Jan, 2018 2 commits
  8. 18 Jan, 2018 5 commits
  9. 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
  10. 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
  11. 15 Jan, 2018 1 commit
  12. 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
  13. 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