1. 16 Nov, 2013 1 commit
    • Yunqing Wang's avatar
      Do horizontal loopfiltering in parallel · 64f728ca
      Yunqing Wang authored
      This patch followed "Rewrite filter_selectively_horiz for parallel
      loopfiltering" commit, and added x86 SSE2 optimization to do
      16-pixel filtering in parallel. Also, corrected the declaration
      of aligned arrays. For 8-pixel-in-parallel case, improved the
      calculation of the masks and filters. Updated the threshold loading
      since the thresholds were already duplicated. Updated neon C functions
      to call neon loopfilters twice.
      
      Using tulip clip, tests showed it gave a ~1.5% decoder speed gain.
      
      Change-Id: Id02638626ac27a4b0e0b09d71792a24c0499bd35
      64f728ca
  2. 14 Nov, 2013 2 commits
  3. 12 Nov, 2013 2 commits
    • Yunqing Wang's avatar
      Use 1D array to store super block filter levels · ce89309b
      Yunqing Wang authored
      As Jim suggested, 1D array was used to store filter levels instead
      of 2D array. This used shift_y in setup_mask directly, and saved
      few cycles.
      
      Change-Id: If61ab298784861f1806b1cd396d4e4e2e0f097b9
      ce89309b
    • Yunqing Wang's avatar
      Rewrite filter_selectively_horiz for parallel loopfiltering · b4543818
      Yunqing Wang authored
      Added loop filter mask checking, and made the caller function
      ready for implementation of parallel loopfiltering in horizontal
      direction.
      
      Next, we need to go through the loopfilter functions (both c and
      optimized versions), and provide 16-byte wide loopfiltering for
      each filter type.
      
      Change-Id: Ifef47e7ef9086ebc2fd6ca7ede8f27c9bbf79e66
      b4543818
  4. 08 Nov, 2013 1 commit
    • Yunqing Wang's avatar
      Improve loopfilter function · 49cf335e
      Yunqing Wang authored
      This patch continued the work done in "Rewrite loop_filter_info_n
      struct"(commit:00dbd369) to further
      improve loopfilter function.
      
      1. Instead of storing pointers to thresholds, store loopfilter
      levels within 64x64 SB;
      2. Since loopfilter levels are already calculated in setup_mask,
      we don't need call build_lfi to look up them again. Just save
      loopfilter levels in setup_mask.
      3. Reorganized and simplified filter_block_plane().
      
      Tests showed a ~0.8% decoder speedup.
      
      Change-Id: I723c7779738bbc2afcb9afa2c6f78580ee6c3af7
      49cf335e
  5. 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
  6. 30 Sep, 2013 1 commit
  7. 19 Sep, 2013 1 commit
  8. 11 Sep, 2013 1 commit
    • Scott LaVarnway's avatar
      New mode_info_context storage -- undo revert · ac6093d1
      Scott LaVarnway authored
      mode_info_context was stored as a grid of MODE_INFO structs.
      The grid now constists of pointers to MODE_INFO structs.  The
      MODE_INFO structs are now stored as a stream (decoder only),
      eliminating unnecessary copies and is a little more cache
      friendly.
      
      Change-Id: I031d376284c6eb98a38ad5595b797f048a6cfc0d
      ac6093d1
  9. 09 Sep, 2013 1 commit
  10. 06 Sep, 2013 1 commit
    • Scott LaVarnway's avatar
      New mode_info_context storage · dae17734
      Scott LaVarnway authored
      mode_info_context was stored as a grid of MODE_INFO structs.
      The grid now constists of a pointer to a MODE_INFO struct and
      a "in the image" flag.  The MODE_INFO structs are now stored
      as a stream, eliminating unnecessary copies and is a little
      more cache friendly.
      
      For the test clips used, the decoder performance improved
      by ~4.3% (1080p) and ~9.7% (720p).
      
      Patch Set 2: Re-encoded clips with latest. Now ~1.7% (1080p)
      and 5.9% (720p).
      
      Change-Id: I846f29e88610fce2523ca697a9a9ef2a182e9256
      dae17734
  11. 05 Sep, 2013 1 commit
  12. 04 Sep, 2013 1 commit
  13. 30 Aug, 2013 1 commit
  14. 28 Aug, 2013 1 commit
  15. 27 Aug, 2013 1 commit
    • Frank Galligan's avatar
      Fix winodws warning. · f1560ce0
      Frank Galligan authored
      Const is not needed on the function parameter.
      
      Change-Id: I38c2a7317cb6f42f70bbddfde9a2cd18d65ceb1c
      f1560ce0
  16. 24 Aug, 2013 1 commit
    • Dmitry Kovalev's avatar
      Renaming D27 to D207. · 50ee61db
      Dmitry Kovalev authored
      I've already renamed d27_predictor to d207_predictor but forgot about the
      corresponding constant.
      
      Change-Id: Id312aa80fc5b5a1ab8a709a33418a029552a6857
      50ee61db
  17. 19 Aug, 2013 1 commit
    • Adrian Grange's avatar
      Further correct bug in loopfilter initialization · 5a1a269f
      Adrian Grange authored
      The intent was to initialize the deltas for the
      segment to the computed value, irrespective of mode
      and reference frame if (mode_ref_delta_enabled == 0).
      
      (In response to bug posted by Manjit Hota to codec-devel
      and webm-discuss lists)
      
      Change-Id: I10435cb63d0f88359bb4c14f22181878a1988e72
      5a1a269f
  18. 15 Aug, 2013 1 commit
  19. 14 Aug, 2013 1 commit
    • Paul Wilkins's avatar
      Renaming in MB_MODE_INFO · 26fead7e
      Paul Wilkins authored
      The macro block mode info context originally contained an
      entry for each 16x16 macroblock. In VP9 each entry refers
      to an 8x8 region not a macro block, so the naming is misleading.
      
      This first stage clean up changes the names of 3 entries in the
      structure to remove the mb_ prefix.
      
      TODO clean up the nomenclature more widely in respect of
      mbmi and bmi.
      
      Change-Id: Ia7305c6d0cb805dfe8cdc98dad21338f502e49c6
      26fead7e
  20. 10 Aug, 2013 1 commit
  21. 09 Aug, 2013 3 commits
    • Dmitry Kovalev's avatar
      Moving loopfilter struct to VP9_COMMON. · 816d6c98
      Dmitry Kovalev authored
      Loop filter configuration doesn't belong to macroblock, so moving it from
      MACROBLOCKD to VP9_COMMON. Also moving the declaration of loopfilter struct
      from vp9_blockd.h to vp9_loopfilter.h.
      
      Change-Id: I4b3e34be9623b47cda35f9b1f9951f8c5b1d5d28
      816d6c98
    • Adrian Grange's avatar
      Correct bug in loopfilter initialization · 12eb2d02
      Adrian Grange authored
      The memset sets 16 bytes rather than the correct size of the
      final array dimension (MAX_MODE_LF_DELTAS).
      
      (In response to bug posted by Manjit Hota to codec-devel
      and webm-discuss lists)
      
      Change-Id: I8980f5aa71ddc9d7ef57c5b4700bc28ddf8651c7
      12eb2d02
    • Yaowu Xu's avatar
      Added lpf level picking using partial frame · 6ec2b85b
      Yaowu Xu authored
      Change-Id: I599ab1bd22b5f3f10d5962c609952abdef8ff67a
      6ec2b85b
  22. 05 Aug, 2013 1 commit
  23. 02 Aug, 2013 2 commits
  24. 01 Aug, 2013 1 commit
  25. 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
  26. 22 Jul, 2013 1 commit
  27. 19 Jul, 2013 2 commits
  28. 16 Jul, 2013 1 commit
    • 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
  29. 14 Jul, 2013 2 commits
  30. 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
  31. 10 Jul, 2013 1 commit
    • John Koleszar's avatar
      Wide loopfilter 16 pix at a time · 64f7a4d8
      John Koleszar authored
      Where possible, do the 16 pixel wide filter while doing the horizontal
      filtering pass. The same approach can be taken for the mbloop_filter
      when that's implemented. Doing so on the vertical pass is a little more
      involved, but possible.
      
      Change-Id: I010cb505e623464247ae8f67fa25a0cdac091320
      64f7a4d8
  32. 09 Jul, 2013 1 commit
  33. 08 Jul, 2013 1 commit
    • John Koleszar's avatar
      Fix loopfilter bug · 527fc5ca
      John Koleszar authored
      In the rare case were 4x4 interior filtering was called for but no
      8x8 or larger filtering takes place, the previous code was skipping
      the filtering. This patch fixes the issue by including the interior
      mask in the overall mask for the filter application loops.
      
      Change-Id: I4a0b65056c64f97478827c2ff41e0914fc7779d0
      527fc5ca