Struct rustdct::algorithm::Type2And3ConvertToFft
source · pub struct Type2And3ConvertToFft<T> { /* private fields */ }
Expand description
DCT2, DST2, DCT3, and DST3 implementation that converts the problem into a FFT of the same size
// Computes a O(NlogN) DCT2, DST2, DCT3, and DST3 of size 1234 by converting them to FFTs
use rustdct::{Dct2, Dst2, Dct3, Dst3};
use rustdct::algorithm::Type2And3ConvertToFft;
use rustdct::rustfft::FftPlanner;
let len = 1234;
let mut planner = FftPlanner::new();
let fft = planner.plan_fft_forward(len);
let dct = Type2And3ConvertToFft::new(fft);
let mut dct2_buffer = vec![0f32; len];
dct.process_dct2(&mut dct2_buffer);
let mut dst2_buffer = vec![0f32; len];
dct.process_dst2(&mut dst2_buffer);
let mut dct3_buffer = vec![0f32; len];
dct.process_dct3(&mut dct3_buffer);
let mut dst3_buffer = vec![0f32; len];
dct.process_dst3(&mut dst3_buffer);
Implementations
Trait Implementations
sourceimpl<T: DctNum> Dct2<T> for Type2And3ConvertToFft<T>
impl<T: DctNum> Dct2<T> for Type2And3ConvertToFft<T>
sourcefn process_dct2_with_scratch(&self, buffer: &mut [T], scratch: &mut [T])
fn process_dct2_with_scratch(&self, buffer: &mut [T], scratch: &mut [T])
Computes the DCT Type 2 on the provided buffer, in-place. Uses the provided
scratch
buffer as scratch space. Read moresourcefn process_dct2(&self, buffer: &mut [T])
fn process_dct2(&self, buffer: &mut [T])
Computes the DCT Type 2 on the provided buffer, in-place. Read more
sourceimpl<T: DctNum> Dct3<T> for Type2And3ConvertToFft<T>
impl<T: DctNum> Dct3<T> for Type2And3ConvertToFft<T>
sourcefn process_dct3_with_scratch(&self, buffer: &mut [T], scratch: &mut [T])
fn process_dct3_with_scratch(&self, buffer: &mut [T], scratch: &mut [T])
Computes the DCT Type 3 on the provided buffer, in-place. Uses the provided
scratch
buffer as scratch space. Read moresourcefn process_dct3(&self, buffer: &mut [T])
fn process_dct3(&self, buffer: &mut [T])
Computes the DCT Type 3 on the provided buffer, in-place. Read more
sourceimpl<T: DctNum> Dst2<T> for Type2And3ConvertToFft<T>
impl<T: DctNum> Dst2<T> for Type2And3ConvertToFft<T>
sourcefn process_dst2_with_scratch(&self, buffer: &mut [T], scratch: &mut [T])
fn process_dst2_with_scratch(&self, buffer: &mut [T], scratch: &mut [T])
Computes the DST Type 2 on the provided buffer, in-place. Uses the provided
scratch
buffer as scratch space. Read moresourcefn process_dst2(&self, buffer: &mut [T])
fn process_dst2(&self, buffer: &mut [T])
Computes the DST Type 2 on the provided buffer, in-place. Read more
sourceimpl<T: DctNum> Dst3<T> for Type2And3ConvertToFft<T>
impl<T: DctNum> Dst3<T> for Type2And3ConvertToFft<T>
sourcefn process_dst3_with_scratch(&self, buffer: &mut [T], scratch: &mut [T])
fn process_dst3_with_scratch(&self, buffer: &mut [T], scratch: &mut [T])
Computes the DST Type 3 on the provided buffer, in-place. Uses the provided
scratch
buffer as scratch space. Read moresourcefn process_dst3(&self, buffer: &mut [T])
fn process_dst3(&self, buffer: &mut [T])
Computes the DST Type 3 on the provided buffer, in-place. Read more
sourceimpl<T> Length for Type2And3ConvertToFft<T>
impl<T> Length for Type2And3ConvertToFft<T>
sourceimpl<T: DctNum> RequiredScratch for Type2And3ConvertToFft<T>
impl<T: DctNum> RequiredScratch for Type2And3ConvertToFft<T>
fn get_scratch_len(&self) -> usize
impl<T: DctNum> TransformType2And3<T> for Type2And3ConvertToFft<T>
Auto Trait Implementations
impl<T> !RefUnwindSafe for Type2And3ConvertToFft<T>
impl<T> Send for Type2And3ConvertToFft<T>where
T: Send,
impl<T> Sync for Type2And3ConvertToFft<T>where
T: Sync,
impl<T> Unpin for Type2And3ConvertToFft<T>
impl<T> !UnwindSafe for Type2And3ConvertToFft<T>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more