1. 02 Mar, 2017 1 commit
  2. 27 Feb, 2017 1 commit
    • Vignesh Venkatasubramanian's avatar
      vp9: Rename new_mt to row_mt · 58816014
      Vignesh Venkatasubramanian authored
      new_mt is a very generic name that will get obsolete soon enough.
      Since this is exposed as a codec control, renaming it to row_mt to
      signify row level paralellism. Also renaming the ETHREAD_BIT_MATCH
      codec control to ROW_MT_BIT_EXACT.
      
      Change-Id: Ic7872d78bb3b12fb4cf92ba028ec8e08eb3a9558
      58816014
  3. 24 Feb, 2017 1 commit
    • Jerome Jiang's avatar
      Make vp9_scale_and_extend_frame_ssse3 work for hbd when bitdepth = 8. · 0998a146
      Jerome Jiang authored
      Only works for bitdepth = 8 when compiled with high bitdepth flag.
      4x speed ups for handling 1:2 down/upsampling.
      
      Validated manually for:
      1) Dynamic resize for a single layer encoding
      2) SVC encoding with 3 spatial layers
      Results are bitexact with the patch and the speed gain (~4x) in the
      scaling was verified.
      
      BUG=webm:1371
      
      Change-Id: I1bdb5f4d4bd0df67763fc271b6aa355e60f34712
      0998a146
  4. 22 Feb, 2017 1 commit
    • Marco's avatar
      vp9: Incorporate source sum_diff into non-rd partition thresholds. · 7f2daa74
      Marco authored
      Increase the variance partition thresholds for superblocks that
      have low sum-diff (from source analysis prior to encoding frame).
      Use it for now only for speed >= 7 or for denoising on.
      
      Small change on metrics for rtc set: less than ~0.1 avgPNSR decrease
      on RTC set, for both speed 7 and 8.
      
      Change-Id: I38325046ebd5f371f51d6e91233d68ff73561af1
      7f2daa74
  5. 21 Feb, 2017 1 commit
  6. 20 Feb, 2017 1 commit
  7. 16 Feb, 2017 1 commit
  8. 15 Feb, 2017 2 commits
    • paulwilkins's avatar
      Additional first pass stats. · 945ccfee
      paulwilkins authored
      Added counts that split the intra coded blocks into low and high variance.
      
      Change-Id: Ic540144b34d5141659081bb22f7ee16fd6861f14
      945ccfee
    • Ranjit Kumar Tulabandu's avatar
      Row based multi-threading of encoding stage · 71061e93
      Ranjit Kumar Tulabandu authored
      (Yunqing Wang)
      This patch implements the row-based multi-threading within tiles in
      the encoding pass, and substantially speeds up the multi-threaded
      encoder in VP9.
      
      Speed tests at speed 1 on STDHD(using 4 tiles) set show that the
      average speedups of the encoding pass(second pass in the 2-pass
      encoding) is 7% while using 2 threads, 16% while using 4 threads,
      85% while using 8 threads, and 116% while using 16 threads.
      
      Change-Id: I12e41dbc171951958af9e6d098efd6e2c82827de
      71061e93
  9. 13 Feb, 2017 1 commit
    • paulwilkins's avatar
      Aggressive VBR method. · ce7b3845
      paulwilkins authored
      VBR method that allows a wider Q range for the first normal frame
      in each ARF group and then centers the min - max range for the rest of
      the arf group on the chosen Q value for that first frame.
      
      This allows for quite rapid adjustment of the active Q range even if the
      initial estimate is poor.
      
      In some cases where the ARF frames themselves are tending to
      undershoot but the normal frames are overshooting this can still give
      net undershoot. This can be corrected by allowing a larger Q delta for
      arf frames but is usually is a sign that the allocation to the arfs was to
      high.
      
      Change-Id: Icec87758925d8f7aeb2dca29aac0ff9496237469
      ce7b3845
  10. 07 Feb, 2017 1 commit
  11. 02 Feb, 2017 1 commit
  12. 27 Jan, 2017 1 commit
  13. 24 Jan, 2017 1 commit
  14. 20 Jan, 2017 1 commit
  15. 18 Jan, 2017 1 commit
  16. 17 Jan, 2017 1 commit
    • Jerome Jiang's avatar
      vp9: Set low variance flag when partition is copied. · 0c65aed0
      Jerome Jiang authored
      Also set the flag to 1 when exit early choosing 64x64 block
      such that skipping new mv for golden works in these scenerios.
      
      Change the size of prev_segment_id to the number of superblocks
      to save memory.
      
      Borg test shows quality regression of 0.012% on average PSNR
      and 0.035% on SSIM.
      
      Change-Id: I5014224c8617d439d35c66ece3fed9ae30b31d23
      0c65aed0
  17. 16 Jan, 2017 1 commit
  18. 13 Jan, 2017 1 commit
  19. 11 Jan, 2017 1 commit
    • Marco's avatar
      vp9: Make the denoiser work with spatial SVC. · 7e3a82c3
      Marco authored
      If enabled denoiser will only denoise the top spatial layer for now.
      
      Added unittest for SVC with denoising.
      
      Change-Id: Ifa373771c4ecfa208615eb163cc38f1c22c6664b
      7e3a82c3
  20. 10 Jan, 2017 1 commit
    • Marco's avatar
      vp9: 1 pass cbr: Adjustments to usage of gf_cbr_boost and aq=3 mode. · 91fc730d
      Marco authored
      When aq=3 mode is on and the gf_cbr_boost is set: make sure golden frame
      is always refreshed, and don't incorporate segement cost in qp setting
      on the boosted golden frame.
      
      Better performance on RTC set with gf_cbr_boost on,
      for example with gf_cbr_boost=50, gains from ~0.5-3%.
      
      Change-Id: Ie811f5e4d444ff3320bd6e2c1745b2c4c09a8460
      91fc730d
  21. 06 Jan, 2017 2 commits
    • hui su's avatar
      Add support for VP9 level targeting · 337ad83e
      hui su authored
      Constraints on encoder config:
      -target_bandwidth is no larger than 80% of level bitrate limit
      -target_bandwidth * (1 + max_over_shoot_pct) is no larger than
      88% of level bitrate limit
      -min_gf_interval is no smaller than level limit
      -tile_columns is no larger than level limit
      
      Constraints on rate control:
      -current frame size plus previous three frames' size is no larger
      than the CPB level limit
      -current frame size is no larger than 50%/40%/20% of the CPB
      level limit if it's a key/alt-ref/other frame.
      
      Change-Id: I84d1a2d6d6e3c82bfd533b3309ce999cfaba2c8b
      337ad83e
    • Jerome Jiang's avatar
      vp9: Compute source sad for every superblock when partition copy is on. · afc8c483
      Jerome Jiang authored
      The source sad could be used to copy the partition without going into
      choose_partitioning function to speed up vp9 encoding. Computing source
      sad takes little time. Speed test on Android and Linux shows little
      encoding time gain (less than 1.4%).
      
      Turned off for now since partition copy is turned off.
      
      Change-Id: I61c9d5b8f22329760cb29a4ee30a7f9c232ce8d3
      afc8c483
  22. 20 Dec, 2016 1 commit
    • Jerome Jiang's avatar
      vp9: Add feature to copy partition from the last frame. · 1d5ca84d
      Jerome Jiang authored
      Add feature to copy partition from the last frame.
      The copy is only done under certain conditions that SAD is below threshold.
      Feature is currently disabled, until threshold is tuned.
      Feature will be initially used for Speed 8 (ARM).
      
      Under extreme case of always copying partition for speed 8:
      Encode time is reduced by 5.4% on rtc_derf and 7.8% on rtc.
      Overall PSNR reduced by 2.1 on rtc_derf and 0.968 on rtc.
      
      Change-Id: I1bcab515af3088e4d60675758f72613c2d3dc7a5
      1d5ca84d
  23. 14 Nov, 2016 1 commit
    • Jingning Han's avatar
      Enable asymptotic closed-loop encoding decision · 44f8ee72
      Jingning Han authored
      This commit enables asymptotic closed-loop encoding decision for
      the key frame and alternate reference frame. It follows the regular
      rate control scheme, but leaves out additional iteration on the
      updated frame level probability model. It is enabled for speed 0.
      
      The compression performance is improved:
      
      lowres 0.2%
      midres 0.35%
      hdres  0.4%
      
      Change-Id: I905ffa057c9a1ef2e90ef87c9723a6cf7dbe67cb
      44f8ee72
  24. 02 Nov, 2016 1 commit
    • paulwilkins's avatar
      Fixed bug in formatting of debug stats. · de76d2e3
      paulwilkins authored
      Fixed formatting bug introduced by the fix to BUG=webm:1322
      ( Iedc4477aef1746aa0a4f84d88a1156296fd3ba87)
      
      Change-Id: I715ee446c0e8584967ab87ba4e355759dd394187
      de76d2e3
  25. 27 Oct, 2016 2 commits
  26. 25 Oct, 2016 1 commit
    • Yunqing Wang's avatar
      Change 2 motion search counts to be tile data · c192def8
      Yunqing Wang authored
      This patch modified the motion search counts used in:
      https://chromium-review.googlesource.com/#/c/305640/
      
      These 2 counts were originally added as thread data, and used to
      make decisions in motion search. The tile encoding order can be
      inconsistent while using different number of threads, which can
      cause bitstream mismatch. Here moved them to tile data to solve
      the issue.
      
      BUG=webm:1322
      
      Change-Id: Iedc4477aef1746aa0a4f84d88a1156296fd3ba87
      c192def8
  27. 22 Oct, 2016 1 commit
    • Vignesh Venkatasubramanian's avatar
      vp9_bitstream: Encode tiles in parallel · 5deffa11
      Vignesh Venkatasubramanian authored
      Re-use the tile worker threads to pack the bitstream in parallel
      on a per-tile basis.  Restricting this to real-time only for now
      (further testing is needed to ensure this does not make 2-pass
      worse in any case).
      
      BUG=webm:1309
      
      Change-Id: I8a80da7c5089b837d0df79a5c49d5e3022dfc8ec
      5deffa11
  28. 19 Oct, 2016 1 commit
  29. 17 Oct, 2016 1 commit
    • Vignesh Venkatasubramanian's avatar
      vp9_bitstream: Encode tiles in parallel · 9e8efa5b
      Vignesh Venkatasubramanian authored
      Re-use the tile worker threads to pack the bitstream in parallel
      on a per-tile basis.  Restricting this to real-time only for now
      (further testing is needed to ensure this does not make 2-pass
      worse in any case).
      
      BUG=webm:1309
      
      Change-Id: Ia2c982da56697756e12f02643f589189b3271d98
      9e8efa5b
  30. 11 Oct, 2016 1 commit
    • Marco's avatar
      1 pass vbr: Allow for lookahead alt-ref in real-time mode. · 57c6bf29
      Marco authored
      For 1 pass vbr real-time mode:
      Allow for the usage of alt-ref frame when non-zero lag-in-frames is used.
      Use non-filtered alt-ref, and select usage based on fast scene/content
      analysis/detection within the lag of frames.
      
      Positive gains on ytlive set: overall avgPSNR ~3-4%.
      Several clips are up between 5-14%, a few clips are neutral/small change.
      
      Current speed decrease is about ~5-10%.
      
      Use the flag USE_ALTREF_FOR_ONE_PASS to enable this feature
      (off by default for now).
      
      Change-Id: I802d2bf3d44f9cf01f6d15c76be9c90192314769
      57c6bf29
  31. 29 Sep, 2016 1 commit
    • Marco's avatar
      vp9: On change_config() only call update_frame_size if needed. · e7654352
      Marco authored
      change_config() may be called often in real-time application,
      to update bitrate/framerate or qp-max/min.
      No need to do update_frame_size() unless frame size has changed.
      
      Change-Id: I23a51deade1e03adc91c468f9ffde3235298770c
      e7654352
  32. 15 Sep, 2016 1 commit
  33. 03 Sep, 2016 1 commit
  34. 26 Aug, 2016 2 commits
    • paulwilkins's avatar
      Add ALLOW_RECODE_FIRST speed mode. · dc42f343
      paulwilkins authored
      This patch is to address concerns that changes to allow
      recodes on the first frame in each ARF group do not give a
      good enough speed quality trade off for speed 2. Though the
      average impact  on encode speed is 1-2%, for some hard clips
      it is > 5% rise.  For speed 1 this is less an issue and for Speed 0
      the previous patch actually  improves speed.
      
      Change-Id: Ie1bcefdbfdf846d3f4428590173f621465dffe3a
      dc42f343
    • Sarah Parker's avatar
      Fix formatting in internal stats for vp8 and vp9 · 37e83789
      Sarah Parker authored
      This corrects a formatting error introduced in:
      I1e9d548ce445d29002f0c59ebfd3957a6f15e702
      where spaces were used as delimiters instead of tabs.
      
      The corresponding fix for vp10 is in
      Ica3d625d6672b3c47e0e208b45eede29b9004030.
      
      Change-Id: Ibc4eb8fd82e6b926ba259a679dc98557cadba9b1
      37e83789
  35. 25 Aug, 2016 1 commit
    • Yury Gitman's avatar
      Create interface for the ALT_REF_AQ class · 292d221f
      Yury Gitman authored
      Current commit is just an API template  for the rest of the code, and
      I will add inner logic later.
      
      Altref  frames  generate a  lot  of  bitrate  and  at the  same  time
      other  frames  refer to  them  a  lot, so  it  makes  sense to  apply
      special  compensation-based adaptive  quantization scheme  for altref
      frames. E.g.,  for blocks  that are  good predictors  for the  future
      apply rate-control  chosen quantizer  while for bad  predictors apply
      worse one.
      
      Change-Id: Iba3f8ec349470673b7249f6a125f6859336a47c8
      292d221f
  36. 17 Aug, 2016 1 commit