[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