effectcraft/crates/vp9enc
Brandon Thomas 406706e3d5 OUT-2: WebM export (VP9 intra encoder + alpha, Opus), WAV/AIFF audio-only outputs
- effectcraft-vp9enc (L0): VP9 profile 0 key-frame encoder from the VP9 bitstream spec
  (8x8 intra blocks, DC/V/H/TM, 4x4 DCT/ADST, lossless WHT at quality 100, tile columns);
  round-trips exactly through FilmCraft's VP9 decoder and ffmpeg.
- export: WebM muxer (EBML/Matroska spec) with VP9, VP9 alpha in BlockAdditional
  (AlphaMode 1), Opus (CodecDelay = pre-skip); WAV and AIFF outputs.
- OutputFormat WebM/Wav/Aiff in the Render Queue, renderQueue.add formats, CLI --format.
- Tests: FilmCraft decode-back (frames, size, pixels, audio RMS), ffprobe/ffmpeg oracles.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 22:28:15 -04:00
..
src OUT-2: WebM export (VP9 intra encoder + alpha, Opus), WAV/AIFF audio-only outputs 2026-10-02 22:28:15 -04:00
Cargo.toml OUT-2: WebM export (VP9 intra encoder + alpha, Opus), WAV/AIFF audio-only outputs 2026-10-02 22:28:15 -04:00
README.md OUT-2: WebM export (VP9 intra encoder + alpha, Opus), WAV/AIFF audio-only outputs 2026-10-02 22:28:15 -04:00

README.md

effectcraft-vp9enc

A small VP9 encoder for WebM export: every frame is a key frame (profile 0, 8-bit 4:2:0, BT.709), coded with 8×8 intra blocks (DC / V / H / TM prediction chosen per block), 4×4 DCT/ADST transforms with default probabilities, or the Walsh–Hadamard transform at quality 100 (mathematically lossless).

Written from the VP9 Bitstream & Decoding Process Specification, version 0.6 (31 March 2016): the encoder emits the uncompressed and compressed headers (§6.2, §6.3), partition, mode info and token syntax (§6.4) and reconstructs with the specification's intra prediction (§8.5.1) and integer inverse transforms (§8.7) so it stays in step with any conformant decoder. The boolean encoder is the inverse of the §9.2 decoder in the form given in RFC 6386 §7.3. Spec tables (§10) were transcribed from FilmCraft's first-party decoder filmcraft-vp9 (MIT OR Apache-2.0), which is also the decoder the tests round-trip through; ffmpeg is used only as an external test oracle. No libvpx or other third-party encoder/decoder source was consulted.