pub struct MotionCompSimd<S> { /* private fields */ }Expand description
AV1 motion compensation SIMD operations.
Implementations§
Source§impl<S: SimdOps> MotionCompSimd<S>
impl<S: SimdOps> MotionCompSimd<S>
Sourcepub fn copy_block(
&self,
src: &[u8],
src_stride: usize,
dst: &mut [u8],
dst_stride: usize,
width: usize,
height: usize,
)
pub fn copy_block( &self, src: &[u8], src_stride: usize, dst: &mut [u8], dst_stride: usize, width: usize, height: usize, )
Copy a block without interpolation (integer-pel motion).
Sourcepub fn filter_h_8tap(
&self,
src: &[u8],
src_stride: usize,
dst: &mut [u8],
dst_stride: usize,
coeffs: &[i16; 8],
width: usize,
height: usize,
)
pub fn filter_h_8tap( &self, src: &[u8], src_stride: usize, dst: &mut [u8], dst_stride: usize, coeffs: &[i16; 8], width: usize, height: usize, )
Horizontal 8-tap interpolation filter.
Applies an 8-tap filter horizontally for sub-pixel motion compensation.
Sourcepub fn filter_v_8tap(
&self,
src: &[u8],
src_stride: usize,
dst: &mut [u8],
dst_stride: usize,
coeffs: &[i16; 8],
width: usize,
height: usize,
)
pub fn filter_v_8tap( &self, src: &[u8], src_stride: usize, dst: &mut [u8], dst_stride: usize, coeffs: &[i16; 8], width: usize, height: usize, )
Vertical 8-tap interpolation filter.
Sourcepub fn filter_2d_8tap(
&self,
src: &[u8],
src_stride: usize,
dst: &mut [u8],
dst_stride: usize,
h_coeffs: &[i16; 8],
v_coeffs: &[i16; 8],
width: usize,
height: usize,
)
pub fn filter_2d_8tap( &self, src: &[u8], src_stride: usize, dst: &mut [u8], dst_stride: usize, h_coeffs: &[i16; 8], v_coeffs: &[i16; 8], width: usize, height: usize, )
2D 8-tap interpolation (both horizontal and vertical).
Sourcepub fn bilinear_h(
&self,
src: &[u8],
src_stride: usize,
dst: &mut [u8],
dst_stride: usize,
fraction: u8,
width: usize,
height: usize,
)
pub fn bilinear_h( &self, src: &[u8], src_stride: usize, dst: &mut [u8], dst_stride: usize, fraction: u8, width: usize, height: usize, )
Bilinear interpolation (simple 2-tap filter).
Sourcepub fn bilinear_v(
&self,
src: &[u8],
src_stride: usize,
dst: &mut [u8],
dst_stride: usize,
fraction: u8,
width: usize,
height: usize,
)
pub fn bilinear_v( &self, src: &[u8], src_stride: usize, dst: &mut [u8], dst_stride: usize, fraction: u8, width: usize, height: usize, )
Bilinear vertical interpolation.
Sourcepub fn average_blocks(
&self,
src1: &[u8],
src2: &[u8],
dst: &mut [u8],
width: usize,
height: usize,
stride: usize,
)
pub fn average_blocks( &self, src1: &[u8], src2: &[u8], dst: &mut [u8], width: usize, height: usize, stride: usize, )
Average two blocks for bi-directional prediction.
Auto Trait Implementations§
impl<S> Freeze for MotionCompSimd<S>where
S: Freeze,
impl<S> RefUnwindSafe for MotionCompSimd<S>where
S: RefUnwindSafe,
impl<S> Send for MotionCompSimd<S>where
S: Send,
impl<S> Sync for MotionCompSimd<S>where
S: Sync,
impl<S> Unpin for MotionCompSimd<S>where
S: Unpin,
impl<S> UnsafeUnpin for MotionCompSimd<S>where
S: UnsafeUnpin,
impl<S> UnwindSafe for MotionCompSimd<S>where
S: UnwindSafe,
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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