1. 02 Jul, 2015 1 commit
  2. 29 Apr, 2015 1 commit
    • James Zern's avatar
      vpx_mem: remove vpx_memset · f58011ad
      James Zern authored
      vestigial. replace instances with memset() which they already were being
      defined to.
      
      Change-Id: Ie030cfaaa3e890dd92cf1a995fcb1927ba175201
      f58011ad
  3. 21 Apr, 2015 1 commit
    • Scott LaVarnway's avatar
      Revert "Remove mi_grid_* structures." · 8b17f7f4
      Scott LaVarnway authored
      (see I3a05cf1610679fed26e0b2eadd315a9ae91afdd6)
      
      For the test clip used, the decoder performance improved by ~2%.
      This is also an intermediate step towards adding back the
      mode_info streams.
      
      Change-Id: Idddc4a3f46e4180fbebddc156c4bbf177d5c2e0d
      8b17f7f4
  4. 24 Mar, 2015 1 commit
  5. 10 Mar, 2015 1 commit
  6. 14 Feb, 2015 1 commit
    • James Zern's avatar
      loop_filter_rows_mt: remove dependency on 'last_height' · 0dd591be
      James Zern authored
      using this to control reallocation would miss a change if the function
      were not called for every frame.
      fixes potential memory corruption by the subsequent memset
      
      Change-Id: I4c6bb6ab68803104fc824c7e27cc2f9b2cf53e33
      0dd591be
  7. 06 Feb, 2015 2 commits
  8. 20 Jan, 2015 1 commit
  9. 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
  10. 08 Dec, 2014 1 commit
  11. 23 Oct, 2014 1 commit
  12. 22 Oct, 2014 1 commit
    • Hangyu Kuang's avatar
      Implement frame parallel decode for VP9. · 9ce3a7d7
      Hangyu Kuang authored
      Using 4 threads, frame parallel decode is ~3x faster than single thread
      decode and around 30% faster than tile parallel decode for frame parallel
      encoded video on both Android and desktop with 4 threads. Decode speed is
      scalable to threads too which means decode could be even faster with more threads.
      
      Change-Id: Ia0a549aaa3e83b5a17b31d8299aa496ea4f21e3e
      9ce3a7d7
  13. 16 Oct, 2014 4 commits
  14. 07 Oct, 2014 1 commit
  15. 20 Sep, 2014 1 commit
    • hkuang's avatar
      Remove mi_grid_* structures. · c70cea97
      hkuang authored
      mi_grid_* are arrays of pointer to pointer. They save the pointers that point
      to the MIs in cm->mi. But they are unnecessary and complicated. The original
      goal was to remove MODE_INFO_t copy. But with an extra MODE_INFO_t pointer
      inside MODE_INFO_t, same goal could be achieved.
      
      This commit totally removes the mi_grid_* structures. But there are still
      many dummy MODE_INFO_t inside cm->mi which are a waste of memory. Next commit
      will do on-demand MODE_INFO_t allocation in order to save these memories.
      
      Change-Id: I3a05cf1610679fed26e0b2eadd315a9ae91afdd6
      c70cea97
  16. 09 Sep, 2014 3 commits
  17. 29 Aug, 2014 1 commit
    • James Zern's avatar
      vp9: fix m/t loop filter invalid free · fec40f92
      James Zern authored
      store the number of allocated rows in VP9LfSync, the calculated values
      can not be relied on when dealing with corrupt material.
      
      Change-Id: I13b8bcec9738c299a71df726772ab7ac05511e5b
      fec40f92
  18. 27 Aug, 2014 1 commit
    • James Zern's avatar
      vp9: fix crash in mt loopfilter w/corrupt file · 4f27202d
      James Zern authored
      if the first frame was corrupt and loop filter not called, the next call
      would assume the necessary allocations had been done and segfault when
      accessing a NULL pointer
      
      Change-Id: Ib6ef505e5c594e6f0fe65ab0700172bcf06b92a6
      4f27202d
  19. 01 Jul, 2014 1 commit
    • James Zern's avatar
      update vp9_thread.[hc] · e656f44c
      James Zern authored
      pull the latest from WebP, which adds a worker interface abstraction
      allowing an application to override init/reset/sync/launch/execute/end
      
      this has the side effect of removing a harmless, but annoying, TSan
      warning.
      
      Original source:
       http://git.chromium.org/webm/libwebp.git
        100644 blob 08ad4e1fecba302bf1247645e84a7d2779956bc3 src/utils/thread.c
        100644 blob 7bd451b124ae3b81596abfbcc823e3cb129d3a38 src/utils/thread.h
      
      Local modifications:
       - s/WebP/VP9/g
       - camelcase functions -> lower with _'s
       - associate '*' with the variable, not the type
      
      Change-Id: I875ac5a74ed873cbcb19a3a100b5e0ca6fcd9aed
      e656f44c
  20. 29 Jun, 2014 1 commit
  21. 16 May, 2014 1 commit
  22. 15 May, 2014 1 commit
  23. 12 May, 2014 1 commit
  24. 08 May, 2014 1 commit
    • Dmitry Kovalev's avatar
      Removing VP9DecoderConfig. · 0dacecaf
      Dmitry Kovalev authored
      We only used two members from that struct: max_threads and inv_tile_order.
      Moving them directly to VP9Decoder struct.
      
      Change-Id: If696a4e5b5b41868a55f3cc971e1d7c1dd9d5f69
      0dacecaf
  25. 10 Apr, 2014 1 commit
  26. 08 Apr, 2014 2 commits
    • Frank Galligan's avatar
      Fix decoder resolution change with tiles · 6ae58931
      Frank Galligan authored
      There was a bug with the decoder that if you started the decoder
      with more threads than the first frame had tile columns. Afterwards
      tried to decode a frame with more tile columns than the first frame,
      the decoder would hang. E.g. run vpxdec --threads=4. The first frame
      had two tile columns, then the next key frame had 4 tile columns, the
      decoder would hang. If you started with 4 tiles and switched to 2
      tiles the decoder would be fine. The issue is that the worker the thread
      loop is using is stale.
      
      I added a test vector "vp90-2-14-resize-848x480-1280x720.webm" that
      exhibited the bug.
      
      Change-Id: I7bdd47241a52ac0fe1c693a609bc779257e94229
      6ae58931
    • Dmitry Kovalev's avatar
      Renaming VP9D_COMP & VP9Decompressor to VP9Decoder. · 56c2f41c
      Dmitry Kovalev authored
      Change-Id: Ieb9b455b8aaef9884391021b7f640ef24c554687
      56c2f41c
  27. 02 Apr, 2014 1 commit
  28. 06 Mar, 2014 1 commit
  29. 05 Mar, 2014 1 commit
  30. 03 Mar, 2014 1 commit
  31. 06 Feb, 2014 1 commit
  32. 01 Feb, 2014 1 commit
    • Yunqing Wang's avatar
      Rename a loopfilter parameter · 11a9366e
      Yunqing Wang authored
      As pointed out by Dmitry and James, "partial" is a Microsoft-
      specific c++ keyword, and it is renamed.
      
      Change-Id: Ia0fc11ceb89e54b3195287f89f7e26edbbe9beb8
      11a9366e
  33. 31 Jan, 2014 1 commit
    • Yunqing Wang's avatar
      vp9 decoder: row-based multi-threaded loopfilter · 903801f1
      Yunqing Wang authored
      Implemented parallel loopfiltering, which uses existing tile-
      decoding threads. Each thread works on one row, and when that row
      is loopfiltered, it moves to next unattended row. To ensure the
      correct filtering order, threads are synchronized and one
      superblock is filtered only if the superblocks it depends on are
      filtered already.
      
      To reduce synchronization overhead and speed up the decoder, we use
      nsync > 1 for high resolution.
      
      Performance tests:
      1. on desktop:
      8-tile 4k video using 8 threads, speedup: 70% - 80%
      4-tile HD video using 4 threads, speedup: ~35%
      2. on mobile device(Nexus 7):
      4-tile 1080p video using 4 threads, speedup: 18% - 25%
      4-tile 1080p video using 2 threads, speedup: 10% - 15%
      
      Change-Id: If54b4a11960dd706c22d5ad145ad94156031f36a
      903801f1