pub struct DctOps<S: SimdOps> { /* private fields */ }Expand description
DCT operations using SIMD.
Implementations§
Source§impl<S: SimdOps + SimdOpsExt> DctOps<S>
impl<S: SimdOps + SimdOpsExt> DctOps<S>
Sourcepub fn forward_dct_4x4(&self, input: &[i16; 16], output: &mut [i16; 16])
pub fn forward_dct_4x4(&self, input: &[i16; 16], output: &mut [i16; 16])
Forward 4x4 DCT.
Transforms a 4x4 block of residuals to frequency coefficients.
§Arguments
input- 4x4 input block (row-major)output- 4x4 output coefficients (row-major)
Sourcepub fn inverse_dct_4x4(&self, input: &[i16; 16], output: &mut [i16; 16])
pub fn inverse_dct_4x4(&self, input: &[i16; 16], output: &mut [i16; 16])
Inverse 4x4 DCT.
Transforms 4x4 frequency coefficients back to spatial domain.
§Arguments
input- 4x4 input coefficients (row-major)output- 4x4 output block (row-major)
Sourcepub fn forward_dct_16x16(&self, input: &[i16; 256], output: &mut [i16; 256])
pub fn forward_dct_16x16(&self, input: &[i16; 256], output: &mut [i16; 256])
Forward 16x16 DCT using recursive decomposition.
Decomposes into 4 8x8 DCTs for efficiency.
Sourcepub fn inverse_dct_16x16(&self, input: &[i16; 256], output: &mut [i16; 256])
pub fn inverse_dct_16x16(&self, input: &[i16; 256], output: &mut [i16; 256])
Inverse 16x16 DCT.
Sourcepub fn forward_dct_32x32(&self, input: &[i16; 1024], output: &mut [i16; 1024])
pub fn forward_dct_32x32(&self, input: &[i16; 1024], output: &mut [i16; 1024])
Forward 32x32 DCT.
Sourcepub fn inverse_dct_32x32(&self, input: &[i16; 1024], output: &mut [i16; 1024])
pub fn inverse_dct_32x32(&self, input: &[i16; 1024], output: &mut [i16; 1024])
Inverse 32x32 DCT.
Sourcepub fn butterfly_add(&self, a: I16x8, b: I16x8) -> I16x8
pub fn butterfly_add(&self, a: I16x8, b: I16x8) -> I16x8
Butterfly operation for DCT.
Sourcepub fn butterfly_sub(&self, a: I16x8, b: I16x8) -> I16x8
pub fn butterfly_sub(&self, a: I16x8, b: I16x8) -> I16x8
Butterfly operation for DCT (subtraction).
Trait Implementations§
Auto Trait Implementations§
impl<S> Freeze for DctOps<S>where
S: Freeze,
impl<S> RefUnwindSafe for DctOps<S>where
S: RefUnwindSafe,
impl<S> Send for DctOps<S>
impl<S> Sync for DctOps<S>
impl<S> Unpin for DctOps<S>where
S: Unpin,
impl<S> UnsafeUnpin for DctOps<S>where
S: UnsafeUnpin,
impl<S> UnwindSafe for DctOps<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