1. 06 Dec, 2018 2 commits
  2. 05 Dec, 2018 2 commits
  3. 15 Nov, 2018 1 commit
  4. 14 Nov, 2018 1 commit
  5. 12 Nov, 2018 2 commits
  6. 09 Nov, 2018 1 commit
  7. 08 Nov, 2018 2 commits
  8. 06 Nov, 2018 1 commit
  9. 05 Nov, 2018 2 commits
  10. 31 Oct, 2018 1 commit
  11. 30 Oct, 2018 1 commit
  12. 29 Oct, 2018 1 commit
  13. 28 Oct, 2018 1 commit
  14. 24 Oct, 2018 1 commit
    • David Michael Barr's avatar
      Integrate dav1d ipred.asm · 5e9d1b07
      David Michael Barr authored
      As a simple example, call ipred_dc_128.
      
      Support linking asm on macOS; the linker trips over a dependency on
      src/tables.c in mc.asm if we include it.
      
      Avoid linking asm with MSVC for now as static library not found.
      5e9d1b07
  15. 23 Oct, 2018 4 commits
  16. 22 Oct, 2018 2 commits
  17. 24 Sep, 2018 1 commit
  18. 16 Sep, 2018 1 commit
  19. 12 Sep, 2018 1 commit
    • fbossen's avatar
      Add test for NEARMV mode (#523) · 28a38a5a
      fbossen authored
      * Correctly handle NEAR mode when less than 2 entried in MV stack
      
      If there are fewer than 2 entries in the motion vector stack, then
      the NEAR motion vector is considered to be the same vector as the
      global motion vector (currently 0,0), as per 7.10.2.12
      "Extra search process" in the spec.
      
      * Add support for 2nd and 3rd NEAR motion vector
      
      * Adaptively select best MV mode
      28a38a5a
  20. 06 Sep, 2018 1 commit
  21. 05 Sep, 2018 1 commit
    • David Michael Barr's avatar
      Clean up CfL implementation · d1ebacea
      David Michael Barr authored
      * CPU feature check for SSSE3.
      * Measure rdo_cfl_alpha() speed.
      * Remove redundant loop for 2x speed-up of rdo_cfl_alpha().
      * Allow rdo_cfl_alpha() to return None.
      * Tidy up formatting.
      d1ebacea
  22. 31 Aug, 2018 1 commit
  23. 28 Aug, 2018 1 commit
    • David Michael Barr's avatar
      SSSE3 implementation of CfL predictor (#515) · 8e161adb
      David Michael Barr authored
      This yields an ~4x speed-up of this function.
      Update sameness test with in-range values.
      Return early for zero alpha.
      Elide bounds checks from SSSE3 implementation
      Bounds are enforced in the safe wrapper.
      8e161adb
  24. 23 Aug, 2018 2 commits
    • David Michael Barr's avatar
      Implement Chroma-from-Luma (#492) · 1e639ba3
      David Michael Barr authored
      * Add the chroma-from-luma predictor and a test
      * Add benchmarks for CfL predictor
      * Implement CfL signalling
      * Plumb from predict_intra to pred_cfl
      * Add struct for CfL parameters
      * Compute subsampled luma AC and plumb it with CfL alpha
      * Plumb CfL parameters up to RDO
      * Add CfL to RDO loop, no parameter search
      1e639ba3
    • 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
  25. 20 Aug, 2018 1 commit
  26. 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
  27. 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
  28. 10 Aug, 2018 1 commit
  29. 09 Aug, 2018 1 commit
    • 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
  30. 02 Aug, 2018 1 commit
    • fbossen's avatar
      Use zero MV for all blocks in inter frames (#416) · 553a7343
      fbossen authored
      * Create proper structure for reference frame buffer
      
      Also move reference frame buffer into frame invariants to
      avoid having to pass an additional parameter to each function
      requiring access to reference frame buffer.
      
      * Add basic inter prediction function
      
      Basic inter prediction function copies collocated samples
      from first frame in reference frame set.
      
      * Add mapping from reference frame index to slot in buffer
      
      Add array that maps a reference frame index such as LAST_FRAME
      into a slot of the reference frame buffer
      
      * Use GLOBALMV instead of ZEROMV
      
      For consistency with text specification
      
      * Add support for writing reference frames in inter mode
      
      * Add write_inter_mode() for NEWMV and GLOBALMV inter pred modes
      
      Also,
      - Rename ZEROMV prediction mode to GLOBALMV
      - RDO search include GLOBALMV mode if inter frame
      - Import CDFs required to encode NEWMV or GLOBALMV modes
      - Add write_tx_tree() for tx block coding for a inter mode. This
      function is also for var-tx, but currently only one tx block for a inter
      mode partition since tx_mode in frame header is set as LARGEST_TX atm.
      
      * Fix ref_frame storage and counting
      
      * Add basic inter prediction function
      
      Basic inter prediction function copies collocated samples
      from first frame in reference frame set.
      
      * Add mapping from reference frame index to slot in buffer
      
      Add array that maps a reference frame index such as LAST_FRAME
      into a slot of the reference frame buffer
      
      * Use GLOBALMV instead of ZEROMV
      
      For consistency with text specification
      
      * Fix entropy coding issues for inter modes
      
      * Fix issue with transform type and small blocks
      553a7343