Re: [codec] #16: Multicast?

"Raymond (Juin-Hwey) Chen" <rchen@broadcom.com> Sat, 08 May 2010 00:34 UTC

Return-Path: <rchen@broadcom.com>
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 03E7D3A68CE for <codec@core3.amsl.com>; Fri, 7 May 2010 17:34:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.145
X-Spam-Level:
X-Spam-Status: No, score=-0.145 tagged_above=-999 required=5 tests=[AWL=-0.146, BAYES_50=0.001]
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 MJTqL7mdHypJ for <codec@core3.amsl.com>; Fri, 7 May 2010 17:34:02 -0700 (PDT)
Received: from mms1.broadcom.com (mms1.broadcom.com [216.31.210.17]) by core3.amsl.com (Postfix) with ESMTP id 783583A68B7 for <codec@ietf.org>; Fri, 7 May 2010 17:34:02 -0700 (PDT)
Received: from [10.9.200.133] by mms1.broadcom.com with ESMTP (Broadcom SMTP Relay (Email Firewall v6.3.2)); Fri, 07 May 2010 17:33:30 -0700
X-Server-Uuid: 02CED230-5797-4B57-9875-D5D2FEE4708A
Received: from IRVEXCHCCR01.corp.ad.broadcom.com ([10.252.49.31]) by IRVEXCHHUB02.corp.ad.broadcom.com ([10.9.200.133]) with mapi; Fri, 7 May 2010 17:34:53 -0700
From: "Raymond (Juin-Hwey) Chen" <rchen@broadcom.com>
To: Koen Vos <koen.vos@skype.net>
Date: Fri, 07 May 2010 17:33:25 -0700
Thread-Topic: [codec] #16: Multicast?
Thread-Index: AcruKWa39922CLfSSjmBR/Jq0XOlkAAE205A
Message-ID: <CB68DF4CFBEF4942881AD37AE1A7E8C74B90345CBB@IRVEXCHCCR01.corp.ad.broadcom.com>
References: <062.7439ee5d5fd36480e73548f37cb10207@tools.ietf.org> <4BD11C50.2020206@usherbrooke.ca> <CB68DF4CFBEF4942881AD37AE1A7E8C74AB3F4A270@IRVEXCHCCR01.corp.ad.broadcom.com> <12151537-165D-426A-B71F-8B3D76BE4854@cisco.com> <CB68DF4CFBEF4942881AD37AE1A7E8C74B901372FE@IRVEXCHCCR01.corp.ad.broadcom.com> <20100430230756.13687lc1s5o89gsc@mail.skype.net> <x2t6e9223711005010631kb53e8d5fmb680b34a43f13416@mail.gmail.com> <CB68DF4CFBEF4942881AD37AE1A7E8C74B90345538@IRVEXCHCCR01.corp.ad.broadcom.com> <p2z6e9223711005050406rdc5cd24at547fdd968c0ef78f@mail.gmail.com> <CB68DF4CFBEF4942881AD37AE1A7E8C74B9034592F@IRVEXCHCCR01.corp.ad.broadcom.com> <i2m6e9223711005061212tb35b02ag2d399a0ed449c19f@mail.gmail.com> <CB68DF4CFBEF4942881AD37AE1A7E8C74B90345A89@IRVEXCHCCR01.corp.ad.broadcom.com> <20100507140756.83037heeq3wiapf0@mail.skype.net>
In-Reply-To: <20100507140756.83037heeq3wiapf0@mail.skype.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-cr-hashedpuzzle: Bvww C3LY FHB7 F6rh F8ir GeOg IDWU LCt/ MPpY N9jQ On4g PeDw QUBn RJpv ULOO VU/Z; 2; YwBvAGQAZQBjAEAAaQBlAHQAZgAuAG8AcgBnADsAawBvAGUAbgAuAHYAbwBzAEAAcwBrAHkAcABlAC4AbgBlAHQA; Sosha1_v1; 7; {2CF06BC7-1070-45CA-8200-5225E8CD4F18}; cgBjAGgAZQBuAEAAYgByAG8AYQBkAGMAbwBtAC4AYwBvAG0A; Sat, 08 May 2010 00:33:25 GMT; UgBFADoAIABbAGMAbwBkAGUAYwBdACAAIwAxADYAOgAgAE0AdQBsAHQAaQBjAGEAcwB0AD8A
x-cr-puzzleid: {2CF06BC7-1070-45CA-8200-5225E8CD4F18}
acceptlanguage: en-US
MIME-Version: 1.0
X-WSS-ID: 67FA6ED020S117895762-01-01
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Cc: "codec@ietf.org" <codec@ietf.org>
Subject: Re: [codec] #16: Multicast?
X-BeenThere: codec@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
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: Sat, 08 May 2010 00:34:04 -0000

