Intel® Integrated Performance Primitives
Community support and discussions relating to developing high-performance vision, signal, security, and storage applications.
6633 Discussions

What is the right way to choose the correct G729 encoder/decoder in a VoIP call?

Hi, i created a voip application that use IPP usc functions and among other codecs i have to deal with G729 as well. From what i gathered from documentation i can choose between USC_G729A_Fxns and USC_G729I_Fxns; the first should be related to G729 and G729 AnnexA, while the latter to all other G729 Annexes. Now, from RFCs, a SIP phone that announce G729 without other parameters should be ready to deal with AnnexB (so USC_G729I_Fxns should be used) but i have tested more than one SIP phone that announce no AnnexB=no parameter and its internal config shows it uses "G729A/B": if i use USC_G729I_Fxns i hear just garbage, if i use the other i can hear correctly.
All in all i have not been able to find a single phone that i was able to configure in order to code speech so that i could use USC_G729I_Fxns to decode it.
Can anyone shed a bit of light on this subject?

0 Kudos
1 Reply
New Contributor II


USC support twofixed-point G729 codecs: USC_G729A_Fxns (G729A =reduced-complexity G729 fixedrate 8000) and USC_G729I_Fxns (G729/D/E with 8000, 6400 and 11800 multi-rate mode). Both codecs optionally supports Annex B (VAD/DTX).

This is in accordance withUSC G729 readme file (.\speech-codecs\codec\speech\g729i\readme.htm):

Linkage: USC_G729A_Fxns
Standard: ITU-T G.729 Annexes A, B

Linkage: USC_G729I_Fxns
Standard: ITU-T G.729, Annexes B, C, C+, D, E, I

You may also want to look at our umc_speech_rtp_codec sampledemonstrating how to use USCforRTP encode/decode.

IPP Speech Codecs