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: u64The beginning timestamp of this segment, in 10,000,000ths of a second.
end_time: u64The 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: u8Determines the range and quantization step of the standard deviation of film grain.
Accepts values between
8..=11.ar_coeff_lag: u8A 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: u8Shift 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: u8Multiplier to the grain strength of the Cb plane
cb_luma_mult: u8Multiplier to the grain strength of the Cb plane inherited from the luma plane
cb_offset: u16A base value for the Cb plane grain
cr_mult: u8Multiplier to the grain strength of the Cr plane
cr_luma_mult: u8Multiplier to the grain strength of the Cr plane inherited from the luma plane
cr_offset: u16A base value for the Cr plane grain
overlap_flag: boolWhether film grain blocks should overlap or not
chroma_scaling_from_luma: boolScale chroma grain from luma instead of providing chroma scaling points
grain_scale_shift: u8Specifies how much the Gaussian random numbers should be scaled down during the grain synthesis process.
random_seed: u16Random 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) -> TReturns the argument unchanged.
impl<T> ToOwned for GrainTableSegment
fn to_owned(self: &Self) -> Tfn clone_into(self: &Self, target: &mut T)
impl<T, U> Into for GrainTableSegment
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses 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>