1. 06 Nov, 2017 1 commit
    • Marco's avatar
      Nonrd_pickmode: avoid computing UV cost when early_term is set. · 6fbc354c
      Marco authored
      For nonrd_pickmode: if early_term is set there should be
      no need to include UV in rdcost (when color_sensitivity is set).
      
      Neutral change on RTC and RTC_derf metrics, for speed >= 5.
      No change for ytlive metrics.
      
      Very small speed gain (~0.5%) on some clips with strong color content.
      
      Change-Id: Ifc00928ecd935fc71e94935ceef0ae7481249f07
      6fbc354c
  2. 03 Nov, 2017 1 commit
    • Marco's avatar
      Compound prediction mode for nonrd pickmode. · eb7d431c
      Marco authored
      Allow for compound prediction mode in nonrd_pickmode for ZEROMV.
      For real-time encoding, 1 pass with non-zero lag-in-frames.
      
      Added speed feature to control the feature.
      Enabled for speed >=6 for now, under VBR mode.
      
      avgPSNR/SSIM metrics positive on ytlive set, for speed 6:
      some clips up by ~3-5%, some clips neutral gain, average gain
      across clips is ~1%.
      
      Small/negligible decrease in speed.
      
      Change-Id: I7a60c7596e69b9a928410c5ee2f9141eecd8613d
      eb7d431c
  3. 04 Oct, 2017 1 commit
    • Marco's avatar
      Modify early exit for alt_ref in nonrd_pickmode. · 77e51e20
      Marco authored
      For 1 pass vbr mode:
      On no-show_frame/ARF: instead of skipping alt_ref_frame
      completely in mode testing, allow for checking (0, 0) on alt_ref.
      
      Small gain in metrics, ~0.18%, no change in speed.
      
      Change-Id: I32a3c24faca64ab70dd5091071a0dc301db7dd1e
      77e51e20
  4. 03 Oct, 2017 1 commit
  5. 28 Sep, 2017 1 commit
    • Marco's avatar
      vp9: Modification to adapt the ARF usage for 1 pass vbr · 03e8f133
      Marco authored
      Add stats for past ARF usage, and use it to disable
      ARF usage based on some conditions.
      
      Overall improvement on ytlive set, reduces the regression
      on the problem clips for this feature.
      
      Only affects when sf->use_altref_onepass is enabled
      (currently off by default).
      
      Change-Id: I66267f227ea132dc86acb730e9882f85bead2cdb
      03e8f133
  6. 20 Sep, 2017 1 commit
    • Marco's avatar
      vp9: Modify pickmode early exit for ARF in 1pass. · 42373b21
      Marco authored
      Add the condition frames_since_golden > 0 to the
      early exit check for ARF usage in nonrd_pickmode.
      This improves quality of first frame following ARF, where
      frame_since_golden = 0.
      
      Small/neutral gain in metrics for speed 6, neutral change in speed.
      
      Only affects when USE_ALTREF_FOR_ONE_PASS is enabled.
      
      Change-Id: I82e73e6ff6fc849e5ca5448563cb8a0515fe0cdc
      42373b21
  7. 19 Sep, 2017 2 commits
    • Marco's avatar
      vp9: Modify simple_block_yrd condition for SVC · aaa6cdcc
      Marco authored
      Modify simple_block_yrd condition in nonrd_pickmode for SVC:
      allow it to be used also on base temporal_layer, only when
      spatial_layer > 1 and block size < 32x32.
      
      Speed up of about ~2% for 3 layer SVC, with little/negligible
      loss in quality.
      
      Change-Id: I7734bdae51cf51f22b96f6b2b27da20ea1d84344
      aaa6cdcc
    • Marco's avatar
      vp9: Adjustments for ARF usage in 1 pass vbr. · ebb015a5
      Marco authored
      Only when USE_ALT_REF_ONE_PASS is enabled (off by default).
      Force fixed partition to 64x64 when is_src_alt_ref_frame is true,
      and don't force early exit for some modes in nonrd_pickmode
      for ARF noshow frames.
      
      Small gain ~0.2% on ytlive metrics for speed 6.
      Neutral speed difference.
      
      Change-Id: I27eb6622d0453c09a06ccdc3b16368762474d11d
      ebb015a5
  8. 08 Sep, 2017 1 commit
    • paulwilkins's avatar
      Fix bug in intra mode rd penalty. · 0657f473
      paulwilkins authored
      The intra mode rd penalty was implemented as a rate penalty.
      Code was added to scale the penalty according to block size but
      this was not done correctly for the SB level or sub 8x8.
      
      The code did a weird double scaling in regard to bit depth that
      has been removed. Given that it is a rate penalty the bit depth
      should not matter.
      
      This bug fix improves average metrics  on our standard test
      sets by about 0.1%
      
      Change-Id: I7cf81b66aad0cda389fe234f47beba01c7493b1e
      0657f473
  9. 05 Sep, 2017 1 commit
  10. 31 Aug, 2017 1 commit
  11. 23 Aug, 2017 1 commit
  12. 31 Jul, 2017 1 commit
    • Marco's avatar
      vp9: Fix denoising condition when pickmode partition is used. · 999bd6ea
      Marco authored
      When the superblock partition is based on the nonrd-pickmode,
      we need to avoid the denoising. Current condition was based on
      the speed level. This change is to make the condition at the
      superblock level, as the switch in partitioning may be done at
      sb level based on source_sad (e.g., in speed 6).
      
      Change-Id: I12ece4f60b93ed34ee65ff2d6cdce1213c36de04
      999bd6ea
  13. 18 Jul, 2017 1 commit
    • Marco's avatar
      vp9: Disable usage of sb_use_mv_part for SVC. · 817f68cd
      Marco authored
      To fix valgrind issueis with SVC tests.
      SVC encoding uses prune_evenmore which is causing uinit value.
      
      Will re-enable later when issue is resolved.
      
      Change-Id: I257ff878cf78197ddd813db056582a4d5fe94f44
      817f68cd
  14. 17 Jul, 2017 1 commit
    • Marco's avatar
      vp9: Reuse motion from choose_partitioning in NEWMV search. · 0c9e2f4c
      Marco authored
      When int_pro_motion_estimation is done for superblock in
      choose_partitioning, use it to avoid the full_pixel_search
      for NEWMV mode, if bsize is >= 32X32.
      
      For speed > 7.
      Small/neutral change on RTC metrics.
      ~1-2% speedup on arm on high motion clip.
      
      Change-Id: I3cfe6833ff4bf75d4afa83eaf058ad45729de85b
      0c9e2f4c
  15. 06 Jul, 2017 1 commit
    • Marco's avatar
      vp9: Nonrd mode: use content_state_sb for high motion. · 8c3f18ef
      Marco authored
      In the content_state for a superblock is set to HighSad,
      use that to bias some decisions in variance partition and
      nonrd pickmde: use int_pro_motion for sad computation in
      choose_partitioning, and set large_block in pickmode based
      on the content_state_sb.
      
      Only affects speed >= 7.
      
      Immprovement for high motion content.
      Small gain (~1%) in RTC metrics.
      Speedup of ~5 for high motion clip on android (speed 8, 1 thread).
      
      Change-Id: I5774c4854f012b89c8e969f6129b60988c2ce11c
      8c3f18ef
  16. 30 Jun, 2017 1 commit
    • Marco's avatar
      vp9: Adjust condition for checking intra mode. · 2290898a
      Marco authored
      For nonrd_pickmode: add condition for checking
      intra mode if the sb content state is VeryHighSad.
      
      Reduces artifacts when sudden change in content.
      
      Metrics on RTC/RTC_derf neutral (small gain).
      No speed loss observed.
      
      Change-Id: I07006d28fd2dc06c1d06b07630102b0fece50c40
      2290898a
  17. 29 Jun, 2017 1 commit
  18. 22 Jun, 2017 1 commit
    • Marco's avatar
      vp9: Add high source sad to content state. · d7515b11
      Marco authored
      Use it to limit NEWMV early exit in nonrd pickmode
      
      Small change in RTC metrics, has some improvement
      for high motion clips.
      Change-Id: I1d89fd955e1b3486d5fb07f4472eeeecd553f67f
      d7515b11
  19. 21 Jun, 2017 1 commit
    • Marco's avatar
      vp9: Adjustments for aq-mode and pickmode for speed >= 8. · 8cf6f78f
      Marco authored
      Adjust the threshold for turning off cyclic refresh for high motion,
      and avoid testing golden in nonrd pickmode for speed >= 8 if
      golden refresh was long ago.
      
      No change/neutral on RTC metrics.
      Change-Id: I40959b8d9637f3553e7458bbabd8c6024c2c09c0
      8cf6f78f
  20. 19 Jun, 2017 1 commit
    • Marco's avatar
      vp9: SVC: Rework the usage of base_mv for SVC. · 112cd955
      Marco authored
      Set the base_mv_aggressive for temporal enhancement layers (TL > 0).
      Under the aggressive mode, skip the NEWMV depending on the
      SSE of the base_mv. Also reduce the subpel motion to 1/2 under
      aggressive mode if base_mv is good.
      
      Speedup ~3% with small/negligible loss in quality on RTC.
      Affects speed >= 6.
      
      Change-Id: I89341b279cad6da2a04b76d5e726016191dacdb8
      112cd955
  21. 07 Jun, 2017 1 commit
    • Marco's avatar
      vp9: SVC: Enable simple_block_yrd for temporal layers. · 14d47180
      Marco authored
      Enable simple_block_yrd for temporal enhancement layers (TL > 0).
      And remove block size condiiton for SVC mode.
      Only affects speed >= 7 SVC.
      
      Speedup ~3-4%.
      avgPSNR regression on RTC for (3 spatial, 3 temporal) layers: ~1%.
      
      Change-Id: Iff4fc191623b71c69cd373e7c0823385e7ac67ed
      14d47180
  22. 06 Jun, 2017 1 commit
    • Jerome Jiang's avatar
      Initialize cost_list all to INT_MAX. · cf07d858
      Jerome Jiang authored
      It is initialized to be { INT_MAX, 0, ... } in ffe0f9b7.
      No effect on encoders.
      Make it consistent with other initializations.
      
      BUG=webm:1440
      
      Change-Id: Ie2a180d93626b55914c8c4255e466a1986d2b922
      cf07d858
  23. 05 Jun, 2017 1 commit
  24. 02 Jun, 2017 1 commit
    • Marco's avatar
      vp9: SVC: Force subpel search off under certain conditions. · e30781ff
      Marco authored
      For SVC 1 pass non-rd mode:
      Force subpel seach off for SVC for non-reference frames
      under motion threshold.
      
      Add flag to svc context to indicate if the frame is not used
      as a reference.
      
      Little/no quaity loss, ~2% speedup.
      
      Change-Id: Ic433c44b514d19d08b28f80ff05231dc943b28e9
      e30781ff
  25. 11 May, 2017 2 commits
    • Marco's avatar
      vp9: SVC: Increase the partiiton and acskip thresholds · c5c31b9e
      Marco authored
      Increase the partition and acskip thresholds for temporal
      enhancement layers.
      
      ~1-2% speedup, with negligible loss in quality.
      
      Change-Id: Id527398a05855298ad9ddac10ada972482415627
      c5c31b9e
    • Marco's avatar
      vp9: SVC: allow for setting the interp_filter in non-rd pickmode. · c5a4376a
      Marco authored
      For SVC 1 pass non-rd pickmode, the interpolation filter for the
      upsampling of the golden (spatial) reference was not being explicitly
      set and instead was takin gwhatever value was set in the previous
      mode/block (which would be either EIGHTTAP or EIGHTAP_SMOOTH).
      
      Fix it to the default EIGHTTAP for now, to be updated/selected
      adaptively in a later change.
      
      Minor adjustmemt to rate targeting thresholds in datarate unittests.
      
      Change-Id: I52085048674072c6cfb7163e11e9a2658d773826
      c5a4376a
  26. 01 May, 2017 1 commit
    • Marco's avatar
      vp9: SVC: Early exit on golden ref in non-rd pickmode. · ae0215f9
      Marco authored
      For SVC 1 pass real-time: add condition to skip the
      golden (spatial) reference mode in non-rd pickmode.
      Condition is to skip golden if the sse of zeromv-last mode
      is below threshold. And change order in ref_mode_set_svc
      to make sure golden zeromv is tested after last-nearest.
      
      Speedup ~3-4% with little/negligible quality loss.
      
      Change-Id: I6cbe314a93210454ba2997945f714015f1b2fca3
      ae0215f9
  27. 25 Apr, 2017 5 commits
  28. 24 Apr, 2017 1 commit
    • Yunqing Wang's avatar
      Make the row based multi-threaded encoder deterministic · 10a497bd
      Yunqing Wang authored
      This patch followed allow_exhaustive_searches feature modification and
      continued to modify the encoder to achieve the determinism in the row
      based multi-threaded encoding. While row-mt = 1 and using multiple
      threads, the adaptive feature in encoder was disabled, which gave
      BDRate gain(at speed 1, -0.6% ~ -0.7%; at speed 2, -0.46% ~ -0.59%),
      but some encoder speed losses(7% ~ 10% at speed 1 and 3% ~ 6% at
      speed 2). These speed losses were acceptable considering the speed
      gains obtained from row-mt.
      
      Change-Id: I60d87a25346ebc487a864b57d559f560b7e398bb
      10a497bd
  29. 20 Apr, 2017 2 commits
    • Marco's avatar
      vp9: SVC: fix condition for partition/skip threshold when denoising. · 5de0e9ed
      Marco authored
      The more aggressive settings should only be used when denoise_svc
      condition is satisfied (which means top spatial layer).
      
      Change-Id: Ia8e3515b27f31bf21b1976ca80a2fa826daece3a
      5de0e9ed
    • Jerome Jiang's avatar
      vp9: Non-rd pickmode: Avoid computation duplication. · 7ae1e321
      Jerome Jiang authored
      In non-rd pickmode (speed >= 5), avoid duplication of computations in
      model_rd_for_sb_y when the speed feature use_simple_block_yrd is
      enabled (or for high bitdepth build under certain conditions).
      
      QVGA, VGA and HD have 1.23%, 2.68% and 1.7% speedup on ARM for speed 8,
      respectively.
      
      Encoding results are bitexact for speed >= 5.
      
      Change-Id: I3f9130810c21439f5ad7e159e21cb2243dcd05f1
      7ae1e321
  30. 19 Apr, 2017 1 commit
    • Linfeng Zhang's avatar
      Clean CONVERT_TO_BYTEPTR/SHORTPTR in convolve · bf8a49ab
      Linfeng Zhang authored
      Replace by CAST_TO_BYTEPTR/SHORTPTR.
      The rule is: if a short ptr is casted to a byte ptr, any offset
      operation on the byte ptr must be doubled. We do this by casting to
      short ptr first, adding offset, then casting back to byte ptr.
      
      BUG=webm:1388
      
      Change-Id: I9e18a73ba45ddae58fc9dae470c0ff34951fe248
      bf8a49ab
  31. 06 Apr, 2017 1 commit
    • Marco's avatar
      vp9; Move the denoising condition for speed 5. · 3227a9be
      Marco authored
      Move the condition for effectively disabling the denoising
      for speed 5 into the vp9_denoiser_denoise().
      
      This is cleaner, and also moving the condition into vp9_denoiser_denoise
      will keep the denoiser buffer updated with the current source.
      This allows for more consistent behavior if speed is changed midstream.
      
      Change-Id: Ia001f591c56e454bf724c3ae73c024badb183ef8
      3227a9be
  32. 05 Apr, 2017 1 commit
    • Marco's avatar
      vp9: Temporal denoising: avoid denoising for speed <= 5. · 2136de93
      Marco authored
      Temporal denoiser runs in non-rd pickmode, so it is only used
      for speed >= 5. Regression exists for speed 5, due to use of
      reference_partition (which use non-rd pickmode for partitioning).
      Avoid denoising for now at speed 5.
      
      Change-Id: I74a74d2e1404d7cfd33dcf4ec06dd2e503256cf0
      2136de93
  33. 03 Apr, 2017 1 commit