#dct #transform #discrete #cosine #encoding #discrete-cosine-transform #mdct

rustdct

Compute Discrete Cosine Transforms (DCT) of any size in O(nlogn) time, in pure Rust

12 releases (6 breaking)

0.7.1 Nov 8, 2022
0.7.0 Dec 29, 2021
0.6.0 Jan 5, 2021
0.5.0 Oct 9, 2020
0.1.3 Jun 28, 2017

#120 in Multimedia

Download history 6262/week @ 2025-02-03 5427/week @ 2025-02-10 6077/week @ 2025-02-17 6037/week @ 2025-02-24 5899/week @ 2025-03-03 7749/week @ 2025-03-10 5261/week @ 2025-03-17 7436/week @ 2025-03-24 6607/week @ 2025-03-31 7163/week @ 2025-04-07 6890/week @ 2025-04-14 7160/week @ 2025-04-21 6431/week @ 2025-04-28 59292/week @ 2025-05-05 69200/week @ 2025-05-12 67009/week @ 2025-05-19

202,978 downloads per month
Used in 62 crates (17 directly)

MIT/Apache

205KB
4K SLoC

RustDCT

minimum rustc 1.37

RustDCT is a pure-Rust signal processing library that computes the most common Discrete Cosine Transforms:

  • Discrete Cosine Transform (DCT) Types 1, 2, 3, 4
  • Discrete Sine Transform (DST) Types 1, 2, 3, 4
  • Modified Discrete Cosine Transform (MDCT)

Example

// Compute a DCT Type 2 of size 1234
use rustdct::DctPlanner;

let mut planner = DctPlanner::new();
let mut dct = planner.plan_dct2(1234);

let mut buffer = vec![0f32; 1234];

dct.process_dct2(&mut buffer);

Compatibility

The rustdct crate requires rustc 1.37 or greater.

Releases

Release notes are available in RELEASES.md.

Dependencies

~3MB
~52K SLoC

OSZAR »