pub struct InterDecodeInputs<'a, 'b> {
pub walk: SliceWalkInputs,
pub decode: SliceDecodeInputs,
pub slice_is_b: bool,
pub num_ref_idx_active_minus1_l0: u32,
pub num_ref_idx_active_minus1_l1: u32,
pub ref_list_l0: &'b [RefPictureView<'a>],
pub ref_list_l1: &'b [RefPictureView<'a>],
}Expand description
Inputs for the Baseline P/B decode entry point.
Round-9 lifts the single-reference round-4 constraint by promoting
ref_l0 / ref_l1 to slices indexed by RefIdxLX. Round-8 and
earlier callers that only need one reference per list pass a
single-element slice; the inter pipeline now resolves each CU’s
per-list reference via the decoded ref_idx_l* syntax element
instead of always reading slot 0.
Fields§
§walk: SliceWalkInputs§decode: SliceDecodeInputs§slice_is_b: boolSlice type — false for P (single ref list), true for B
(RefPicList1 also active).
num_ref_idx_active_minus1_l0: u32num_ref_idx_active_minus1[0] — round-9 honours arbitrary values
up to ref_list_l0.len() - 1. Decoded ref_idx_l0 syntax
element is range-checked against this bound.
num_ref_idx_active_minus1_l1: u32num_ref_idx_active_minus1[1] — for B slices.
ref_list_l0: &'b [RefPictureView<'a>]L0 reference picture list, indexed by RefIdxL0. Must contain at
least num_ref_idx_active_minus1_l0 + 1 entries; round-9
validates the bound at slice entry. Synthetic fixtures pass a
single-element slice and num_ref_idx_active_minus1_l0 == 0.
ref_list_l1: &'b [RefPictureView<'a>]L1 reference picture list, indexed by RefIdxL1. Empty for P
slices; for B slices must contain at least
num_ref_idx_active_minus1_l1 + 1 entries.
Implementations§
Source§impl<'a, 'b> InterDecodeInputs<'a, 'b>
impl<'a, 'b> InterDecodeInputs<'a, 'b>
Sourcepub fn ref_l0(&self, ref_idx: u32) -> Option<RefPictureView<'a>>
pub fn ref_l0(&self, ref_idx: u32) -> Option<RefPictureView<'a>>
L0 reference at ref_idx. Returns None when out of range.
Sourcepub fn ref_l1(&self, ref_idx: u32) -> Option<RefPictureView<'a>>
pub fn ref_l1(&self, ref_idx: u32) -> Option<RefPictureView<'a>>
L1 reference at ref_idx. Returns None when out of range or
when the slice is unipred (P).
Trait Implementations§
Source§impl<'a, 'b> Clone for InterDecodeInputs<'a, 'b>
impl<'a, 'b> Clone for InterDecodeInputs<'a, 'b>
Source§fn clone(&self) -> InterDecodeInputs<'a, 'b>
fn clone(&self) -> InterDecodeInputs<'a, 'b>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more