1. 05 Dec, 2018 1 commit
  2. 27 Nov, 2018 1 commit
    • Josh Holmer's avatar
      Adaptive keyframe selection · 869fef70
      Josh Holmer authored
      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
  3. 14 Nov, 2018 1 commit
    • Frank Bossen's avatar
      Fix padding of odd-sized frames · 708a806c
      Frank Bossen authored
      Fix padding to begin at output frame boundaries instead of coded
      frame boundaries.
      Fixes #731
      Update test to compare only samples that are within frame boundaries
      708a806c
  4. 09 Nov, 2018 1 commit
  5. 01 Nov, 2018 1 commit
  6. 31 Oct, 2018 1 commit
  7. 09 Oct, 2018 1 commit
    • fbossen's avatar
      Frame reordering (#629) · 58e3084b
      fbossen authored
      * Add code to reorder frames during encoding
      
      * Use BTreeMap instead of VecDequeue to hold input frames
      
      * Implement sign bias in MV prediction
      
      * Disable reuse of learned prob and change ref frame semantics
      
      Use LAST2 instead of ALTREF when the second reference frame is also
      in the past
      58e3084b
  8. 01 Oct, 2018 1 commit
  9. 18 Sep, 2018 1 commit
  10. 16 Sep, 2018 1 commit
  11. 10 Sep, 2018 2 commits
  12. 06 Sep, 2018 1 commit
  13. 05 Sep, 2018 1 commit
    • fbossen's avatar
      Use padded frames (#537) · 982d16c3
      fbossen authored
      * Modify plane data structure to allow for padded border
      
      * Pad reconstructed frame
      
      * Have ME consider motion vectors pointing outside frame boundary
      
      * Remove clamping inside motion compensation loop
      
      Clamping is now done outside the loop and relies on the frame
      being padded.
      
      * Reduce size of intermediate buffer in motion compensation
      
      * Update encode/decode tests
      982d16c3
  14. 21 Aug, 2018 2 commits
  15. 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
  16. 16 Aug, 2018 1 commit
    • fbossen's avatar
      Enable mixing intra and inter blocks in inter frames (#469) · bf537275
      fbossen authored
      * 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
  17. 15 Aug, 2018 2 commits
  18. 14 Aug, 2018 7 commits
  19. 13 Aug, 2018 1 commit
    • Raphael Zumer's avatar
      Revert "Revert "Enable and test high bit depth input (#437)" (#442)" (#447) · f63f5e99
      Raphael Zumer authored
      * Attempt to process 10-bit Y4M input
      
      Currently compiles, encodes and decodes with desynchronization
      
      * Use high bit depth quantization tables
      
      * Move context::clamp() to util.rs
      
      * Fix partition context initialization for high bit depth
      
      * Enable and test 10-bit input
      
      * Add 10- and 12-bit test clips to build.sh
      
      Commented out by default, to enable as needed for local testing.
      
      * Use the same bit depth as y4m_dec for y4m_enc
      
      * Fix benchmark module compilation
      
      * Fix high bit depth test encoding in 8-bit
      
      * Fix header syntax for 12-bit 4:2:0 input
      
      * Enable and test 12-bit input
      
      * Reflect 12-bit support in README.md
      
      * Keep the default C420jpeg color space in y4m_encoder
      
      * Do not allow reconstruction output at high bit depths
      
      * Fix reconstruction output at high bit depths
      
      * Clean up reconstruction copy to frame buffers
      f63f5e99
  20. 10 Aug, 2018 4 commits
  21. 09 Aug, 2018 2 commits
    • Thomas Daede's avatar
      Write level 31 instead of 0. (#439) · f766bd6f
      Thomas Daede authored
      We can't guarantee we meet a level, so choose level 31 for now
      which has no constraints.
      f766bd6f
    • Raphael Zumer's avatar
      Enable and test high bit depth input (#437) · 8c545350
      Raphael Zumer authored
      * Attempt to process 10-bit Y4M input
      
      Currently compiles, encodes and decodes with desynchronization
      
      * Use high bit depth quantization tables
      
      * Move context::clamp() to util.rs
      
      * Fix partition context initialization for high bit depth
      
      * Enable and test 10-bit input
      
      * Add 10- and 12-bit test clips to build.sh
      
      Commented out by default, to enable as needed for local testing.
      
      * Use the same bit depth as y4m_dec for y4m_enc
      
      * Fix benchmark module compilation
      
      * Fix high bit depth test encoding in 8-bit
      
      * Fix header syntax for 12-bit 4:2:0 input
      
      * Enable and test 12-bit input
      
      * Reflect 12-bit support in README.md
      8c545350
  22. 08 Aug, 2018 2 commits
  23. 07 Aug, 2018 3 commits
  24. 06 Aug, 2018 1 commit
    • Monty Montgomery's avatar
      Cdef recorder (#424) · 488b8e2f
      Monty Montgomery authored
      * Add a bitstream writer record/replay abstraction
      
      Allows encoding piecemeal, out of order, or in parallel; a recording
      writer can be played back into a master bitstream range encoder.
      
      * Reimplement od_ec_enc and Writer, add record/playback
      
      Flatten od_ec_enc and Writer, as one was a thin wrapper for the other
      Reimplement range encoding writer as a Writer trait and encoding backend
      Reimplement recording as a second backend to same Writer trait
      488b8e2f