pub struct CodedFrameData<T: Pixel> {
    pub lookahead_rec_buffer: ReferenceFramesSet<T>,
    pub w_in_imp_b: usize,
    pub h_in_imp_b: usize,
    pub lookahead_intra_costs: Box<[u32]>,
    pub block_importances: Box<[f32]>,
    pub distortion_scales: Box<[DistortionScale]>,
    pub activity_scales: Box<[DistortionScale]>,
    pub activity_mask: ActivityMask,
    pub spatiotemporal_scores: Box<[DistortionScale]>,
}Expand description
These frame invariants are only used on coded frames, i.e. non-SEFs. They are stored separately to avoid useless allocations when we do not need them.
Currently this consists only of lookahaed data. This may change in the future.
Fields§
§lookahead_rec_buffer: ReferenceFramesSet<T>The lookahead version of rec_buffer, used for storing and propagating
the original reference frames (rather than reconstructed ones). The
lookahead uses both rec_buffer and lookahead_rec_buffer, where
rec_buffer contains the current frame’s reference frames and
lookahead_rec_buffer contains the next frame’s reference frames.
w_in_imp_b: usizeFrame width in importance blocks.
h_in_imp_b: usizeFrame height in importance blocks.
lookahead_intra_costs: Box<[u32]>Intra prediction cost estimations for each importance block.
block_importances: Box<[f32]>Future importance values for each importance block. That is, a value indicating how much future frames depend on the block (for example, via inter-prediction).
distortion_scales: Box<[DistortionScale]>Pre-computed distortion_scale.
activity_scales: Box<[DistortionScale]>Pre-computed activity_scale.
activity_mask: ActivityMask§spatiotemporal_scores: Box<[DistortionScale]>Combined metric of activity and distortion
Implementations§
Source§impl<T: Pixel> CodedFrameData<T>
 
impl<T: Pixel> CodedFrameData<T>
pub fn new(fi: &FrameInvariants<T>) -> CodedFrameData<T>
pub fn compute_spatiotemporal_scores(&mut self) -> i64
pub fn compute_temporal_scores(&mut self) -> i64
Trait Implementations§
Source§impl<T: Clone + Pixel> Clone for CodedFrameData<T>
 
impl<T: Clone + Pixel> Clone for CodedFrameData<T>
Source§fn clone(&self) -> CodedFrameData<T>
 
fn clone(&self) -> CodedFrameData<T>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl<T> Freeze for CodedFrameData<T>
impl<T> RefUnwindSafe for CodedFrameData<T>where
    T: RefUnwindSafe,
impl<T> Send for CodedFrameData<T>
impl<T> Sync for CodedFrameData<T>
impl<T> Unpin for CodedFrameData<T>
impl<T> UnwindSafe for CodedFrameData<T>where
    T: RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more