1. 30 Mar, 2019 1 commit
  2. 29 Mar, 2019 1 commit
  3. 28 Mar, 2019 9 commits
    • Thomas Daede's avatar
      b1664dd4
    • Romain Vimont's avatar
      Use operator[] instead of at() and at_mut() · 9aa21995
      Romain Vimont authored
      Now that Index and IndexMut are implemented with BlockOffset index for
      FrameBlocks, remove at() and at_mut().
      9aa21995
    • Romain Vimont's avatar
      Implement Index<BlockOffset> for FrameBlocks · 7c6ba687
      Romain Vimont authored
      For convenience, implement Index and IndexMut traits so that we can
      index a block directly by a BlockOffset instance.
      7c6ba687
    • Romain Vimont's avatar
      Factorize implementation of FrameBlocks setters · b14c663b
      Romain Vimont authored
      Some FrameBlocks setters used the local for_each() method, but some
      others reimplemented it manually. Make them also use for_each().
      b14c663b
    • Romain Vimont's avatar
      Move methods from BlockContext to FrameBlocks · 2e9aacda
      Romain Vimont authored
      Some BlockContext methods are specific to FrameBlocks, so move them.
      
      With tiling, the lifetime of FrameBlocks will exceed that of
      BlockContext (which will exist only during tile encoding).
      
      This paves the way to move FrameBlocks out of BlockContext.
      2e9aacda
    • Romain Vimont's avatar
      Remove unused method · 38ae3a7d
      Romain Vimont authored
      BlockContext::get_mode() was never used. Remove it.
      38ae3a7d
    • Romain Vimont's avatar
      Return blocks by reference, not by value · 86a74779
      Romain Vimont authored
      The methods above_of(), left_of() and above_left_of() returned the
      matching block by value, or a default block if the offset resulted in a
      block outside boundaries.
      
      The Block structure is quite big (std::mem::size_of::<Block>() == 120).
      For reading a field, it is probably not optimal to return a whole Block
      copy or a new default block (although the compiler might optimize such
      accesses).
      
      Moreover, the boundaries checks were often redundant, because already
      done by the callers.
      
      Instead, let the callers check boundaries and return a reference to the
      matching block.
      86a74779
    • Romain Vimont's avatar
      Simplify BlockContext logic · 18ad2b5e
      Romain Vimont authored
      Rewrite conditions to make them easier to read.
      18ad2b5e
    • 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
  4. 26 Mar, 2019 9 commits
  5. 21 Mar, 2019 1 commit
    • 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
  6. 20 Mar, 2019 2 commits
  7. 19 Mar, 2019 1 commit
  8. 15 Mar, 2019 1 commit
  9. 06 Mar, 2019 1 commit
    • Romain Vimont's avatar
      Simplify plane_offset() · 3e7c7c5d
      Romain Vimont authored
      There is no need to compute the superblock offset and the block offset
      inside the superblock separately.
      3e7c7c5d
  10. 01 Mar, 2019 1 commit
  11. 25 Feb, 2019 3 commits
  12. 22 Feb, 2019 3 commits
  13. 21 Feb, 2019 2 commits
  14. 14 Feb, 2019 1 commit
  15. 12 Feb, 2019 1 commit
  16. 11 Feb, 2019 1 commit
  17. 09 Feb, 2019 2 commits