[Flac-dev] Altivec Optimizations

Brady Patterson brady at spaceship.com
Tue Apr 29 13:17:04 PDT 2003

On Sun, 27 Apr 2003, Josh Coalson wrote:
> An asm version of FLAC__lpc_restore_signal_asm should also give
> a pretty good bang for the buck on the decoding side.

I've got a working one. It's giving me about a 12% speedup. Considering that
it only works on <=16 bps blocks (meaning, from CD audio, blocks that aren't
mid-side encoded), and FLAC__lpc_restore_signal() only takes about 25% of the
process time, that may be about as good as it gets, but I'm not completely
done analyzing it (nor have I done any configuration work for it).

I may try to write a version which works for 17-32 bps, but I don't think it
can be nearly as efficient as the 1-16 version.

Also, FLAC__MD5Accumulate() and maybe MD5Transform() look highly parallelizable
(more so than FLAC__lpc_restore_signal() in fact), and they combine for about
20% of the process time, so I may work on Altivec versions for them.

The other time-consuming function is FLAC__bitbuffer_read_rice_signed_block(),
which I will not be attempting. :)

Brady Patterson (brady at spaceship.com)
Do you know Old Kentucky Shark?

More information about the Flac-dev mailing list