[AVT] Clock Skew update issue for layered codecs

Magnus Westerlund <magnus.westerlund@ericsson.com> Wed, 03 December 2008 18:19 UTC

Return-Path: <avt-bounces@ietf.org>
X-Original-To: avt-archive@optimus.ietf.org
Delivered-To: ietfarch-avt-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id BBE5C3A693E; Wed, 3 Dec 2008 10:19:46 -0800 (PST)
X-Original-To: avt@core3.amsl.com
Delivered-To: avt@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 4D7033A6802 for <avt@core3.amsl.com>; Wed, 3 Dec 2008 10:19:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.172
X-Spam-Level:
X-Spam-Status: No, score=-6.172 tagged_above=-999 required=5 tests=[AWL=0.077, BAYES_00=-2.599, HELO_EQ_SE=0.35, RCVD_IN_DNSWL_MED=-4]
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 UoNPN36rj8DM for <avt@core3.amsl.com>; Wed, 3 Dec 2008 10:19:44 -0800 (PST)
Received: from mailgw3.ericsson.se (mailgw3.ericsson.se [193.180.251.60]) by core3.amsl.com (Postfix) with ESMTP id 1F7BF3A693E for <avt@ietf.org>; Wed, 3 Dec 2008 10:19:44 -0800 (PST)
Received: from mailgw3.ericsson.se (unknown [127.0.0.1]) by mailgw3.ericsson.se (Symantec Mail Security) with ESMTP id C6DDC21551 for <avt@ietf.org>; Wed, 3 Dec 2008 19:19:38 +0100 (CET)
X-AuditID: c1b4fb3c-aa757bb00000304c-4f-4936cdbafa77
Received: from esealmw129.eemea.ericsson.se (unknown [153.88.254.124]) by mailgw3.ericsson.se (Symantec Mail Security) with ESMTP id B2AAC2152F for <avt@ietf.org>; Wed, 3 Dec 2008 19:19:38 +0100 (CET)
Received: from esealmw127.eemea.ericsson.se ([153.88.254.171]) by esealmw129.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.1830); Wed, 3 Dec 2008 19:19:38 +0100
Received: from [147.214.183.72] ([147.214.183.72]) by esealmw127.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.1830); Wed, 3 Dec 2008 19:19:38 +0100
Message-ID: <4936CDBA.60006@ericsson.com>
Date: Wed, 03 Dec 2008 19:19:38 +0100
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
User-Agent: Thunderbird 2.0.0.18 (Windows/20081105)
MIME-Version: 1.0
To: IETF AVT WG <avt@ietf.org>
X-Enigmail-Version: 0.95.7
X-OriginalArrivalTime: 03 Dec 2008 18:19:38.0311 (UTC) FILETIME=[B3CFCD70:01C95573]
X-Brightmail-Tracker: AAAAAA==
Subject: [AVT] Clock Skew update issue for layered codecs
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Audio/Video Transport Working Group <avt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/pipermail/avt>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Sender: avt-bounces@ietf.org
Errors-To: avt-bounces@ietf.org

Hi,

I wanted to start a separate thread on this particular issue with
multi-layered codecs.

Lets assume that we have 3 layers produced by the media codec from a
single media source (microphone). We have some clock skew on the audio
card sampling clock that will need to be communicated at least now and
then to keep this under control.

The transmission of RTCP SR will happen at regular intervals in each
layer but the jittering will make this transmission into a random
process on the short time scale.

In the below figure each x is an RTCP packet, the y is when the RTCP SR
information has been updated for the clock skew.

          123456789ABCDE
A ---x----x----y--y----y

B -x----x--x----y---y---

C --x--x---x--x---y----y

So the big question here is when a receiver can take the clock skew
compensation into consideration and apply it to the actual playout?

A time 1 all layers have the same synch information. At time 6 layer A
receives the clock skew update in the RTCP SR. At this point it could
apply it to this layer. However, to avoid misaligning the audio frames
the compensation needs to happen at all layers. To me it appears that
can be done in two ways either wait until you have seen it in all layers
or do it as soon as you see it in one layer. And the first doesn't work
as one can't be certain that all layers will provide the same update to
all layers because of the following situation:

          123456789ABCDE
A ---x----x----y--z----z

B -x----x--x----y---z---

C --x--x---x--x---z----z

So in this case the C layer never transmit an RTCP packet with the y
clock skew correction because a new one is needed an indicated by z. As
this can continue forever there is no way waiting until it has been seen
in all layers. Thus one must use the latest adjustment.

If one is relying on the individual layers RTCP SR to align the audio
frames in each layer one suddenly have a issue. Does an RTCP SR packet
in one layer adjust the clock skew or provide an accurate point of
aligning the frames? The only way of getting out of this bind I think
would be to rely very carefully on the provided clocks and really check
if the timestamp values align perfectly. And in cases the clock skew is
exactly one frame length one needs to adjust the compensation to not align.

Frankly, I think aligning the timestamp values between the layers to
simplify the clock skew compensation is the only reasonable solution.

Cheers

Magnus Westerlund

IETF Transport Area Director & TSVWG Chair
----------------------------------------------------------------------
Multimedia Technologies, Ericsson Research EAB/TVM
----------------------------------------------------------------------
Ericsson AB                | Phone  +46 10 7148287
Färögatan 6                | Mobile +46 73 0949079
SE-164 80 Stockholm, Sweden| mailto: magnus.westerlund@ericsson.com
----------------------------------------------------------------------
_______________________________________________
Audio/Video Transport Working Group
avt@ietf.org
https://www.ietf.org/mailman/listinfo/avt