1. 08 Feb, 2019 2 commits
  2. 22 Jan, 2019 1 commit
    • Monty's avatar
      Fix to LRF cropping · 7c158f82
      Monty authored and Monty Montgomery's avatar Monty Montgomery committed
      Recent simplification that eliminated clipped_cfg broke the loop
      restoration filters and I didn't notice as it's not enabled by default yet.
      This fixes the cropping for chroma in the SGR and Wiener filters.
      7c158f82
  3. 15 Jan, 2019 1 commit
  4. 14 Jan, 2019 2 commits
  5. 13 Jan, 2019 1 commit
    • Romain Vimont's avatar
      Store restoration units contiguously · 8503cea4
      Romain Vimont authored
      The "matrix" of restoration units was stored in a vector of vectors.
      
      To avoids an additional indirection for each row, store them in a
      contiguous array instead. Besides the (theoretical) performance benerit
      for every access, this will simplify the implementation of tiled-views
      which have to expose non-overlapping parts of the "matrix" via unsafe
      code.
      
      Also, since its size is constant (although not known at compile-time),
      replace the vector by a boxed slice.
      8503cea4
  6. 11 Jan, 2019 2 commits
    • Romain Vimont's avatar
      Remove clipped_cfg from RestorationState · 07032e6b
      Romain Vimont authored
      A RestorationState stores a matrix of restoration units per plane. The
      restoration unit associated to a superblock may be retrieved from a
      superblock offset.
      
      Although this mapping is independant of subsampling, the superblock
      offsets were always converted to plane coordinates, which required to
      handle subsampling nonetheless. As a consequence, a PlaneConfig instance
      associated to RestorationPlane was necessary to find a restoration unit
      from a superblock offset.
      
      Instead, store the (log2) number of superblocks per restoration unit, to
      be able to retrieve a restoration unit from a superblock with a simple
      shift (without any subsampling information).
      
      That way, we can remove the PlaneConfig associated to RestorationPlane,
      which will simplify tiling.
      07032e6b
    • Romain Vimont's avatar
      Use non-padded dimensions from FrameInvariants · 54526343
      Romain Vimont authored
      The loop restoration filter needs the dimensions of the non-padded
      frame, that only FrameInvariants knows.
      
      On construction, RestorationState created a clipped version of the
      PlaneConfigs, that was used in lrf_filter_frame() to get the non-padded
      dimensions.
      
      Instead, directly pass &FrameInvariants to lrf_filter_frame().
      
      This paves the way to remove clipped_cfg from RestorationState entirely,
      to simplify tiling.
      54526343
  7. 10 Jan, 2019 2 commits
  8. 09 Jan, 2019 2 commits
    • Romain Vimont's avatar
      Make RestorationState derive Debug · 37a62634
      Romain Vimont authored
      FrameState is Debug. In order to embed RestorationState into FrameState,
      make it Debug too.
      37a62634
    • Romain Vimont's avatar
      Do not borrow full FrameState for LRF · 90bed0bf
      Romain Vimont authored
      Once RestorationState will be stored into FrameState, it will not be
      possible to borrow a FrameState while its RestorationState is mutably
      borrowed.
      
      In particular, this prevents passing a FrameState to a non-const
      RestorationState method.
      
      For lrf_optimize_superblock(), which is not implemented yet, just remove
      the FrameState parameter.
      
      For lrf_filter_frame(), only borrow the "rec" field instead of the whole
      FrameState.
      90bed0bf
  9. 08 Jan, 2019 1 commit
    • Romain Vimont's avatar
      Remove duplicate fields · d92d9a2a
      Romain Vimont authored
      lrf_type and unit_size are per-plane values, there is no need to
      duplicate them as arrays in RestorationState.
      d92d9a2a
  10. 07 Jan, 2019 2 commits
  11. 11 Dec, 2018 1 commit
  12. 06 Dec, 2018 1 commit
  13. 25 Oct, 2018 2 commits
  14. 24 Sep, 2018 1 commit
  15. 06 Sep, 2018 1 commit
  16. 28 Aug, 2018 2 commits
  17. 23 Aug, 2018 1 commit
    • David Michael Barr's avatar
      Implement Chroma-from-Luma (#492) · 1e639ba3
      David Michael Barr authored
      * Add the chroma-from-luma predictor and a test
      * Add benchmarks for CfL predictor
      * Implement CfL signalling
      * Plumb from predict_intra to pred_cfl
      * Add struct for CfL parameters
      * Compute subsampled luma AC and plumb it with CfL alpha
      * Plumb CfL parameters up to RDO
      * Add CfL to RDO loop, no parameter search
      1e639ba3
  18. 02 Aug, 2018 1 commit
    • rzumer's avatar
      Add optional comparative benchmarks · 6db4fd68
      rzumer authored and Thomas Daede's avatar Thomas Daede committed
      Run with --features=comparative_bench
      Applies to intra prediction tests and disables native function inlining
      Also refactor benchmarks and reduce code duplication
      6db4fd68