mirror of
https://github.com/storytold/filmcraft.git
synced 2026-10-24 10:10:05 -06:00
374569e65e1264118028f5ac93df5bb6c23f7fa9
- frame-level parallelism: the calling thread handles headers, POC, DPB and reference lists; each picture decodes as a job on a rayon pool (feature 'threads') and publishes deblocked macroblock rows into a shared Frame; motion compensation and co-located lookups block per row on references still being decoded (safe Rust, OnceLock per MB row); outputs are handed out once their job has finished - row-pipelined deblocking inside a picture (row r filtered after row r+1 is reconstructed), picture buffer recycling, panic/error isolation per job - faster luma/chroma interpolation (row-wise filters, window fetch), direct interpolation into the picture for unweighted single-list blocks, merged motion compensation for uniform direct macroblocks, 8x8 direct derivation with direct_8x8_inference, vectorisable weighted prediction, deblocking with per-edge parameters and cached reference identities - conformance tests now decode every fixture single- and multi-threaded and check pts/POC output order; ignored perf test (1080p High CRF20, 120 frames) 1080p: ~100 fps single-threaded, ~600 fps with 14 threads (M4 Pro, heavily loaded machine). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
filmcraft
by the artcraft team
Languages
Rust
99%
Python
0.3%
WGSL
0.3%
Shell
0.2%
JavaScript
0.1%