1. 14 Apr, 2019 1 commit
  2. 12 Apr, 2019 1 commit
  3. 09 Apr, 2019 4 commits
  4. 08 Apr, 2019 2 commits
    • Romain Vimont's avatar
      Remove unnecessary clone() · 5ee66c1c
      Romain Vimont authored
      The vector of frame motion vectors may be moved instead of cloned.
      5ee66c1c
    • Romain Vimont's avatar
      Do not crash on tiny images · 8412ff0b
      Romain Vimont authored
      Subsampled motion estimation may not work for a block size smaller than
      the input frame (e.g. block 64x64 on a 40x40 input).
      
      This is currently rarely a problem in practice, but with tiling, the
      tiles on right and bottom borders may be small and crash the encoder.
      8412ff0b
  5. 05 Apr, 2019 1 commit
  6. 04 Apr, 2019 2 commits
    • Romain Vimont's avatar
      Fix indentation in encode_tile_group() · fe9d1115
      Romain Vimont authored
      fe9d1115
    • Romain Vimont's avatar
      Pass plane and offset to get_intra_edges() · b8063c41
      Romain Vimont authored
      In order to guarantee that a slice never exceeds its parent,
      EdgedPlaneSlice was introduced by #1082.
      
      However, it added complexity, and happens to be insufficient to adapt
      get_intra_edges() for tiling (we can't retrieve the tile dimensions).
      
      Instead, pass both the Plane (in the future, the plane region associated
      with the tile) and the plane offset. It's simpler, and it still does not
      require a slice to exceed its parent.
      b8063c41
  7. 03 Apr, 2019 2 commits
  8. 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
  9. 30 Mar, 2019 3 commits
  10. 29 Mar, 2019 2 commits
    • Romain Vimont's avatar
      Remove cols and rows from BlockContext · 1b33845c
      Romain Vimont authored
      They are redundant with those of FrameBlocks.
      1b33845c
    • Romain Vimont's avatar
      Pass FrameBlocks instead of BlockContext · 3c29f358
      Romain Vimont authored
      FrameBlocks is part of the BlockContext structure. Many functions which
      used only the FrameBlocks (but not the other BlockContext fields)
      received a reference to the whole BlockContext as parameter.
      
      FrameBlocks will survive tiles-encoding: it will be accessed through a
      tiled version for each tile, then frame-wise after all tiles are
      encoded.
      
      However, BlockContext will only be used tile-wise: there will be one
      instance per tile, destroyed once the tile is encoded. Therefore,
      frame-wise functions may not receive the whole BlockContext anymore
      (all tile-specific BlockContext instances won't exist anymore).
      3c29f358
  11. 28 Mar, 2019 4 commits
    • Romain Vimont's avatar
      Remove "superframe anti emulation" byte · 7debdde3
      Romain Vimont authored
      TD-Linux on IRC:
      
      > superframe anti emulation was dropped from the spec mid development
      7debdde3
    • 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
      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
    • 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
  12. 27 Mar, 2019 1 commit
    • Yushin Cho's avatar
      RDO of transform size for intra block · 6f320b1c
      Yushin Cho authored
      Enabled for speed <= 2, i.e. when
      fi.config.speed_settings.rdo_tx_decision == true.
      
      AWCY result for speed 2
      
         PSNR | PSNR Cb | PSNR Cr | PSNR HVS |    SSIM | MS SSIM | CIEDE 2000
      -1.3858 | -1.1944 | -0.8549 |  -0.9902 | -1.3141 | -0.9488 |    -1.1913
      
      With encoding time increased < ~5%.
      6f320b1c
  13. 26 Mar, 2019 7 commits
  14. 20 Mar, 2019 6 commits
  15. 19 Mar, 2019 2 commits