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 2022Releases
latest 13-
0.7.108 Nov 2022 -
0.7.029 Dec 2021Nothing published for this version
-
0.6.005 Jan 2021Nothing published for this version
-
0.5.102 Jan 2021Release notes
Open source →- Added a blanket impl for the DCTnum trait, making it easier to use arbitrary numeric types.
-
0.5.009 Oct 2020Release notes
Open source →- Upgraded rustfft version from 3 to 4
- Fixed warning spam from missing
dynkeyword
-
0.4.022 Jan 2019Release notes
Open source →- Renamed
Type2and3toTransformType2And3 - Renamed
Type4toTransformType4 - Upgraded rustfft version from ^2.1 to ^3
- Added a size-3 butterfly for TransformType2And3
- Renamed
-
0.3.006 Aug 2018Release notes
Open source →- 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
-
0.2.119 Mar 2018Release notes
Open source →- Removed the
pubkeyword from some methods on theDCTplannerthat should not have been public
- Removed the
-
0.2.019 Mar 2018 withdrawnRelease notes
Open source →- All of the
DCT#ViaFFTalgorithms now allocate a Vec for internal scratch space, rather than using a member variable, allowing them to be immutable. - [Breaking Change] The
processmethod of all DCT traits take&selfinstead of&mut self - [Breaking Change] Because all DCT instances are now immutable, all DCT instances that depend on other DCT instances take
Arcpointers instead ofBoxpointers - [Breaking Change] Because all DCT instances are now immutable, the DCT planner now creates and stores
Arcpointers to DCT instances instead ofBox, 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
DCT4ViaFFTalgorithm. For odd sizes, useDCT4ViaFFTOddinstead. For even sizes, useDCT4ViaDCT3. Both are considerably faster and use considerably less memory in all scenarios. - Lots of style improvements
- All of the
-
0.1.328 Jun 2017Nothing published for this version
-
0.1.222 Jun 2017Nothing published for this version
-
0.1.124 May 2017Nothing published for this version
-
0.1.024 May 2017Nothing published for this version