Comments (5)
I'd be happy to implement those two. The only reason I haven't so far is lack of information on how. Wikipedia and other easily available sources only have definitions for the simplest case, which is what I've implemented. If you have some resources on how to implement arbitrary overlap/stride I'd gladly look into it.
from rust_dct.
I've done a little bit of research and it seems the stride
is something connected to a rotation, which is specific to opus, and probably done in the same function for performance reasons... I guess its not the full rotation but only some preliminary stuff but I need to consult the function more closely.
Overlap seems to be that it only overlaps the ends of two windows, and not up to the half or something. I also think that opus may have windows with different sizes following each other.
from rust_dct.
After reading, I don't think the rotation is related to stride. I think the rotation happens earlier on, before the IMDCT is involved. In section 4.3.7 a few pages down, it says this:
The inverse MDCT implementation has no special characteristics. The
input is N frequency-domain samples and the output is 2*N time-domain
samples, while scaling by 1/2.
Aside from the scale factor of 1/2, the MDCT library in this crate does exactly what the paper describes.
from rust_dct.
Closing this due to inactivity. If you think there's still something to be done here, feel free to open a new issue
from rust_dct.
Sure! I've more or less stopped working on the library anyway, and am waiting for someone else to have finished an opus library.
from rust_dct.
Related Issues (9)
- Multidimensional DCTs HOT 4
- Update `rustfft` version HOT 1
- Add `Send + Sync` bounds to trait objects
- Document normalization HOT 1
- 2D dct and inverse dct for normals integration HOT 6
- Accept oversize scratch slices HOT 2
- Update to latest rand HOT 2
- Advice on how to substitute manual loops with this library HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rust_dct.