Digium G.729 codec module updated and new performance testing tool released

kpfleming February 6th, 2009

We are pleased to announce a major new release of the Digium G.729 codec module for Asterisk. This release incorporates a number of changes, and in addition, includes a new performance testing tool which will make it easier for users to choose the best ‘flavor’ of the module for the particular system they are installing it on.

The changes are:

- Version Numbering

The module’s version numbering is now more in line with our other products; the numbers will be in the form ‘X.Y.Z_A.B.C’, with the ‘X.Y.Z’ component representing the version of Asterisk the module is intended to operate in, and the ‘A.B.C’ component representing the actual version of the codec module code itself. Please note that the 1.6.0 modules will work in any Asterisk 1.6 release from 1.6.0 onwards, until such time as a new version is needed; when that occurs, we will provide 1.6.0 modules *and* modules designed for the later releases.

- Optimization

The new modules were built using the latest (4.3) release of the GNU C compiler, and use a number of new optimization methods available in that release to significantly improve encoding/decoding performance. In addition, we now build the modules in both 32-bit and 64-bit varieties for each CPU flavor that support both modes, so that users with 64-bit CPUs running a 32-bit Linux installation can still have a version of the module optimized for their CPU type. GCC 4.3 also provides optimizations for some newer CPU families (Intel Core2, AMD Barcelona, and others), so we’ve made those flavors available with this release.

- Performance Testing

In the past, we’ve offered different CPU flavors of the module to hopefully provide the best encoding/decoding performance, but it was up to the user to install and test each flavor to determine which one provided the best performance. This process is difficult and time consuming, and did not always provide reliable results. To help with this situation, we’ve now released a tool called ‘benchg729′, which can be run on the target system and will execute encoding speed tests (using a real audio sample) for each CPU flavor that we offer for that platform, and then report the results and suggest the best performing module flavor for that system. Note that the use of this tool requires that the system have at least one valid channel license for the Digium
G.729 codec installed; it will not run without a license.

The new codec modules and benchg729 tool are now available at:

http://downloads.digium.com/pub/telephony/codec_g729

New codec modules are available for Asterisk 1.2, Asterisk 1.4 and Asterisk 1.6.x on both x86-32 and x86-64 Linux platforms, and the benchg729 tool is also available for x86-32 and x86-64 Linux platforms.

We hope these product updates improve your system performance, and as always, we thank you for supporting Asterisk and using Digium products!

4 Responses to “Digium G.729 codec module updated and new performance testing tool released”

  1. Ian Plainon 07 Feb 2009 at 5:09 am

    Hi This is great, but it seems the test tool has a few issues.

    see debug below.

    [root@cypbx src]# ./benchg729-1.0.2
    benchg729 version 1.0.2

    Use the ‘-l’ option to see license information for software
    included in this program.

    Running tests over 60 seconds of test data.
    Test run 1 for flavor ‘i686′ completed in 1452 milliseconds.
    Test run 2 for flavor ‘i686′ completed in 1454 milliseconds.
    Test run 3 for flavor ‘i686′ completed in 1446 milliseconds.
    Test run 4 for flavor ‘i686′ completed in 1444 milliseconds.
    Test run 5 for flavor ‘i686′ completed in 1452 milliseconds.
    Test run 1 for flavor ‘pentium3m’ completed in 1298 milliseconds.
    Test run 2 for flavor ‘pentium3m’ completed in 1302 milliseconds.
    Test run 3 for flavor ‘pentium3m’ completed in 1301 milliseconds.
    Test run 4 for flavor ‘pentium3m’ completed in 1299 milliseconds.
    Test run 5 for flavor ‘pentium3m’ completed in 1304 milliseconds.
    Illegal instructiond run for flavor ‘pentium-m’…

    this is on a centos box with a 2.6.9-34.0.1.ELsmp kernel and dual p3

    Ian

  2. [...] allows users to validate each flavor of the module against their chosen platform.According to the news release, the new modules were built with version 4.3 of the GNU C compiler to improve and enhance the [...]

  3. Jason Parkeron 11 Feb 2009 at 2:31 pm

    Kevin didn’t mention this, but the new G.729 codec modules are also available on systems running AsteriskNOW 1.5 beta. If you have the existing modules installed, you can do a `yum update` to get the new ones, or `yum install codec_g729a` if you don’t.

    It won’t select the best optimization for your CPU yet, but that is something I plan on working on.

  4. Peter Retiefon 19 Feb 2009 at 3:28 am

    Does this resolve the bug where running a G.729 codec over IAX2 trunking can lead to 100% processor load?

Trackback URI | Comments RSS

Leave a Reply