Expand description
Registry glue + minimal decode pipeline for the EVC crate.
Round-9 status: a working decoder for Baseline-profile bitstreams that satisfy:
- 8-bit luma + chroma,
slice_deblocking_filter_flag = 0,- every CU has
cbf_luma == cbf_cb == cbf_cr == 0(pure intra/inter prediction with no residual; round-5 wires real residual decoding), - Inter MVs land on the Baseline 1/4-pel grid (sub-pel phases 4, 8, 12 for luma; 4, 8, 12, 16, 20, 24, 28 for chroma).
Round-9 lifts the round-4 single-reference constraint: an in-memory
DPB keeps every previously-decoded short-term reference picture
indexed by POC, and at each non-IDR slice the decoder builds the
L0 / L1 lists by walking the slice’s ref_pic_list_struct() deltas
(relative to slice_pic_order_cnt_lsb). Each inter CU’s
RefIdxL0 / RefIdxL1 then resolves to the right DPB entry.
Output ordering follows POC, not coding order.
Anything else (non-Baseline, 10-bit, deblocked, residuals present,
sub-pel outside Baseline grid) bubbles up as Error::Unsupported.
The decoder consumes length-prefixed NAL units (Annex B raw
bitstream framing) per ISO/IEC 23094-1.
Structs§
- EvcDecoder
- Public-but-internal type that callers normally see via the
Decodertrait. Wraps the per-stream parameter-set cache, the round-9 DPB and the POC-ordered output queue.
Functions§
- make_
decoder - Build the round-3 decoder for the registry.