Weekly open source: an OxideAV week, from MPEG-2 rate control to H.266 errata
About 520 commits, and nearly all of them landed in one place. The OxideAV media framework took about 475 of them, spread across more than fifty crates. The theme ran across codecs. Encoders were measured against the standards' own buffer models and conformance streams, and decoders were checked against official suites until they matched, or until the spec itself turned out to be wrong.
oxideav-mpeg12video: rate control by the book
oxideav-mpeg12video (24 commits, the week's busiest repo) took its MPEG-1/MPEG-2 encoder from producing valid streams to producing streams that are verified against the standard's decoder buffer model:
- an exact Annex C VBV model plus a whole-stream CBR verifier, then CBR rate control for MPEG-2 GOPs, MPEG-1 sequences and field-coded sequences;
- MPEG-2 field pictures: I/P/B field encode with a display-order field assembler, then frame pictures with per-macroblock frame/field prediction, field DCT and dual-prime, and adaptive 16×8 motion compensation;
- MPEG-1 D-pictures, the DC-only picture type;
- runtime encoder registration, and a platform-deterministic cosine table for the DCT/IDCT.
The self-encoded corpus grew to seventeen streams, and the CBR and field-coded additions were validated black-box against an external decoder.
oxideav-av1 and oxideav-avif: one decoder, two formats
oxideav-av1 (19 commits) kept adding encoder "elections", where the encoder decides per stream whether a tool pays for itself. This week covered quantizer matrices, including per-segment levels; superres, with a downscaled-width keyframe arm that was then extended across the segmented, pyramid, temporal-ladder and spatial-SVC drivers and paired with loop restoration at the upscaled extent; and film-grain parameter estimation with chroma points and AR-tap fitting. Each round pinned new streams in the conformance corpus, taking it from 122 to 133.
oxideav-avif (18 commits) sits directly on top of it. Its first commit of the week restored real pixel decode through oxideav-av1's registry decoder. After that came the 10- and 12-bit paths end to end: primaries, grids, alpha and AVIS image sequences, gain-map application, and a pixel-to-AVIF encoder across the full depth and format matrix. An external encoder's files now decode exactly at depth.
oxideav-h266: conformance, and two errata in the spec
oxideav-h266 (19
commits) moved from encoding its own streams to decoding the JVET
conformance suite, and the triage scorecard tracks the change. At
round 440 it read 0 pass / 8 fail / 26 undecodable / 22 error.
By round 443 it read 1 / 14 / 33 / 8: the desync family of
failures was gone, and CodingToolsSets_A_2 became the first
stream to decode fully byte-exact. Along the way, the fixes covered
ISP and dual-tree CTB-128 transform units, CCLM neighbour bounds,
chroma deblocking QPs, multi-TB tiling, local dual tree (SCIPU),
and DMVR sub-block sizes.
Two of the commits are errata against the published V4 specification. The §8.7.4.3 LFNST matrices are printed transposed, and the §8.7.4.5 32-point DST-VII/DCT-VIII sub-tables are the top-right kernel block, not rows 16..31. Both surfaced during the conformance triage.
oxideav-fbx: blend shapes and constraints
oxideav-fbx (16
commits) went deeper into scene semantics. It now has complete
blend shapes (static DeformPercent, multi-target morph animation,
one deformer per geometry), a full Constraint grammar round-trip,
the InheritType world-transform products, and a typed axis
convention enforced on decode. It also adopted the new
texture-reference and node-weight surfaces of oxideav-mesh3d
0.0.5, the shared 3D model it decodes into.
Audio: official suites, old formats
The audio crates were mostly about conformance:
- oxideav-aac gained an ISO/IEC 14496-26 conformance harness (ER-LD, CCE, SBR-CRC) and a BSAC decoder: the arithmetic decoder, layer geometry and full block decode.
- oxideav-wma built its vendor-bitstream decode path end to end, from the superframe header through the VLC tables, band partitions and mid/side inverse to PCM. It is checked by a black-box SNR fit.
- oxideav-mp2 added the ISO/IEC 13818-3 multichannel extension and sweeps the official 13818-4 conformance streams.
- For trackers, oxideav-s3m now plays AdLib instruments through its own two-operator OPL2 FM synthesis, and oxideav-mod reads SoundTracker 2.6 / IceTracker modules.
Also this week
- oxideav-h264: the PAFF/MBAFF co-located derivation is complete, and all four staged JVT conformance streams decode byte-exact. The encoder gained B-frame rate control.
- oxideav-vp9: lossy encode across the full format matrix (4:4:4, 4:2:2, 10/12-bit), chained P-frames as the default GOP path, and registry integration. oxideav-openexr added PIZ and DWAA/DWAB, both decode and encode. oxideav-svq decodes SVQ3 I-frames at 299/300 pixel-exact.
- oxideav-embroidery
released
0.0.2. It now decodes and encodes Husqvarna HUS/VIP in full over the ArchiveLib GL bitstream, and plugs into oxideav-core as a demuxer plus a vector decoder. - purecrypto
v0.7.0made much of the toolkit usable without an allocator: ML-DSA and SLH-DSA keygen, signing and verification, XMSS/XMSS^MT verification, single-tree LMS, RSA (PKCS#1 v1.5, PSS, OAEP), the fixed-curve EC primitives, and AEZ. It also closed constant-time gaps in secret-dependent paths. - catcard got a chain
registry with compile-time coin selection and an allocated USB
identity (
0x39F2:0x0401). Next to it, coldcard-firmware-archive is new: 124 officially-signed Coldcard.dfuimages (Mk3/4/5 and Q1), verified against Coinkite's published SHA-256 manifest and kept for research and reproducibility.
Next week
The OxideAV conformance work continues where the scorecards point: more of the JVET suite for H.266 and more official streams for the audio codecs. catcard has a USB identity now, and the next step is a transport to go with it.