02 Mar 2012, 19:55 UTC
G.729C is a high-quality low-bitrate codec for speech. It accepts 16-bit audio at 8,000Hz and compresses it to 8,000 bits per second (100 frames per second @ 10 bytes per frame).
I have an implementation of G.729C encode & decode which runs on Cell SPU. This code is based on the ITU reference implementation, but is almost a complete rewrite, to better suit the SPU. Almost every important function is SIMDified.
On a 1.6GHz SpursEngine chip with 4x SPU, the code is capable of 425 channels of simultaneous encode & decode, with a 5% headroom margin (450 channels without the headroom). Decode is 3x the speed of encode; the 425 channels is obtained using one SPU for decode and three for encode.
On a 3.2GHz Cell, the code can theoretically run 283 encodes per SPU, and 850 decodes per SPU. This is not tested, but in theory this means at least 1,132 simultaneous bidirectonal channels on a PS3 Cell with 6x active SPUs, and 1,700 simultaneous bidirectional channels on an IBM Cell with 8x active SPUs.
This code was produced by me for Howler Technologies, Ltd. and is now available for external licensing. Please contact me for details. Note that G.729 encoding requires a patent license which must be obtained separately.
Some interesting implementation details can be found here: