Subject: [AVT] Interworking between different flavors of G729 coder/decoders?

From: "Mohsen Soroush-nejad" <[email-masked]>
Date: Wed, 9 Jan 2002 16:10:52 -0800

I'm kind of new to this, but how do different flavors of G729 interwork?
I know G729 and G729A coder/decoders work fine.
What about G729A and G729AB? or G729A and G729B?

Is there any guidelines on what works and what doesn't?

Thanks,
MS

_______________________________________________
Audio/Video Transport Working Group
[email-masked]
http://www1.ietf.org/mailman/listinfo/avt

---

From: Simão Campos-Neto <[email-masked]>
Date: Thu, 10 Jan 2002 11:24:54 -0500

Mohsen,

As you mentioned, G.729 'main body' ("G.729") and G.729 Annex A
("G.729A") work fine because they share the same bitstream (and operate
at 8 kbit/s). The difference between them is that G.729 has higher
complexity and better quality and G.729A is a simplification of G.729,
yelding lower complexity at a slightly reduced quality. In some
conditions, however, performance would be imperceptible, while in others
it would be noticeable. 

G.729 Annex B defines the silence removal optimized for the G.729
algorithm, so it uses a different payload than the G.729/G.729A 'mode'. 

G.729 also has other operating bit rates ('modes'). One is at 6.4 kbit/s
(G.729 Annex D) and the other is at 11.8 kbit/s (G.729 Annex E). If
silence removal at these rates is intended, then the mechanism in G.729
Annexes F and G, respectively for 6.4 and 11.8 kbit/s, should be used.
The silence removal payload is the same as for Annex B, the difference
resides in the algorithm to calculate the parameters that go into the
payload.

Maybe the least confusing way to view G.729 is to think of it as having
4 operating modes: 6.4, 8, and 11.8 kbit/s; and the silence removal (aka
VAD/CNI) mode. (please note, again, that eventhough the treatment of the
signal to arrive at the 8 kbit/s bitstream is different inside the G.729
and G.729A, the bits seen on the wire are indistinguishable). So RTP
needs to be concerned with 4 payload types for the whole G.729 standard:
G729-6.4, G729, G729-12.2, and G729-SID (the VAD/CNI mode one).

In terms of interoperability, for the 'G729B' (I presume, G.729 plus
VAD/CNI operation) and 'G729AB' (I presume, G.729A plus VAD/CNI
operation), there is no interoperability problem because the 8 kbit/s
bitstream is understood the same by G.729 and G.729A, and both ends
support the VAD/CNi operation of G.728 Annex B.

Let's take the example of one end operating in "G729A" [1] mode and
another end operating "G729AB" [2]; the continuous stream from [1] to
[2] will work OK, but the discontinuous stream from [2] to [1] (since
silence removal will be in operation), plus some "unrecognized" packets
(the SID packets -- which would be discarded), would be seen as lost /
misdelivered packets by the decoder at [1]. I presume that the
connection will still work, but the quality will be greatly impacted, in
particular around the voiced/unvoiced (ie silence/non-silence)
transitions. Similar problem will happen for [1] as 'G729A' and [2] as
'G729B'.

I hope this clarification helps.

Simão Campos-Neto
--

-- 
========================================================================
Simão Ferraz de Campos Neto, Scientist *All comments strictly my own*
LMGT/COMSAT                            Tel:    +1-301-428-4516
22300 Comsat Drive                     Fax:    +1-301-428-9287
Clarksburg MD 20871 - USA           E-mail: [email-masked]
========================================================================
  ****** Practice random kindness and senseless acts of beauty ******
========================================================================

---

From: Simão Campos-Neto <[email-masked]>
Date: Thu, 10 Jan 2002 11:39:51 -0500

Sorry, I meant "G.729 Annex B", not "G.728 Annex B".

Simão Campos-Neto wrote:
> ...
                                   ^^^^^^^^^^^^^^
> ...