pub struct SliceTileWalkSegment {
pub tile_idx: u32,
pub first_ctb_addr_ts: u32,
pub num_ctus: u32,
pub ctb_addr_in_rs: Vec<u32>,
pub byte_align_after: bool,
}Expand description
One tile’s contribution to the §7.3.8.1 slice_data() walk.
The slice_data() loop (ISO/IEC 23094-1 §7.3.8.1, line-2596 syntax
table) visits the slice’s tiles in order, and within each tile walks
NumCtusInTile[ SliceTileIdx[ i ] ] consecutive tile-scan CTU
addresses starting at FirstCtbAddrTs[ SliceTileIdx[ i ] ], mapping
each through CtbAddrTsToRs[ ] to the raster address CtbAddrInRs
that coding_tree_unit( ) consumes:
for( i = 0; i < NumTilesInSlice; i++ ) {
ctbAddrInTs = FirstCtbAddrTs[ SliceTileIdx[ i ] ]
for( j = 0; j < NumCtusInTile[ SliceTileIdx[ i ] ]; j++, ctbAddrInTs++ ) {
CtbAddrInRs = CtbAddrTsToRs[ ctbAddrInTs ]
coding_tree_unit( )
}
end_of_tile_one_bit (ae)
if( i < NumTilesInSlice − 1 )
byte_alignment( )
}Fields§
§tile_idx: u32SliceTileIdx[ i ] — the geometric tile index this segment walks.
first_ctb_addr_ts: u32FirstCtbAddrTs[ SliceTileIdx[ i ] ] — the tile’s first
tile-scan CTU address.
num_ctus: u32NumCtusInTile[ SliceTileIdx[ i ] ] — the tile’s CTU count.
ctb_addr_in_rs: Vec<u32>The raster CtbAddrInRs addresses this tile contributes, in
tile-scan order: CtbAddrTsToRs[ ctbAddrInTs ] for
ctbAddrInTs in first_ctb_addr_ts ..< first_ctb_addr_ts + num_ctus.
byte_align_after: booltrue for every segment except the last (i < NumTilesInSlice − 1), pinning the §7.3.8.1 byte_alignment( ) that follows this
tile’s end_of_tile_one_bit. The final tile’s end_of_tile_one_bit
is the slice’s own terminate decision and carries no trailing
byte_alignment( ).
Trait Implementations§
Source§impl Clone for SliceTileWalkSegment
impl Clone for SliceTileWalkSegment
Source§fn clone(&self) -> SliceTileWalkSegment
fn clone(&self) -> SliceTileWalkSegment
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SliceTileWalkSegment
impl Debug for SliceTileWalkSegment
impl Eq for SliceTileWalkSegment
Source§impl PartialEq for SliceTileWalkSegment
impl PartialEq for SliceTileWalkSegment
Source§fn eq(&self, other: &SliceTileWalkSegment) -> bool
fn eq(&self, other: &SliceTileWalkSegment) -> bool
self and other values to be equal, and is used by ==.