1. 02 Dec, 2017 1 commit
  2. 21 Nov, 2017 1 commit
  3. 14 Sep, 2017 1 commit
    • Hui Su's avatar
      VP9 level targeting: add a new AUTO mode · c3a6943c
      Hui Su authored
      In the new AUTO mode, restrict the minimum alt-ref interval and max column
      tiles adaptively based on picture size, while not applying any rate control
      constraints.
      
      This mode aims to produce encodings that fit into levels corresponding to
      the source picture size, with minimum compression quality lost. However, the
      bitstream is not guaranteed to be level compatible, e.g., the average bitrate
      may exceed level limit.
      
      BUG=b/64451920
      
      Change-Id: I02080b169cbbef4ab2e08c0df4697ce894aad83c
      c3a6943c
  4. 14 Aug, 2017 1 commit
  5. 11 Jul, 2017 1 commit
  6. 21 Apr, 2017 1 commit
    • Yunqing Wang's avatar
      Make allow_exhaustive_searches feature no longer adaptive · bca45646
      Yunqing Wang authored
      A previous patch turned on allow_exhaustive_searches feature only for
      FC_GRAPHICS_ANIMATION content. This patch further modified the feature
      by removing the exhaustive search limit, and made it no longer adaptive.
      As a result, the 2 counts that recorded the number of motion searches
      were removed, which helped achieve the determinism in the row based
      multi-threading encoding. Tests showed that this patch didn't cause
      the encoder much slower.
      
      Used exhaustive_searches_thresh for this speed feature, and removed
      allow_exhaustive_searches. Also, refactored the speed feature code
      to follow the general speed feature setting style.
      
      Change-Id: Ib96b182c4c8dfff4c1ab91d2497cc42bb9e5a4aa
      bca45646
  7. 31 Mar, 2017 1 commit
    • Yunqing Wang's avatar
      Enhance the row mt sync read to accept the sync_range greater than 1 · f1600db3
      Yunqing Wang authored
      The row mt sync read uses sync_range = 1, and wouldn't work if we want
      to use a sync_range that is greater than 1. To make it work, this sync
      read code is modified. Pass in col instead of col - 1 to make it
      consistent with other row mt code in VP9, and then add 1 in "while"
      codition.
      
      Change-Id: I4a0e487190ac5d47b8216368da12d80fec779c1a
      f1600db3
  8. 10 Mar, 2017 1 commit
    • Marco's avatar
      vp9: Enable row multithreading for SVC in real-time mode. · ffb3c50d
      Marco authored
      Enable row-mt for SVC for real-time mode, speed >=5.
      
      Add the controls to the sample encoders, but keep it off for now.
      Add the control and enable it for the 1 pass CBR unittests.
      
      For speed 7, 3 layer SVC, 2 threads, row-mt enabled gives about ~5% speedup.
      
      Change-Id: Ie8e77323c17263e3e7a7b9858aec12a3a93ec0c1
      ffb3c50d
  9. 02 Mar, 2017 1 commit
  10. 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
  11. 07 Feb, 2017 1 commit
  12. 24 Jan, 2017 1 commit
  13. 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
  14. 02 Aug, 2016 1 commit
  15. 13 Nov, 2015 1 commit
    • paulwilkins's avatar
      Changes to exhaustive motion search. · 0149fb3d
      paulwilkins authored
      This change alters the nature and use of exhaustive motion search.
      
      Firstly any exhaustive search is preceded by a normal step search.
      The exhaustive search is only carried out if the distortion resulting
      from the step search is above a threshold value.
      
      Secondly the simple +/- 64 exhaustive search is replaced by a
      multi stage mesh based search where each stage has a range
      and step/interval size. Subsequent stages use the best position from
      the previous stage as the center of the search but use a reduced range
      and interval size.
      
      For example:
        stage 1: Range +/- 64 interval 4
        stage 2: Range +/- 32 interval 2
        stage 3: Range +/- 15 interval 1
      
      This process, especially when it follows on from a normal step
      search, has shown itself to be almost as effective as a full range
      exhaustive search with step 1 but greatly lowers the computational
      complexity such that it can be used in some cases for speeds 0-2.
      
      This patch also removes a double exhaustive search for sub 8x8 blocks
      which also contained  a bug (the two searches used different distortion
      metrics).
      
      For best quality in my test animation sequence this patch has almost
      no impact on quality but improves encode speed by more than 5X.
      
      Restricted use in good quality speeds 0-2 yields significant quality gains
      on the animation test of 0.2 - 0.5 db with only a small impact on encode
      speed. On most clips though the quality gain and speed impact are small.
      
      Change-Id: Id22967a840e996e1db273f6ac4ff03f4f52d49aa
      0149fb3d
  16. 05 Sep, 2015 1 commit
  17. 31 Aug, 2015 1 commit
  18. 27 Aug, 2015 1 commit
  19. 27 Jul, 2015 1 commit
    • Yunqing Wang's avatar
      Remove tx_select_threshes · b2446fb6
      Yunqing Wang authored
      Removed unused tx_select_threshes and tx_select_diff.
      
      Change-Id: I5e9e7ad170056efe14b5f071e94d0c5a36e4a34c
      b2446fb6
  20. 02 Jul, 2015 1 commit
  21. 15 Jun, 2015 1 commit
    • Yunqing Wang's avatar
      vp9_ethread: create enough threads while using SVC · c98273c9
      Yunqing Wang authored
      This patch modified the thread creating code. When use_svc is true,
      the number of threads created is decided by the highest resolution.
      This resolved WebM issue 1018.
      
      Change-Id: I367227b14d1f8b08bbdad3635b232a3a37bbba26
      c98273c9
  22. 29 Apr, 2015 1 commit
    • James Zern's avatar
      vpx_mem: remove vpx_memcpy · f274c219
      James Zern authored
      vestigial. replace instances with memcpy() which they already were being
      defined to.
      
      Change-Id: Icfd1b0bc5d95b70efab91b9ae777ace1e81d2d7c
      f274c219
  23. 05 Mar, 2015 2 commits
  24. 06 Feb, 2015 1 commit
  25. 17 Jan, 2015 1 commit
    • Yunqing Wang's avatar
      vp9_ethread: add parallel loopfilter · e76eaf05
      Yunqing Wang authored
      1. Added row-based loopfilter in encoder;
      2. Moved common multi-threaded loopfilter functions from decoder
         to common;
      3. Merged multi-threaded loopfilter code, and made encoder/
         decoder call same function to reduce code duplication.
      
      Encoder tests showed that 1% - 2% speedup was seen for good-quality
      2-pass mode(at speed 3); 1% - 3% speedup using 2 threads and 4% - 6%
      speedup using 4 threads were seen for real-time mode(at speed 7).
      
      Change-Id: I8a4ac51c2ad9bab9fa7b864e90743931c53ec1c4
      e76eaf05
  26. 14 Jan, 2015 1 commit
    • Yunqing Wang's avatar
      Align thread data in vp9_ethread · 99b99831
      Yunqing Wang authored
      On some platforms, such as 32bit Windows and 32bit Mac, the allocated
      memory isn't aligned automatically. The thread data is aligned to
      ensure the correct access in SIMD code.
      
      Change-Id: I1108c145fe982ddbd3d9324952758297120e4806
      99b99831
  27. 04 Dec, 2014 1 commit
    • Yunqing Wang's avatar
      vp9_ethread: the tile-based multi-threaded encoder · eba9c762
      Yunqing Wang authored
      Currently, VP9 supports column-tile encoding, which allows a frame
      to be encoded in multiple column tiles independently. The number of
      column tiles are set by encoder option "--tile-columns". This
      provides a way to encode a frame in parallel.
      
      Based on previous set of patches, this patch implemented the tile-
      based multi-threaded encoder. Each thread processes one or more
      tiles.
      
      Usage:
      For HD clips:
      --tile-columns=2 --threads=1/2/3/4
      
      While using 4 threads, tests showed that the encoder achieved
      2.3X - 2.5X speedup at good-quality speed 3, and 2X speedup at
      realtime speed 5.
      
      Change-Id: Ied987f8f2618b1283a8643ad255e88341733c9d4
      eba9c762