1. 10 May, 2019 2 commits
  2. 20 Apr, 2019 9 commits
  3. 18 Apr, 2019 1 commit
  4. 14 Apr, 2019 1 commit
  5. 02 Apr, 2019 2 commits
    • Romain Vimont's avatar
      Pass CDFContext by reference in ContextWriter · 265889fa
      Romain Vimont authored
      With tiling, the lifetime of CDFContext will exceed that of
      ContextWriter (which will exist only during tile encoding).
      
      The resulting CDFContext must be read to be (possibly) copied into the
      FrameState.
      
      Therefore, make ContextWriter only reference it (instead of taking
      ownership).
      265889fa
    • Romain Vimont's avatar
      Move FrameBlocks out of BlockContext · 8e063aaf
      Romain Vimont authored
      With tiling, the lifetime of FrameBlocks will exceed that of
      BlockContext (which will exist only during tile encoding).
      
      Therefore, create it separately, and make BlockContext reference it.
      8e063aaf
  6. 30 Mar, 2019 3 commits
  7. 29 Mar, 2019 1 commit
  8. 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
  9. 26 Mar, 2019 9 commits
  10. 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
  11. 20 Mar, 2019 2 commits