[vorbis-dev] Optimisations

Jason Hecker jason at air.net.au
Wed Nov 15 17:14:13 PST 2000



>Sure I'm interested :-) For optimizing the current all-C version, I 
>hand-unrolled
>a lot of the critical loops; this will come in handy for doing a vector-op

That's a very good start then!  I only recently discovered this OggVorbis 
thing and have yet to fully look at all the code.  One thing I have been 
wondering about is how  the data and calculations are done.  I have done 
assembly optimisation work with the TMS320C6201 DSP which is integer only 
(but damned fast!)  Does OggVorbis go off and do everything using single 
precision floating point?  How does this affect the truncation of viable 
bits after various multiplications (ie accuracy after a very big number is 
multiplied by a very small number)?  I attended a DSP workshop last year by 
the very funky Prof fred harris and he emphasised that there is no need for 
floating point (most of the time) in the DSP world simply because of the 
loss of precision you get with single precision (32 bit word) floats - to 
this effect I vaguely recall he showed how floating point IIR filters can 
break (details I forget but I think it had to do with precision 
errors).  With careful consideration to the bounds of your numbers you can 
do pretty much everything you need with 32 bit (bigger is better) integers 
and not loose precision.  After doing the TI DSP work I have to agree (it's 
48 bit accumulator was too flamin' small!).  I have to admit I am new to 
the world of audio compression but is much consideration given to the 
precision of floats and the issues involved with truncation - hence 
resulting quality of the compression?

>version. Note, that the filters and fast transforms are not the most 
>time-critical,
>however.

I guess, but they would be the easiest to implement first.  Apart from the 
x86 vector stuff, what other CPUs that OggVorbis runs on have SIMD 
operations that would need hand coding?

--- >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