Genesi Home Home Projects Forums
Login
Username:

Password:

Remember Me
 
[Register an Account]

Developer Programs
i.MX515
Power2People MPC8610

Efika 5200B

Search Projects

Google

Sponsored By



Efika 5200B Project
Reggae on Efika

in category Multimedia
proposed by Grzegorz Kraszewski on 21st February 2006 (accepted on 20th March 2006)

Blog Entry

  MS ADPCM decoder optimized a bit
posted by Grzegorz Kraszewski on 12th April 2007

I've written an optimized mono and stereo decoders for MicroSoft ADPCM compression. I've also implemented some optimizations in multichannel routine, for example 'if'-less nibble sign extending (an idea from Bit Twiddling Hacks. Here are the benchmark results obtained with profiler:

Multichannel procedure: mono stream - 1.73 seconds, stereo stream - 3.35 seconds.
Dedicated procedures: mono stream - 1.27 seconds, stereo stream 1.89 seconds.

And in megasamples per second:

Multichannel procedure: mono stream - 11.56 Ms/s, stereo stream - 11.94 Ms/s.
Dedicated procedures: mono stream - 15.75 Ms/s, stereo stream - 21.16 Ms/s

All results are times of decompressing 20 000 000 sample frames (that is why stereo times are longer, 2 samples per frame) in 20 runs of 1 000 000 frames of typical dance music ;-) on Pegasos 2/G4 (1.0 GHz).

Now I have a wild idea of AltiVec acceleration of this. Linear prediction operations are hard to vectorize (because of difficulties with paralellizing feedback loops with integer arithmetic), but well, there are no cross-block dependencies, so why not decompressing 8 blocks at once? They are short anyway (up to 2 kB of compressed data), and AltiVec adds things like hardware-based saturation for free. The same principle may be applied to IMA-ADPCM. I guess I will extend my BlockDecoder class with such a possibility.

PowerDeveloper.org: Copyright © 2004-2010, Genesi USA, Inc. The Power Architecture and Power.org wordmarks and the Power and Power.org logos and related marks are trademarks and service marks licensed by Power.org. All other names and trademarks used are property of their respective owners. Privacy Policy