[−][src]Trait rustdct::mdct::MDCT
An umbrella trait for algorithms which compute the Modified Discrete Cosine Transform (MDCT)
Required methods
fn process_mdct_split(&self, input_a: &[T], input_b: &[T], output: &mut [T])
Computes the MDCT on the input
buffer and places the result in the output
buffer.
Uses input_a
for the first half of the input, and input_b
for the second half of the input
To make overlapping array segments easier, this method DOES NOT modify the input buffer.
fn process_imdct_split(
&self,
input: &[T],
output_a: &mut [T],
output_b: &mut [T]
)
&self,
input: &[T],
output_a: &mut [T],
output_b: &mut [T]
)
Computes the IMDCT on the input
buffer and places the result in the output
buffer.
Puts the first half of the output in output_a
, and puts the first half of the output in output_b
.
Since the IMDCT is designed with overlapping output segments in mind, this method DOES NOT zero out the output buffer before writing like most other DCT algorithms. Instead, it sums the result of the IMDCT with what's already in the output buffer.
Provided methods
fn process_mdct(&self, input: &[T], output: &mut [T])
Computes the MDCT on the input
buffer and places the result in the output
buffer.
To make overlapping array segments easier, this method DOES NOT modify the input buffer.
fn process_imdct(&self, input: &[T], output: &mut [T])
Computes the IMDCT on the input
buffer and places the result in the output
buffer.
Since the IMDCT is designed with overlapping output segments in mind, this method DOES NOT zero out the output buffer before writing like most other DCT algorithms. Instead, it sums the result of the IMDCT with what's already in the output buffer.
Implementors
impl<T: DCTnum> MDCT<T> for MDCTNaive<T>
[src]
impl<T: DCTnum> MDCT<T> for MDCTNaive<T>
fn process_mdct_split(&self, input_a: &[T], input_b: &[T], output: &mut [T]) | [src] |
fn process_imdct_split( | [src] |
fn process_mdct(&self, input: &[T], output: &mut [T]) | [src] |
fn process_imdct(&self, input: &[T], output: &mut [T]) | [src] |
impl<T: DCTnum> MDCT<T> for MDCTViaDCT4<T>
[src]
impl<T: DCTnum> MDCT<T> for MDCTViaDCT4<T>
fn process_mdct_split(&self, input_a: &[T], input_b: &[T], output: &mut [T]) | [src] |
fn process_imdct_split( | [src] |
fn process_mdct(&self, input: &[T], output: &mut [T]) | [src] |
fn process_imdct(&self, input: &[T], output: &mut [T]) | [src] |