[][src]Trait rustdct::mdct::MDCT

pub trait MDCT<T: DCTnum>: Length {
    fn process_mdct_split(&self, input_a: &[T], input_b: &[T], output: &mut [T]);
fn process_imdct_split(
        &self,
        input: &[T],
        output_a: &mut [T],
        output_b: &mut [T]
    ); fn process_mdct(&self, input: &[T], output: &mut [T]) { ... }
fn process_imdct(&self, input: &[T], output: &mut [T]) { ... } }

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]
)

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.

Loading content...

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.

Loading content...

Implementors

impl<T: DCTnum> MDCT<T> for MDCTNaive<T>
[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]

fn process_mdct(&self, input: &[T], output: &mut [T])
[src]

fn process_imdct(&self, input: &[T], output: &mut [T])
[src]

Loading content...