1. 13 Aug, 2015 1 commit
  2. 12 Aug, 2015 2 commits
  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. 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
  6. 23 Oct, 2014 1 commit
  7. 16 Oct, 2014 1 commit
    • James Zern's avatar
      move LFWorkerData allocation to VP9LfSync · e9b8810b
      James Zern authored
      this removes an assumption that worker->data1 would be pointing to a
      TileWorkerData allocation.
      additionally, within the multi-threaded loopfilter pass VP9LfSync as a
      parameter to the worker hook, removing the need for a shadow pointer in
      LFWorkerData.
      
      Change-Id: Ic7b2faa34e3eb59dbcb8a7c67f333448fa047c88
      e9b8810b
  8. 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
  9. 09 Sep, 2014 2 commits
  10. 16 May, 2014 1 commit
  11. 12 May, 2014 1 commit
  12. 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
  13. 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
  14. 24 Jan, 2014 1 commit
  15. 15 Dec, 2013 1 commit
  16. 25 Oct, 2013 1 commit
    • Yunqing Wang's avatar
      Rewrite loop_filter_info_n struct · 00dbd369
      Yunqing Wang authored
      Restructured the storing of loopfilter information. Deleted
      loop_filter_info struct and reduced copying happened in every
      superblock.
      
      Tests showed a 0.5% ~ 0.8% decoder speed gain.
      
      Change-Id: Ie6a8e46bae71dc3a3cd8c6054f5de540b8e0ef5e
      00dbd369
  17. 30 Sep, 2013 1 commit
  18. 15 Aug, 2013 1 commit
  19. 10 Aug, 2013 1 commit
  20. 09 Aug, 2013 2 commits
  21. 05 Aug, 2013 1 commit
  22. 02 Aug, 2013 1 commit
  23. 23 Jul, 2013 1 commit
    • Paul Wilkins's avatar
      Renaming of segment constants. · 32042af1
      Paul Wilkins authored
      Renamed:
        MAX_MB_SEGMENTS to MAX_SEGMENTS
        MB_SEG_TREE_PROBS to SEG_TREE_PROBS
      
      The minimum unit for segmentation in the segment map
      is now 8x8 so it is misleading to use MB_ as macro-block
      traditionally refers to a 16x16 region.
      
      Change-Id: I0b55a6f0426bb46dd13435fcfa5bae0a30a7fa22
      32042af1
  24. 22 Jul, 2013 1 commit
  25. 19 Jul, 2013 1 commit
  26. 16 Jul, 2013 2 commits
    • Dmitry Kovalev's avatar
      Loop filter code cleanup. · 2de3c8d2
      Dmitry Kovalev authored
      Cosmetic code changes, renaming 'flat' local var to 'mask', removing
      unused field 'blim' from loopfilter_info_n and loop_filter_info structs.
      
      Change-Id: I51e6ccf727fe361ad9a08e29e1201aa7abd4987f
      2de3c8d2
    • James Zern's avatar
      delete x86/vp9_loopfilter_x86.h · af582542
      James Zern authored
      also remove prototype_loopfilter{,_block} defines from vp9_loopfilter.h
      
      Change-Id: I865ab3f9436c7b1ca166f76630328abf01389405
      af582542
  27. 14 Jul, 2013 2 commits
  28. 11 Jul, 2013 1 commit
    • Dmitry Kovalev's avatar
      Moving segmentation related vars into separate struct. · c4ad3273
      Dmitry Kovalev authored
      Adding segmentation struct to vp9_seg_common.h. Struct members are from
      macroblockd and VP9Common structs. Moving segmentation related constants
      and enums to vp9_seg_common.h.
      
      Change-Id: I23fabc33f11a359249f5f80d161daf569d02ec03
      c4ad3273
  29. 09 Jul, 2013 1 commit
  30. 12 Jun, 2013 1 commit
  31. 25 May, 2013 1 commit
  32. 14 May, 2013 1 commit
  33. 08 May, 2013 1 commit
  34. 24 Apr, 2013 1 commit
    • Paul Wilkins's avatar
      Extension of segmentation to 8 segments. · 31ee193a
      Paul Wilkins authored
      Also some further simplification following removal
      of top node code.
      
      There is an issue in regards to the shared file vp8cx.h
      in regard to the roi_map as this interface assumes that
      there are only 4 segments. I have left the value here as
      4 for now meaning that the roi_map interface is broken
      for VP9.
      
      Note that this change would have been easier if I hadn't
      had to search for hard wire instances of the number 4
      and <= 3.
      
      Change-Id: Ia8b6deea4be4dbd20deb1656e689dd43a5f190e8
      31ee193a
  35. 17 Apr, 2013 1 commit