1. 14 Apr, 2017 1 commit
  2. 12 Apr, 2017 1 commit
  3. 07 Apr, 2017 1 commit
  4. 14 Mar, 2017 1 commit
  5. 10 Mar, 2017 2 commits
    • David Barker's avatar
      Vectorize new highpass filter for loop-restoration · eed824ef
      David Barker authored
      Change-Id: Ibe5d4933f599456cb496f636de244694bc786a4c
      eed824ef
    • Debargha Mukherjee's avatar
      Replace one self guided filter with highpass · b7bb0976
      Debargha Mukherjee authored
      Adds an option controlled by a macro to replace one of
      the guided filters in the self-guided tool with a simple
      bandpass filtered version generated with a 3x3 kernel.
      By default the macro USE_HIGHPASS_IN_SGRPROJ is 0 (turned
      off), that defaults us to the dual self-guided filter.
      When the macro is turned on, the larger radius guided
      filter is replaced by a simpler filter that is much faster.
      
      Results (if USE_HIGHPASS_IN_SGRPROJ is on vs. off):
      lowres: performance drop by +0.14% (BDRATE)
      midres: performance drop by +0.27% (BDRATE)
      
      Further experiments on this variation of guided filters is
      pending.
      
      Change-Id: I7bbcfcad7ee266cd49a8dc6d96795a454feb1a94
      b7bb0976
  6. 09 Mar, 2017 3 commits
  7. 08 Mar, 2017 1 commit
    • David Barker's avatar
      Make encoder use vectorized self-guided filter · 506eb723
      David Barker authored
      By rearranging the code in restoration.c, we can allow the
      encoder to use the SSE4.1 version of the self-guided filter
      while picking the loop-restoration filter.
      
      This also helps us prepare for adding a highbitdepth SSE4.1
      version of the self-guided filter.
      
      No effect on encoder output, but gives an end-to-end speedup
      of 1-2%.
      
      Change-Id: Id17ba4a0963ddce9f70a7cae666e212e138d5f2c
      506eb723
  8. 06 Mar, 2017 2 commits
    • David Barker's avatar
      Vectorize self-guided filter · ce110cc5
      David Barker authored
      Add an SSE4.1 lowbd version of the self-guided filter for
      loop-restoration, and apply some optimizations to the C
      version.
      
      Approximate times per 128x128 / 256x256 tile on the machine
      this was developed on:
      Previous C:  620us / 2800us
      Optimized C: 500us / 2200us ( 24% /  27% faster)
      SSE4.1:      147us / 600us  (320% / 370% faster)
      
      Change-Id: I23ff5a5482a191aeb06f9d1f767a9f036bb357fe
      ce110cc5
    • Debargha Mukherjee's avatar
      Remove unnecessary filtering and buffer copies · 00c54330
      Debargha Mukherjee authored
      Removes redundant deblocking filtering operations and buffer copies,
      during search for the restoration filters.
      Also, makes the order of cdef and loop-restoration consistent.
      
      BUG=AOMEDIA:373
      
      Change-Id: I571e331f9dfadfd2c1494f279e50510ec212ea29
      00c54330
  9. 14 Feb, 2017 1 commit
  10. 13 Feb, 2017 1 commit
  11. 19 Jan, 2017 1 commit
  12. 18 Jan, 2017 1 commit
  13. 09 Jan, 2017 2 commits
  14. 07 Jan, 2017 2 commits
    • David Barker's avatar
      Optimize Wiener filter selection · 33f3bfde
      David Barker authored
      * Change the behaviour of search_wiener at borders to match
        the behaviour of the Wiener filter itself
      * Reorder the calculation in compute_stats, saving ~5% of
        encode time at low bitrates (tested on bus_cif.y4m at 200kbps)
      
      Change-Id: I5f649d77fd66584451aaf37697ce9c9af69524e4
      33f3bfde
    • Debargha Mukherjee's avatar
      A mismatch fix in loop restoration · 09ad6d85
      Debargha Mukherjee authored
      Change-Id: Icfc4645ff97d4fd6849f149f4c5296a53c204cf4
      09ad6d85
  15. 06 Jan, 2017 1 commit
    • Debargha Mukherjee's avatar
      Add UV wiener loop restoration · a43a2d98
      Debargha Mukherjee authored
      Enables Wiener based loop restoration only for the UV
      frames. The selfguided and domaintranform filters do not
      work very well for UV components, hence they are disabled.
      For each UV frame a single set of wiener parameters are
      sent. They are applied tile-wise, but all tiles use the
      same parameters.
      
      BDRATE (Global PSNR) results:
      -----------------------------
      lowres: -1.266% (up from -0.666%, good improvement)
      midres: -1.815% (up from -1.792%, tiny improvement)
      
      Tiling on UV components will be explored subsequently.
      
      Change-Id: Ib5be93121c4e88e05edf3c36c46488df3cfcd1e2
      a43a2d98
  16. 04 Jan, 2017 1 commit
    • David Barker's avatar
      Simplify buffer management for self-guided restoration filter · 3a0df186
      David Barker authored
      * Remove some unused variables
      * Reduce need for casts by typing intermediate buffers appropriately
      * Avoid copying data which is never modified; use the original data
        instead.
      * Reduce number of intermediate buffers required, saving allocations
        of 576KiB in the decoder and ~1MiB in the encoder
      
      No effect on performance
      
      Change-Id: I55243904dd8e818fb6d43fa431903736475d23ff
      3a0df186
  17. 16 Dec, 2016 2 commits
  18. 15 Dec, 2016 2 commits
  19. 14 Dec, 2016 1 commit
  20. 12 Dec, 2016 1 commit
    • Debargha Mukherjee's avatar
      Replace bilateral filter with domain transform RF · 0e67b25c
      Debargha Mukherjee authored
      The main objective is to reduce computational complexity.
      The domain transform filter has an effect of edge preserving smoothing
      at a lower computational cost than the bilateral filter, and can be
      readily paralelized.
      
      A little drop in coding efficiency about 0.06% for lowres, 0.16% for
      midres.
      
      Change-Id: Id949406b7e5afe9b64588d130065c63a76e4f3f9
      0e67b25c
  21. 06 Dec, 2016 1 commit
    • Debargha Mukherjee's avatar
      Add domain transform recursive filter · 3981be93
      Debargha Mukherjee authored
      This filter is meant to replace the bilateral filter,
      but is currently added in addition to the bilateral filter
      for testing.
      
      Change-Id: Ia529701e69833d47c11b3367d5bf804eb8498079
      3981be93
  22. 29 Nov, 2016 1 commit
  23. 10 Nov, 2016 1 commit
  24. 19 Oct, 2016 1 commit
  25. 21 Sep, 2016 1 commit
  26. 17 Sep, 2016 1 commit
    • Debargha Mukherjee's avatar
      Enable tile-adaptive restoration · 5cd2ab95
      Debargha Mukherjee authored
      Includes a major refactoring/enhancement to support
      tile-adaptive switchable restoration. The framework can be
      readily extended to add more restoration schemes in the
      future. Also includes various cleanups and fixes.
      
      Specifically the framework allows restoration to be conducted
      on tiles such that each tile can be either left unrestored, or
      use bilateral or wiener filtering.
      
      There is a modest improvemnt in coding efficiency (0.1 - 0.2%).
      
      Further enhancements will be added subsequently to improve coding
      efficiency and complexity.
      
      Change-Id: I5ebedb04785ce1ef6f324abe209e925c2d6cbe8a
      5cd2ab95
  27. 01 Sep, 2016 2 commits
  28. 29 Aug, 2016 1 commit
    • Aamir Anis's avatar
      Tiling in loop restoration + cosmetics · e40e6e57
      Aamir Anis authored
      Frame can be split into rectangular tiles for application of separate
      bilateral or Wiener filters per tile. Some variable names changed for
      better readability.
      
      Change-Id: I13ebc4d0b0baf368e524db5ce276f03ed76af9c8
      e40e6e57
  29. 25 Aug, 2016 1 commit
  30. 12 Aug, 2016 1 commit
  31. 12 Jul, 2016 1 commit
    • Aamir Anis's avatar
      Fix for loop filter selection procedure · 8575709f
      Aamir Anis authored
      Fixed best error reported by loop filter selection, this value is used
      during loop restoration to pick best mode. Baseline remains unchanged,
      change in BDRate for loop restoration experiment:
      -0.628 -> -0.625 for lowres,
      -1.262 -> -1.283 for highres.
      
      Change-Id: I69ef1608bc232b250ac46f59e31fdbed1a999dcd
      8575709f