Hi Koen,

Ah, sorry, I should have been more specific and said that the codec buffering delay (frame size + look-ahead) does not get improved with Moore's Law.  Before my original sentence that you quoted below, I wrote "As Moore's Law improves technologies over time, the processing speed and communication speed improves with time,..."  From that context, it should be clear that with increased processing speed and communication speed, the time spent on processing and transmitting a codec frame would decrease with time.

However, your previous argument that the frame size multiplier is closer to 1X than 2X already assumes that the processing delay and transmission delay are essentially negligible (at least for computer IP phone calls according to you).  Therefore, you are not going to get much more help from Moore's Law for these two already small delay components. 

On the other hand, devices like VoIP gateways are already using very fast processors and connected to very fast networks, and yet the codec-dependent one-way delay are still around 3X codec frame size because of complicated timing issues and processor buffering needs due to the large number of voice channels competing for resources.  As Moore's Law makes the processor even faster, chances are each processor will handle even more voice channels, so although the time spent on processing each codec frame size will decrease (it is already fairly small), the scheduling/timing issue and the associated buffering needs probably will get even worse, so I am not convinced that the net result is that the codec-dependent delay will get much smaller than 3X codec frame size in the future.

In the email below, you said the average network roundtrip time is below 300 ms. You didn't say below 250 ms or below 200 ms, so I assume that it is just below 300 ms, which means that the one-way network delay is just below 150 ms. Is that correct?  Doesn't this totally depends on what packet size (or packet rate) you use and how much jitter buffer delay you allow?  

When I used some websites to test the Internet connection between my work location in Orange County, California to Los Angeles, I routinely get as low as 2 or 3 ms delay. Such a low network delay for close-by cities is what makes the live music performance over the Internet (the sixth application identified in the codec WG charter) possible, right?  If all Internet connections has close to 150 ms delay one-way, we might as well forget about all those applications that list low delay as required or highly desirable (which leaves only point-to-point calls as the only application).

BTW, I thought you once told me the one-way delay of a Skype call is about 200 ms (which probably makes sense if your one-way network delay is just below 150 ms).  If so, I am confused by your comment below that "Skype calls now have lower delay than mobile phone calls", since mobile phone calls typically have one-way delays of 80 to 110 ms.  Would you please explain this apparent contradiction?

Thanks.

Best Regards,

Raymond

-----Original Message-----
From: Koen Vos [mailto:koen.vos@skype.net] 
Sent: Friday, May 07, 2010 2:08 PM
To: Raymond (Juin-Hwey) Chen
Cc: codec@ietf.org
Subject: RE: [codec] #16: Multicast?

Hi Raymond,

> However, delay is one thing that doesn't get improved with Moore's  
> Law once a codec frame size is chosen and fixed.

You've said this before, and it's not true.  Moore's law has reduced  
the delay that users experience a lot:

1. Faster networks reduce transmission delays.  In Skype we've seen  
the average network roundtrip time during a call gradually go down  
from well over 500 ms in 2005 to below 300 ms today.  Skype calls now  
have lower delay than mobile phone calls.

2. Faster CPUs enable tighter scheduling of audio I/O. As a result,  
the buffering delay in the OS/driver has gone done over the years.

3. Faster CPUs mean less processing time delay.  For example, SILK in  
superwideband mode takes less than 10% of real-time on an iPhone.

best,
koen.



Quoting "Raymond (Juin-Hwey) Chen" <rchen@broadcom.com>:

