pub struct SpsExtended {
pub chroma_format_idc: u8,
pub separate_color_plane_flag: bool,
pub bit_depth_luma_minus8: u8,
pub bit_depth_chroma_minus8: u8,
pub qpprime_y_zero_transform_bypass_flag: bool,
pub scaling_matrix: Vec<Vec<i64>>,
}
Expand description
The Sequence Parameter Set extension. ISO/IEC-14496-10-2022 - 7.3.2
Fields§
§chroma_format_idc: u8
The chroma_format_idc
as a u8. This is the chroma sampling relative
to the luma sampling specified in subclause 6.2.
The value of this ranges from [0, 3].
This is a variable number of bits as it is encoded by an exp golomb (unsigned).
The smallest encoding would be for 0
which is encoded as 1
, which is a single bit.
The largest encoding would be for 3
which is encoded as 0 0100
, which is 5 bits.
ISO/IEC-14496-10-2022 - 7.4.2.1.1
For more information:
separate_color_plane_flag: bool
The separate_colour_plane_flag
is a single bit.
0 means the the color components aren’t coded separately and ChromaArrayType
is set to chroma_format_idc
.
1 means the 3 color components of the 4:4:4 chroma format are coded separately and
ChromaArrayType
is set to 0.
ISO/IEC-14496-10-2022 - 7.4.2.1.1
bit_depth_luma_minus8: u8
The bit_depth_luma_minus8
as a u8. This is the chroma sampling relative
to the luma sampling specified in subclause 6.2.
The value of this ranges from [0, 6].
This is a variable number of bits as it is encoded by an exp golomb (unsigned).
The smallest encoding would be for 0
which is encoded as 1
, which is a single bit.
The largest encoding would be for 6
which is encoded as 0 0111
, which is 5 bits.
ISO/IEC-14496-10-2022 - 7.4.2.1.1
For more information:
bit_depth_chroma_minus8: u8
The bit_depth_chroma_minus8
as a u8. This is the chroma sampling
relative to the luma sampling specified in subclause 6.2.
The value of this ranges from [0, 6].
This is a variable number of bits as it is encoded by an exp golomb (unsigned).
The smallest encoding would be for 0
which is encoded as 1
, which is a single bit.
The largest encoding would be for 6
which is encoded as 0 0111
, which is 5 bits.
ISO/IEC-14496-10-2022 - 7.4.2.1.1
For more information:
qpprime_y_zero_transform_bypass_flag: bool
The qpprime_y_zero_transform_bypass_flag
is a single bit.
0 means the transform coefficient decoding and picture construction processes wont use the transform bypass operation.
1 means that when QP’_Y is 0 then a transform bypass operation for the transform coefficient decoding and picture construction processes will be applied before the deblocking filter process from subclause 8.5.
ISO/IEC-14496-10-2022 - 7.4.2.1.1
scaling_matrix: Vec<Vec<i64>>
The scaling_matrix
. If the length is nonzero, then
seq_scaling_matrix_present_flag
must have been set.
Implementations§
Source§impl SpsExtended
impl SpsExtended
Sourcepub fn parse<T: Read>(reader: &mut BitReader<T>) -> Result<Self>
pub fn parse<T: Read>(reader: &mut BitReader<T>) -> Result<Self>
Parses an extended SPS from a bitstream.
Returns an SpsExtended
struct.
Sourcepub fn build<T: Write>(&self, writer: &mut BitWriter<T>) -> Result<()>
pub fn build<T: Write>(&self, writer: &mut BitWriter<T>) -> Result<()>
Builds the SPSExtended struct into a byte stream. Returns a built byte stream.
Sourcepub fn bitsize(&self) -> u64
pub fn bitsize(&self) -> u64
Returns the total bits of the SpsExtended struct.
Note that this isn’t the bytesize since aligning it may cause some values to be different.
Sourcepub fn bytesize(&self) -> u64
pub fn bytesize(&self) -> u64
Returns the total bytes of the SpsExtended struct.
Note that this calls SpsExtended::bitsize()
and calculates the number of bytes
including any necessary padding such that the bitstream is byte aligned.
Trait Implementations§
Source§impl Clone for SpsExtended
impl Clone for SpsExtended
Source§fn clone(&self) -> SpsExtended
fn clone(&self) -> SpsExtended
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more