1. 04 Jun, 2019 1 commit
  2. 02 May, 2019 1 commit
  3. 20 Apr, 2019 1 commit
    • Romain Vimont's avatar
      Add PlaneRegion · 88014c3d
      Romain Vimont authored and Thomas Daede's avatar Thomas Daede committed
      Add structures to expose rectangular regions of a plane without giving
      access to the whole plane.
      
      This will allow to pass different regions to different threads in safe
      code.
      88014c3d
  4. 13 Mar, 2019 1 commit
  5. 06 Mar, 2019 1 commit
  6. 03 Mar, 2019 1 commit
  7. 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
  8. 14 Feb, 2019 1 commit
  9. 13 Feb, 2019 1 commit
  10. 11 Feb, 2019 1 commit
    • Timothy B. Terriberry's avatar
      Add a skeleton rate control API. · ea4bf00c
      Timothy B. Terriberry authored
      This only implements the "constant quantizer" strategy, and uses
       the same per-frame-type QP index adjustments as the current code.
      However, it is one step towards the true quantizer-based
       adjustments required by the rate control model.
      
      This should result in no change in encoded quality.
      ea4bf00c
  11. 09 Feb, 2019 2 commits
  12. 08 Feb, 2019 1 commit
  13. 03 Feb, 2019 2 commits
  14. 28 Jan, 2019 1 commit
  15. 11 Jan, 2019 1 commit
  16. 08 Jan, 2019 1 commit
  17. 06 Dec, 2018 1 commit
  18. 28 Nov, 2018 1 commit
  19. 27 Nov, 2018 1 commit
    • Josh Holmer's avatar
      Adaptive keyframe selection · 869fef70
      Josh Holmer authored and Thomas Daede's avatar Thomas Daede committed
      Detects the level of difference between the current frame and the
      previous frame, and if the difference is above a preset threshold,
      encodes the current frame as a keyframe.
      
      Introduces a new CLI option, --max-keyint (-i), to set the maximum
      interval between two keyframes. Reuses the existing --keyint (-I) option
      as the minimum interval between two keyframes. Sets the default minimum
      to be 12 frames. To disable scenechange detection, set the max and min
      to be equal via the CLI.
      869fef70
  20. 21 Nov, 2018 1 commit
  21. 12 Nov, 2018 1 commit
  22. 25 Oct, 2018 1 commit
  23. 19 Oct, 2018 1 commit
  24. 18 Oct, 2018 1 commit
  25. 24 Sep, 2018 1 commit
  26. 20 Sep, 2018 1 commit
  27. 10 Sep, 2018 1 commit
  28. 05 Sep, 2018 1 commit
  29. 23 Aug, 2018 1 commit
    • fbossen's avatar
      Add basic support for nonzero motion vectors (#485) · 83fcc030
      fbossen authored
      * Add motion vector paramater to inter prediction function
      
      Motion vector is read from added data field in Block structure
      
      * Add reference frame and motion vector fields/parameters
      
      Reference frame and motion vector are added fields to the
      RDOOutput structure and added parameters to the block
      encoding function
      
      * Fix inter prediction function for nonzero MVs
      
      * Add call to encode new motion vector
      
      * Import default cdfs for MV coding from libaom
      
      * Fix handling of MV precision in MV coding function
      
      * Add coding of DRL mode
      
      * Add motion vector stack
      
      * Add new MV counter to correctly determine context
      
      * Use motion vectors in MV stack for prediction
      
      * Sort MV stack according to weights
      
      Also update weights after near search
      
      * Fix log2() function
      
      * Compute correct context for DRL flag
      
      * Store MVs with 1/8 pel precision and fix MV generation
      
      * Add some basic motion estimation
      
      Motion estimation is full search (+/-16 pel range in 2-pel increments) and
      is done independently for each block
      
      * Fix chroma motion compensation for small blocks
      
      Chroma motion compensation sometimes happens on 2x2 basis
      83fcc030
  30. 21 Aug, 2018 2 commits
  31. 17 Aug, 2018 1 commit
    • fbossen's avatar
      Test skip on and off in RDO loop (#474) · c2d7b6af
      fbossen authored
      * Refactor RDO loop to avoid code duplication
      
      Use same code regardless of whether a loop over chroma modes
      is needed
      
      * Test skip on and off in RDO loop
      
      * Don't search transform type when skipping
      
      * Don't try to skip when using intra modes
      
      * Fix issues with speed 0 and speed 1
      
      Handling of < 8x8 was incorrect in CDEF and in reset_skip_context()
      
      * Use dense sampling for chroma components in above_coeff_context and left_coeff_context
      c2d7b6af
  32. 16 Aug, 2018 1 commit
    • fbossen's avatar
      Enable mixing intra and inter blocks in inter frames (#469) · bf537275
      fbossen authored and Thomas Daede's avatar Thomas Daede committed
      * WIP motion vector reference search
      
      * More searches
      
      * Have a version that compiles
      
      * Actually call MV prediction function
      
      Fix a few bugs along the way
      
      * Add computation of context for inter mode
      
      * Have find_mvrefs return a mode_context value and use it
      
      * Test but never select intra mode in inter frame
      
      * Fixes to context derivation for inter mode
      
      Some success with mixing intra and inter in a same frame but
      still buggy
      
      * Fixes to find MV references functions
      
      Can encode/decode 20 frames at speed 4, but not at slower speed
      settings
      
      * Fix MV scan
      
      Now intra/inter mixing works for all speed settings
      
      * Fix issues that arose from rebase
      
      * Remove lines that should not have been added
      
      * Remove superfluous empty lines
      
      * Supress compiler warnings
      
      * A few cosmetic improvements
      bf537275
  33. 15 Aug, 2018 2 commits
  34. 14 Aug, 2018 3 commits