> Hi Stephen,
>
> I agree with your points below. I had never said a 20 ms codec frame  
> size should not be used.  I agree and had previously said that there  
> are applications where that 20 ms frame size makes sense.  All I  
> have been arguing in the last couple of weeks was that there are  
> also application scenarios where a low-delay mode is needed, and  
> there are applications where low codec complexity is desirable or  
> even important.
>
> Even draft-ietf-codec-requirements-00 talks about a low-delay mode.   
> Although the codec WG charter says that "it is not the goal of  
> working group to produce more than one codec", it does acknowledge  
> that "based on the working group's analysis of the design space, the  
> working
> group might determine that it needs to produce more than one codec,  
> or a codec with multiple modes".  Thus, I believe that my proposal  
> to have multiple coding modes in the IETF codec (to address the  
> needs of low bit-rate, low delay, or low complexity in different  
> applications) is completely within the scope of the codec WG's  
> charter.
>
> One more comment about the coding delay issue.  When we compare VoIP  
> with traditional circuit-switched PSTN telephony, VoIP is better in  
> most aspects except one: it has substantially longer one-way delay  
> than PSTN telephony.  In this area of delay, PSTN still beats VoIP  
> by far.  As Moore's Law improves technologies over time, the  
> processing speed and communication speed improves with time, so the  
> codec complexity and encoding bit-rate are going to be less and less  
> of an issue as time goes.  However, delay is one thing that doesn't  
> get improved with Moore's Law once a codec frame size is chosen and  
> fixed.
>
> Therefore, if we take a long-term view and attempt to make VoIP  
> better than or at least not significantly worse than PSTN in all  
> aspects, then I believe that we should address the VoIP's long-delay  
> issue head-on with a low-delay mode in the IETF codec.
>
> Raymond
>
> From: stephen botzko [mailto:stephen.botzko@gmail.com]
> Sent: Thursday, May 06, 2010 12:12 PM
> To: Raymond (Juin-Hwey) Chen
> Cc: Koen Vos; codec@ietf.org
> Subject: Re: [codec] #16: Multicast?
>
> I basically agree with your points below.
>
> There are lots of tradeoffs in codec design, including this one.   
> Personally I think there is value in a moderate delay 20 ms frame  
> size, possibly augmented with a low-delay mode.  20 ms works quite  
> well for video conferencing, since the video frame rate is no faster  
> than 60 fps (about 15 ms per frame).
>
> Regards
> Stephen Botzko
>
>
>
>
> On Thu, May 6, 2010 at 3:03 PM, Raymond (Juin-Hwey) Chen  
> <rchen@broadcom.com<mailto:rchen@broadcom.com>> wrote:
> Hi Stephen,
>
> Sorry, I was too busy to respond yesterday.
>
> You wrote:
>> Generally the need to buffer the current frame is treated as part of the
>> algorithmic delay.  At least I believe that is what the ITU-T does.
>> So maybe we need a list of what all these components are?
> [Raymond]: Sure, my previous analysis was an attempt to do just  
> that, but perhaps my list was not complete enough.
>
>> I'd suggest keeping the gateway out of it for the first pass.
> [Raymond]: May I ask why?
>
>> I've worked with Gateways\MCUs where the packet size had to be increased
>> because packet loading in the product became too high.  Also, if you
>> have QOS features enabled in many routers, the routers themselves have
>> to start using a "software path", which creates a similar throughput
>> problem in the routers.  Too many packets per second can overwhelm these
>> devices, creating both capacity issues and excessive queuing delays.
>
> [Raymond]: OK, now I see what you meant when you said "it is totally  
> possible that reducing the frame size might actually increase the  
> latency". This is probably more likely to happen many years ago but  
> less of a problem now, as I was told by networking guys that  
> nowadays networking gears can handle 5 ms packets without problems.   
> In fact, the VoIP gateway I talked about, which has a 12 to 17 ms  
> codec-dependent one-way delay for a 5 ms frame/packet size, was done  
> 6 or 7 years ago.  Even back then the gateway can handle it without  
> problems.
>
>> I don't think the group has an agreed-upon model which names these
>> components consistently, and describes are appropriately in-scope and
>> which are out-of-scope.  Perhaps that is one reason why Koen is saying
>> multiplier the number is 1x.
>
>> Also, there are real-world negative consequences to higher packet rates,
>> and we have not yet considered them.
> [Raymond]: Yes, higher packet rates means higher packet header  
> overhead bit-rates, more burden on networking gears in I/O bandwidth  
> and throughput, etc.  However, that's the price to pay if we need  
> low latency, just like if we want to avoid all these, the price to  
> pay is higher latency.  It's all a matter of trade-off and the best  
> choice depends on the application at hand.
>
> In Section 2 of Jean-Marc's Internet Draft  
> draft-ietf-codec-requirements-00, 6 specific applications for the  
> IETF codec were listed.  Fully 5 of these 6 applications list less  
> than 10 ms of codec delay as either a requirement or a desirable  
> feature. (The only exception is point-to-point calls.)  The only way  
> to achieve this less than 10 ms codec delay is with a codec frame  
> size of less than 10 ms, and to get the kind of low latency that  
> these 5 applications desire, each packet had better contain only one  
> codec frame as payload (rather than multiple frames).
>
> So, yeah, there is negative consequences of the resulting higher  
> packet rates, but hey, if we want to get low latency as desired or  
> required by these 5 applications, that's the price we will need to  
> be prepared to pay.  There is no free lunch.  If we want to use a 20  
> ms frame/packet size to avoid those consequences, then we need pay  
> the price of not achieving the low latency that these 5 applications  
> desire or require.
>
> Raymond
>
>