Speech Codecs Input/Output Summary

The table below shows codecs features:

Codec Frame Length Input Output
AMR GSM 06.90 20 ms 8 KHz, 16 bit, Mono Bitrates: 4750, 5150, 5900, 6700, 7400, 7950, 10200, 12200; a discontinuous transmission mode (DTX) available with 1750 bps non-speech frames
G.726 8 ms 8 KHz, 16 bit, Mono (a-law, μ-law native support possible) Bitrates: 16000, 24000, 32000, 40000

More Speech Codex

By the way, packaging more speech codecs into DMO interface is expected to come soon. With a certain luck it would go even farther to video coding…

To appear:

  • AMR-WB G.722.2
  • G.711
  • G.722
  • G.722.1
  • G.723.1
  • G.726
  • G.728
  • G.729
  • GSM 06.10


I would also need to make a summary table on input/output formats, bitrates etc.

Chances are that the following are also to be put into DMO:

  • Echo Canceller


The mix of the technologies works very well.

  • MS VC++.NET 2003, ATL, WTL – for development environment
  • MS DirectShow of DirectX 9 – for multimedia infrastructure
  • Intel Integrated Performance Primitives 5.0 – for standard code implementation base

All together – AMR GSM 06.90 Speech Codec DirectX Media Object (DMO) as shown below:

Alax.Info AMR Objects in GraphEdit
Runtime requirements include:

  • MS CRT runtime msvcr71.dll redistributable
  • Intel IPP 5 redistributables, including:
    • at the very least – libguide40.dll, ippcore.dll, ipps.dll, ippsc.dll
    • one or more per processor type sets, eg. – ippspx.dll, ippscpx.dll

AMR Speech DMO

So, DirectX Media Objects (DMO) appeared to be a nice interface to extend DirectShow functionality. I could quite easily create encoder/decoder pair of DMOs for AMR speech coding (GSM 06.90). Reasonable ease and development speed. I will probably even prepare an informational version and put here on website. It is likely to contain forced silence intevals because it’s a licensed stuff and can’t be distributed freely.

Serious Software + Serious Hardware = ?

= Serious Problems
A customer, a very loyal one, I must admit, installed several multichannel digital video recorders. He reported a few problems and more or less quickly we fixed all nut one. Serious system fails about one per 1-2 days and noone can tell the reason. Logs don’t show problems, it may be fauly hardware too (enough cases known in past), any ways to come out of this are appreciated. I wish we could fix it, the customer is very good.