Re: [codec] #19: How large is the frame size depended delay / the serialization delay / frame size depended processing delay?

"codec issue tracker" <trac@tools.ietf.org> Mon, 24 May 2010 14:22 UTC

Return-Path: <trac@tools.ietf.org>
X-Original-To: codec@core3.amsl.com
Delivered-To: codec@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7AF2F3A6D5A for <codec@core3.amsl.com>; Mon, 24 May 2010 07:22:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -99.894
X-Spam-Level:
X-Spam-Status: No, score=-99.894 tagged_above=-999 required=5 tests=[AWL=-2.194, BAYES_50=0.001, MANGLED_WRLDWD=2.3, NO_RELAYS=-0.001, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HgElp6sLIA74 for <codec@core3.amsl.com>; Mon, 24 May 2010 07:22:20 -0700 (PDT)
Received: from zinfandel.tools.ietf.org (unknown [IPv6:2001:1890:1112:1::2a]) by core3.amsl.com (Postfix) with ESMTP id 17A843A6944 for <codec@ietf.org>; Mon, 24 May 2010 07:21:58 -0700 (PDT)
Received: from localhost ([::1] helo=zinfandel.tools.ietf.org) by zinfandel.tools.ietf.org with esmtp (Exim 4.71) (envelope-from <trac@tools.ietf.org>) id 1OGYXO-00041N-OB; Mon, 24 May 2010 07:21:50 -0700
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: codec issue tracker <trac@tools.ietf.org>
X-Trac-Version: 0.11.7
Precedence: bulk
Auto-Submitted: auto-generated
X-Mailer: Trac 0.11.7, by Edgewall Software
To: hoene@uni-tuebingen.de
X-Trac-Project: codec
Date: Mon, 24 May 2010 14:21:50 -0000
X-URL: http://tools.ietf.org/codec/
X-Trac-Ticket-URL: http://trac.tools.ietf.org/wg/codec/trac/ticket/19#comment:4
Message-ID: <071.9ea7ae626659c7d13ac94a0416b13f7b@tools.ietf.org>
References: <062.f8b0d2abf056a9655a81ee25366bb354@tools.ietf.org>
X-Trac-Ticket-ID: 19
In-Reply-To: <062.f8b0d2abf056a9655a81ee25366bb354@tools.ietf.org>
X-SA-Exim-Connect-IP: ::1
X-SA-Exim-Rcpt-To: hoene@uni-tuebingen.de, codec@ietf.org
X-SA-Exim-Mail-From: trac@tools.ietf.org
X-SA-Exim-Scanned: No (on zinfandel.tools.ietf.org); SAEximRunCond expanded to false
Cc: codec@ietf.org
Subject: Re: [codec] #19: How large is the frame size depended delay / the serialization delay / frame size depended processing delay?
X-BeenThere: codec@ietf.org
X-Mailman-Version: 2.1.9
Reply-To: codec@ietf.org
List-Id: Codec WG <codec.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/codec>, <mailto:codec-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/codec>
List-Post: <mailto:codec@ietf.org>
List-Help: <mailto:codec-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/codec>, <mailto:codec-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 24 May 2010 14:22:31 -0000

#19: How large is the frame size depended delay / the serialization delay /
frame size depended processing delay?
------------------------------------+---------------------------------------
 Reporter:  hoene@…                 |       Owner:     
     Type:  enhancement             |      Status:  new
 Priority:  minor                   |   Milestone:     
Component:  requirements            |     Version:     
 Severity:  -                       |    Keywords:     
------------------------------------+---------------------------------------

Comment(by hoene@…):

 [Cullen]:
 This does not match the measurements I have. And I certainly don't have
 100+ year voip experience but I do have two of the #1 selling enterprise
 phones connected to an oscilloscope. Test with other phones suggest most
 the major vendors of IP hard phones have fairly comparable performance
 when it comes to delay.

 [Raymond]:
 Hmm... That's interesting.  Would you please share more details of your
 measurement equipment setup, the codec used, the codec frame size, the
 number of codec frames in each packet, the way you measured the delay, and
 the measured delay value, etc.?

 [Cullen]:
 Sure - it's really simple to set up. I use a signal generator that makes a
 tone burst. Typically I do something like 550 Hz tone that is a 200 ms
 long burst that occurs once a second. I play this into a speaker near the
 microphone on one phone and also put it into 1 channel of a scope.  I
 think put a microphone near the speaker of the other phone and put that on
 another channel of the scope and measure the mouth to ear delay. It's
 really easy to see the starts of the two bursts from the speaker and
 microphone and measure the delay within a few ms. I've done lots of clever
 things over the years using stats from software in the phones but this
 technique is easy and pretty fool proof on getting good results. The
 phones were plugged into Netgear 100Mbps hub as I sometimes look at the
 timing of the ethernet packets too. I set up phones for G.711, one frame
 per packet - I choose this as  it is easy to change the length of each
 frame but results are similar with other codecs.

 I was using two Cisco 7960 phones - no idea what version of the software
 and may have been a development build but it's pretty unlikely that
 current production software would have different results from what I
 tested. I set the phones for G.711 with 20 ms packets, measured delay,
 then set the phones for 30 ms packets and measured delay. For a given
 packet length, when I make multiple phone calls or reboot one of the
 phones, the measurements stay consistent.

 The resulting change in delay between the two experiments was much less
 than 30ms that a (3x 30 ms - 3 x 20 ms) would have predicted. I feel like
 a total tool not providing the details of the exact measurements but lots
 of measurements like this Cisco considers confidential and I'm just not up
 to arguing with folks about what can and can not be said publicly. I
 probably should have done a test with 10 ms packets too but I did not. Yes
 I realize how nuts it is to consider something that anyone can easily
 measure as confidential. If anyone really cares, I will go do the work to
 be able to provide the numbers.


 [Raymond]:
 I didn't come up with this 3*(codec frame size) delay number for IP phones
 myself.  A very senior technical lead in Broadcom's IP phone chips group
 told me that, and Broadcom is currently the #1 world- wide market share
 leader in IP phone chips, accounting for more than half of the world's IP
 phone chip shipments. Most of the world's
 tier-1 IP phone manufacturers use our IP phone chips at least in some of
 their product lines.

 In my original email discussion of VoIP gateways, I did not use the phrase
 "ultra-low delay".  What I did say was that due to the large number of
 voice channels that the DSPs and the (possibly two layers of) micro-
 controllers have to handle simultaneously, the timing/scheduling can be
 quite complex, and the necessary buffering at the (possibly
 three) hierarchical layers of processors can add substantial delay.
 Therefore, the worst-case codec-dependent one-way delay may be up to 5X to
 6X the codec frame size before delay optimization, and even after the
 engineers "optimize the delay to death", they could only manage to get the
 worst-case codec-dependent delay down to around 3X codec frame size.

 Again, I didn't come up with that myself.  A senior technical guy who was
 deeply involved in high-density VoIP gateway designs told me that, and
 another technical guy who worked at a different company than the first guy
 and who was involved in the design of a different VoIP gateway based on a
 different DSP chip and a different system architecture independently gave
 me a range of codec-dependent one-way delay around 3X codec frame size,
 and he didn't know that I talked to the first guy.

 Due to this 3X multiplier, an increase in the codec frame size will have a
 larger delay impact in VoIP gateways than, say, a softphone that has a
 lower multiplier.

 [Koen]:
 Still:
 - You've presented no satisfactory explanation for your theory
 - Nor any verifiable empirical evidence
 - It comes from an anonymous source
 - It has changed over time (going from 5x to 3x)
 - It goes against accepted wisdom

 [Christian]:

 some recent studies on the speech quality of gateways and IP phones are
 present in http://www.head-
 acoustics.de/telecomfiles/5th_ETSI_SQTE_Anonymous_Test_Report.doc
 Please have a look at the document first...

 At the first glance, I did see evidence for the 3x factor for IP gateways.
 The best in class at a 40.4 ms one-way delay for G.711 (20ms packets) and
 a 54.3 ms delay for G.729 (20ms packets) referring to Tables 4.1 and 4.2.
 The algorithmic delay of G.729 is 15ms (5ms lookahead).  Thus, the
 algorithmic delay was 20ms for G.711 (plus an unknown delay of PLC) and
 25ms for G.729. Thus, a factor of 3 seems to be valid (5msx2,9=53,3-40,4)

 [Mikael]:
 One-way delay of 40.4ms for G.711 sounds like 20ms for packet size and
 20ms for jitter buffer. I wouldn't call that "algorithmic delay", that's
 packet and jitter buffer delay, "algorithmic delay" for G.711 should be
 "zero" or am I getting the concepts wrong (since it doesn't do any
 compression).

 [Roman]: This is a great discussion, but I don't see how it is relevant.
 If the question is should the new CODEC support 5 ms frames, then the
 answer is probably yes. If there a compelling reason (like achieving
 better quality or having algorithm delay that makes this irrelevant) we
 might agree to a bigger minimum frame size. If the question is if the
 CODEC should support 20ms and bigger compound frames, then the answer is
 absolutely yes. There are use cases for both. I guess, the only question
 for me, is if in case of 5 ms frames we care about compression. The packet
 header overhead is fairly big that you might use PCMU in this case.

 P.S. From what I know about soft phones the delay component dependent on
 frame size is 1x. There are other delay components, but they are not frame
 size dependent.

 [Stephen]:
 Total algorithmic delay for G.711 should be no more than .125 ms, total
 algorithmic delay for G.729 is 20 ms (15 ms per frame and 5 ms look-
 ahead).  References are here:
 http://en.wikipedia.org/wiki/G.711
 http://en.wikipedia.org/wiki/G.729

 [Frank Kettler]
 We did not explicitly verify the relation between algorithmic delay and
 the measured delay, because all manufactures typically built "something
 around". We tested "end products" (gateways, IP phones, ...) and there
 might always be some internal overhead compared to pure coders...

 [Raymond]:
 I agree with Roman that this 1X versus 3X debate has reached a point that
 it is almost irrelevant.  What's really relevant now is the question of
 whether the IETF codec should have a low-delay mode with a codec frame
 size of 5 to 10 ms, and for that question you previously wrote on May 6:

 CONSENSUS: No further discussions and clarifications on this issues.

-- 
Ticket URL: <http://trac.tools.ietf.org/wg/codec/trac/ticket/19#comment:4>
codec <http://tools.ietf.org/codec/>