[vorbis-dev] vorbis on playstation 2

David Etherton etherton at rockstarsandiego.com
Fri Feb 7 12:36:24 PST 2003

Just noticed another optimization in mdct_bitreverse after seeing bitrev12
show up with a lot of profiler hits.

The two loops in that function do this:

        DATA_TYPE r3 = bitrev12(bit++);

twice per iteration of the loop.  But since bit starts off at zero and is
incremented twice per iteration, we can instead do:

        DATA_TYPE bitrev = bitrev12(bit);
        DATA_TYPE r3 = bitrev;

        bit += 3;

and later

        r3 = bitrev ^ 0x800;

Making this change produced the same output, but 744M cycles went down to
738M.  Not that much, but it wasn't much work either.  Next I'm going to try
making bitrev12 work off of a 64-element lut  to get rid of some bitwork.


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