[vorbis-dev] specbis, vorbis decoder from scratch

john at pslam.demon.co.uk john at pslam.demon.co.uk
Wed Mar 19 17:14:48 PST 2003



As promised a few weeks back, here's my implementation of the Vorbis
1.0 specification. This is all from scratch using the specification
only (well, a bit of double checking vs libvorbis where it had typos),
and runs integer-only after codec setup.

There's a long list of things which are incomplete and very
non-compliant (some listed in the README file). Mostly, I've settled
for non-compliant where I strongly disagree with the requirements of
the spec. I'll need to think about these some more (hopefully thinking
up some solutions) before I start arguments. I basically have a strong
dislike for the unbounded (or 2^256, which is near enough) magnitude
floating point residue vectors and the many problems that creates for
integer decoders. In the end I didn't bother and just used integers,
which turns out not to be a problem for anything generated by oggenc
1.0 (but would break with anything else).

There's a lot of really sucky algorithms in my implementation which
need removing because of their performance, memory usage, or accuracy
- but completeness and correctness is my priority to start with. It's
running real time at about 100MHz of Athlon, and that's good enough to
start with. I'd like to cram it into something a lot smaller like
50MHz of ARM eventually, but that'll involve way more than just brute
force optimisation.

Anyway, it's GPL (for now) and it can be found at:

http://www.pslam.demon.co.uk/specbis-2003-03-20.tar.bz2

Enjoy - any comments are very welcome. Yes, the name sucks.


-- 
John Ripley
http://www.pslam.demon.co.uk
--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.




More information about the Vorbis-dev mailing list