1. 28 Mar, 2019 1 commit
    • Thomas Daede's avatar
      Create RefType enum. · db58658a
      Thomas Daede authored
      Moves all functions that previously used usize to this type.
      Instead of direct conversions to a slot number, use a to_index fn.
      
      This also changes the size of the global mv state and context
      ref counting arrays as they don't need LAST_FRAME.
      db58658a
  2. 25 Mar, 2019 1 commit
  3. 22 Mar, 2019 2 commits
  4. 21 Mar, 2019 4 commits
    • Romain Vimont's avatar
      Do not pass both (blk_w, blk_h) and BlockSize · 9317e7d2
      Romain Vimont authored
      This is redundant. For consistency, keep blk_w and blk_h.
      9317e7d2
    • Romain Vimont's avatar
      Make tmp_plane_opt internal to diamond_me_search() · 06c8bda1
      Romain Vimont authored
      An optional tempoary plane is passed from callers to callees to avoid
      reallocations. However, the callers of diamond_me_search() need not
      provide this plane; they just need a flag to enable subpixel motion
      estimation.
      06c8bda1
    • Romain Vimont's avatar
      Make temporary plane internal · 59a458f3
      Romain Vimont authored
      The temporary plane need not be provided by the caller of
      sub_pixel_me() and telescopic_subpel_search().
      
      Expose it only when it allows to avoid reallocations between several
      function calls.
      59a458f3
    • Romain Vimont's avatar
      Do not pass both BlockOffset and PlaneOffset · 537679d0
      Romain Vimont authored
      In motion estimation, several functions received both the offset
      expressed in blocks and in pixels for the luma plane. This information
      is redundant: a block offset is trivially convertible to a luma plane
      offset.
      
      With tiling, we need to manage both absolute offsets (relative to the
      frame) and offsets relative to the current tile. This will be more
      simple without duplication.
      537679d0
  5. 20 Mar, 2019 5 commits
  6. 19 Mar, 2019 2 commits
  7. 18 Mar, 2019 1 commit
    • David Michael Barr's avatar
      Inline often called and almost-trivial functions (#1124) · 7a479a0c
      David Michael Barr authored
      * Inline constrain and msb for cdef_filter_block
        This reduces its average time by around 42%.
      * Inline round_shift for pred_directional and others
        This reduces its average time by around 10%.
      * Inline sgrproj_sum_finish to its various callers
        It is at the lowest level of a hot call graph and almost trivial.
      * Inline get_mv_rate in motion estimation
        It is almost trivial and called often.
      7a479a0c
  8. 15 Mar, 2019 4 commits
  9. 14 Mar, 2019 2 commits
  10. 13 Mar, 2019 2 commits
  11. 08 Mar, 2019 1 commit
  12. 07 Mar, 2019 1 commit
    • David Michael Barr's avatar
      Integrate sad_sse2.asm into me.rs · 5182c534
      David Michael Barr authored
      Avoid unaligned access in the value-correctness tests.
      Work around unaligned blocks in motion estimation.
      Testing on AWCY, this gave almost 1.3x speed up for u8 planes.
      5182c534
  13. 06 Mar, 2019 1 commit
  14. 28 Feb, 2019 1 commit
  15. 27 Feb, 2019 1 commit
  16. 25 Feb, 2019 2 commits
  17. 21 Feb, 2019 1 commit
    • Romain Vimont's avatar
      Make plane generic over pixel component type · 8057ee7c
      Romain Vimont authored
      In order to support both u8 and u16 for plane components, make the Plane
      structure generic over the component type. As a consequence, many other
      structures and functions also become generic.
      
      Some functions are not u8-compatible yet, although they have been make
      generic over the component type to make the compilation work. They
      assert that the size of the generic parameter is 16 bits wide.
      
      For this reason, the root context structure is unconditionally created
      as Context<u16> for now.
      8057ee7c
  18. 19 Feb, 2019 2 commits
  19. 13 Feb, 2019 1 commit
  20. 11 Feb, 2019 1 commit
    • Timothy B. Terriberry's avatar
      Compute and store lambda in the FrameInvariants. · a6132e1b
      Timothy B. Terriberry authored
      Instead of calculating it on the fly from the quantizer wherever it
       happens to be needed.
      This will allow us to choose lambda with more precision than a
       single quantizer step size later on, for more precise rate
       targeting.
      
      This results in no change in quality.
      a6132e1b
  21. 09 Feb, 2019 1 commit
  22. 08 Feb, 2019 2 commits
  23. 04 Feb, 2019 1 commit