PackageTrack
Sign in Get early access

rustdct

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

0.7.1 6.4M downloads/mo #3978 most downloaded on crates.io ejmahler/rust_dct

What this package is like to depend on

Last release 4 years ago

no release in 18 months

Release timing varies

gaps range from 4 weeks to 1.7 years

Some releases are documented

notes for 6 of 12 stable releases

1 version withdrawn

withdrawn after publishing

9 years old

13 releases · first in 2017

0 releases in the last 12 months

see the full history below

Release timeline

13 releases · May 2017 to Nov 2022
2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 13
  1. 0.7.1 08 Nov 2022
    Release notes
    • Upgraded Rand to 0.8
    • Small style improvements to unsafe blocks
    Open source →
  2. 0.7.0 29 Dec 2021

    Nothing published for this version

  3. 0.6.0 05 Jan 2021

    Nothing published for this version

  4. 0.5.1 02 Jan 2021
    Release notes
    • Added a blanket impl for the DCTnum trait, making it easier to use arbitrary numeric types.
    Open source →
  5. 0.5.0 09 Oct 2020
    Release notes
    • Upgraded rustfft version from 3 to 4
    • Fixed warning spam from missing dyn keyword
    Open source →
  6. 0.4.0 22 Jan 2019
    Release notes
    • Renamed Type2and3 to TransformType2And3
    • Renamed Type4 to TransformType4
    • Upgraded rustfft version from ^2.1 to ^3
    • Added a size-3 butterfly for TransformType2And3
    Open source →
  7. 0.3.0 06 Aug 2018
    Release notes
    • Merged each DCT2 and DCT3 algorithm into a single struct that implements both both DCT2 and DCT3 traits, and created a "Type2And3" trait to encompass both. They both require the same precomputed data, so we can save memory and setup time by computing both fro mthe same trait.
    • Also implemented DST2 and DST3 on the Type2And3 trait -- so a single call to "plan_dct2" or "plan_dct3" etc will let you compute a DCT2, DST3, DCT3, DST3 all from the same instance.
    • DCT Type 4 instances can also compute DST Type 4. They implement the "Type4" trait, which includes both DCT4, and DST4.
    • Merged MDCT and IMDCT into the same trait
    • All of the above are breaking changes that will be very relevant to you if you're referring to specific algorithms or writing your own, but if you're just calling "plan_dct4" or etc, not much should be different.
    • Added a DST1 trait and added naive and FFT implementations
    • Added DST2, DST3, DST4 traits, and O(nlogn) implementations for each
    Open source →
  8. 0.2.1 19 Mar 2018
    Release notes
    • Removed the pub keyword from some methods on the DCTplanner that should not have been public
    Open source →
  9. 0.2.0 19 Mar 2018 withdrawn
    Release notes
    • All of the DCT#ViaFFT algorithms now allocate a Vec for internal scratch space, rather than using a member variable, allowing them to be immutable.
    • [Breaking Change] The process method of all DCT traits take &self instead of &mut self
    • [Breaking Change] Because all DCT instances are now immutable, all DCT instances that depend on other DCT instances take Arc pointers instead of Box pointers
    • [Breaking Change] Because all DCT instances are now immutable, the DCT planner now creates and stores Arc pointers to DCT instances instead of Box, and has a cache of algorithm instances for each DCT type
    • Implemented a "split radix" algorithm for DCT2 and DCT3 that processes power-of-two DCTs much faster than converting them to FFTs
    • Used the split radix alogirthm to derive several hardcoded "butterfly" algorithms for small DCT2 and DCT3 sizes (specifically, sizes 2,4,8,16)
    • [Breaking Change] Deleted the obsolete DCT4ViaFFT algorithm. For odd sizes, use DCT4ViaFFTOdd instead. For even sizes, use DCT4ViaDCT3. Both are considerably faster and use considerably less memory in all scenarios.
    • Lots of style improvements
    Open source →
  10. 0.1.3 28 Jun 2017

    Nothing published for this version

  11. 0.1.2 22 Jun 2017

    Nothing published for this version

  12. 0.1.1 24 May 2017

    Nothing published for this version

  13. 0.1.0 24 May 2017

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive