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: usize
Frame width in importance blocks.
h_in_imp_b: usize
Frame 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