Struct GrainTableSegment

struct GrainTableSegment { ... }

Specifies parameters for enabling decoder-side grain synthesis for a segment of video from start_time to end_time.

Fields

start_time: u64

The beginning timestamp of this segment, in 10,000,000ths of a second.

end_time: u64

The ending timestamp of this segment, not inclusive, in 10,000,000ths of a second.

scaling_points_y: ArrayVec<[u8; 2], NUM_Y_POINTS>

Values for the cutoffs and scale factors for luma scaling points

scaling_points_cb: ArrayVec<[u8; 2], NUM_UV_POINTS>

Values for the cutoffs and scale factors for Cb scaling points

scaling_points_cr: ArrayVec<[u8; 2], NUM_UV_POINTS>

Values for the cutoffs and scale factors for Cr scaling points

scaling_shift: u8

Determines the range and quantization step of the standard deviation of film grain.

Accepts values between 8..=11.

ar_coeff_lag: u8

A factor specifying how many AR coefficients are provided, based on the forumla coeffs_len = (2 * ar_coeff_lag * (ar_coeff_lag + 1)).

Accepts values between 0..=3.

ar_coeffs_y: ArrayVec<i8, NUM_Y_COEFFS>

Values for the AR coefficients for luma scaling points

ar_coeffs_cb: ArrayVec<i8, NUM_UV_COEFFS>

Values for the AR coefficients for Cb scaling points

ar_coeffs_cr: ArrayVec<i8, NUM_UV_COEFFS>

Values for the AR coefficients for Cr scaling points

ar_coeff_shift: u8

Shift value: Specifies the range of acceptable AR coefficients 6: [-2, 2) 7: [-1, 1) 8: [-0.5, 0.5) 9: [-0.25, 0.25)

cb_mult: u8

Multiplier to the grain strength of the Cb plane

cb_luma_mult: u8

Multiplier to the grain strength of the Cb plane inherited from the luma plane

cb_offset: u16

A base value for the Cb plane grain

cr_mult: u8

Multiplier to the grain strength of the Cr plane

cr_luma_mult: u8

Multiplier to the grain strength of the Cr plane inherited from the luma plane

cr_offset: u16

A base value for the Cr plane grain

overlap_flag: bool

Whether film grain blocks should overlap or not

chroma_scaling_from_luma: bool

Scale chroma grain from luma instead of providing chroma scaling points

grain_scale_shift: u8

Specifies how much the Gaussian random numbers should be scaled down during the grain synthesis process.

random_seed: u16

Random seed used for generating grain

Implementations

impl Clone for GrainTableSegment

fn clone(self: &Self) -> GrainTableSegment

impl Debug for GrainTableSegment

fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result

impl Eq for GrainTableSegment

impl Freeze for GrainTableSegment

impl PartialEq for GrainTableSegment

fn eq(self: &Self, other: &GrainTableSegment) -> bool

impl RefUnwindSafe for GrainTableSegment

impl Send for GrainTableSegment

impl StructuralPartialEq for GrainTableSegment

impl Sync for GrainTableSegment

impl Unpin for GrainTableSegment

impl UnsafeUnpin for GrainTableSegment

impl UnwindSafe for GrainTableSegment

impl<T> Any for GrainTableSegment

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for GrainTableSegment

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for GrainTableSegment

fn borrow_mut(self: &mut Self) -> &mut T

impl<T> CloneToUninit for GrainTableSegment

unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)

impl<T> From for GrainTableSegment

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> ToOwned for GrainTableSegment

fn to_owned(self: &Self) -> T
fn clone_into(self: &Self, target: &mut T)

impl<T, U> Into for GrainTableSegment

fn into(self: Self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom for GrainTableSegment

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

impl<T, U> TryInto for GrainTableSegment

fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>