Re: [rmcat] How to handle an increasing send buffer

"Xiaoqing Zhu (xiaoqzhu)" <xiaoqzhu@cisco.com> Tue, 11 November 2014 00:31 UTC

Return-Path: <xiaoqzhu@cisco.com>
X-Original-To: rmcat@ietfa.amsl.com
Delivered-To: rmcat@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7AEF01ACD9B for <rmcat@ietfa.amsl.com>; Mon, 10 Nov 2014 16:31:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.094
X-Spam-Level:
X-Spam-Status: No, score=-15.094 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.594, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CWTyFZh2Icbh for <rmcat@ietfa.amsl.com>; Mon, 10 Nov 2014 16:31:48 -0800 (PST)
Received: from rcdn-iport-9.cisco.com (rcdn-iport-9.cisco.com [173.37.86.80]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E1BBF1A87B9 for <rmcat@ietf.org>; Mon, 10 Nov 2014 16:31:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=21905; q=dns/txt; s=iport; t=1415665908; x=1416875508; h=from:to:subject:date:message-id:mime-version; bh=oREzmg6SPsHVjaBl8SRLb0gpbGBZ22EirRbsMyLUzFA=; b=ApFPlZ78um/GkK6XXd+q/MrbAqNBwIoctUeV1qYYO+xKXbgKHM81/eZB B+mds4P6xj83VH+BhtdVVUT6FUM/2b40XyWsY8ERyezUAbeo3gYqLTMlT 3TiMcPH2cp0kDcFREgPMxXg6ZdO2mq1TGCPCRQWxJYUVM81D2xUSjdYdu A=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AhQFACNYYVStJV2P/2dsb2JhbABcgkhGVFkEy3yHU4EjFgEBAQEBfYQCAQIEGBUcPgQBCBEDAQIhByIXFAkKBAESG4gmzRYBAQEBAQEEAQEBAQEBAQEaBJEAhGMFkjGHGoRalmCDemwBgQUkHoEDAQEB
X-IronPort-AV: E=Sophos;i="5.07,356,1413244800"; d="scan'208,217";a="367934364"
Received: from rcdn-core-7.cisco.com ([173.37.93.143]) by rcdn-iport-9.cisco.com with ESMTP; 11 Nov 2014 00:31:47 +0000
Received: from xhc-aln-x01.cisco.com (xhc-aln-x01.cisco.com [173.36.12.75]) by rcdn-core-7.cisco.com (8.14.5/8.14.5) with ESMTP id sAB0VkCM010122 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 11 Nov 2014 00:31:46 GMT
Received: from xmb-rcd-x01.cisco.com ([169.254.1.165]) by xhc-aln-x01.cisco.com ([173.36.12.75]) with mapi id 14.03.0195.001; Mon, 10 Nov 2014 18:31:46 -0600
From: "Xiaoqing Zhu (xiaoqzhu)" <xiaoqzhu@cisco.com>
To: Ingemar Johansson S <ingemar.s.johansson@ericsson.com>, "rmcat WG (rmcat@ietf.org)" <rmcat@ietf.org>
Thread-Topic: [rmcat] How to handle an increasing send buffer
Thread-Index: AQHP/Ubf3gb+A2qkT4irzZQVAhscMg==
Date: Tue, 11 Nov 2014 00:31:46 +0000
Message-ID: <D08679CE.D881%xiaoqzhu@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.4.5.141003
x-originating-ip: [10.21.144.68]
Content-Type: multipart/alternative; boundary="_000_D08679CED881xiaoqzhuciscocom_"
MIME-Version: 1.0
Archived-At: http://mailarchive.ietf.org/arch/msg/rmcat/tYwOcRXrt_ZKPfQg_xacLrCHiic
Subject: Re: [rmcat] How to handle an increasing send buffer
X-BeenThere: rmcat@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "RTP Media Congestion Avoidance Techniques \(RMCAT\) Working Group discussion list." <rmcat.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rmcat>, <mailto:rmcat-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rmcat/>
List-Post: <mailto:rmcat@ietf.org>
List-Help: <mailto:rmcat-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rmcat>, <mailto:rmcat-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 11 Nov 2014 00:31:50 -0000

Adding to the list of mechanisms for confining local sending buffer depth/delay:

In NADA the further the video codec is notified of a target rates well below the rate calculated from congestion control (R_n) ; likewise the sending rate goes above that specified by congestion control (R_n) by a fair amount. This helps to deplete the queue over time, at the expense of slightly dislodging the congestion control feedback loop over the network.

Note that one can apple this mechanism in conjunction of the other mechanisms (esp. dropping RTP packets or skipping frames).

Before we decide how important this issue is, I think we need to gather some good survey data on how fast a typical modern codec — designed/configured to support live conferencing — reacts to abrupt changes in target rates.

I also fully agree that interaction between the congestion control feedback look over the network and the local encoder rate control is a) tricky business to get right; b) important for the overall performance of the video conferencing application. Just that I think we should decouple this discussion from the core congestion control algorithm (what rate to send given a certain set of network observations).

-Xiaoqing

From: Ingemar Johansson S <ingemar.s.johansson@ericsson.com<mailto:ingemar.s.johansson@ericsson.com>>
Date: Sunday, November 9, 2014 at 10:12 PM
To: "rmcat WG (rmcat@ietf.org<mailto:rmcat@ietf.org>)" <rmcat@ietf.org<mailto:rmcat@ietf.org>>
Subject: [rmcat] How to handle an increasing send buffer

Hi

Both SCReAM and NADA argues for buffering on the sender side to handle the the difference between the video coder output bitrate and the actual (or estimated) throughput of the transmission path. This is particularly useful esp. in cases where the link thorughput drops dramatically.
The problem with this of course that, while this is very helpful in order to keep the network delay well behaved, the additional queueing of Video RTP packets can in principle cause very high video frame delays unless handled properly.
There are, as I understand it a number of ways to keep the video frame bounded.  Parts of this was aAddnlready discussed at the interim but it could be good to get this discussion on the list as well.


1)      Drop RTP packets in the send buffer: Easy to implement , requires that the codec state is repaired. The good part here is that this is known already on the sender side so there is no need to way an RTT (+ a little extra) for e.g an RFC4585 generic NACK or something. A possible problem is that the codec state may be costly to repair as Full Intra Refresh may be needed.

2)      Frame skipping : Raw video frames are dropped, i.e not forwarded to the video coder. The frame rate is therefore temporarly reduced. The video codec state is preserved but the prediction can may suffer because of a larger difference between the frame. SCReAM limits the number of consequtive frame skips to avoid too large differences. It is however not known hos different video coders will react to this. Another problem is API related

3)      Sender detects a too large buffer, discards entire (or part of) send buffer and generates a Full Intra Refresh or similar, pretty similar to 1)

4)      Receiver sends an RFC4585 PLI, the sender discards entire (or part of) send buffer and generates a Full Intra Refresh or similar.

5)      Other ?

6)      Other 2 ?

7)      Do nothing, the consequence is that it may take time then for the video frame delay to become reasonably low

Perhaps there are more alternatives to the above, the SCReAM draft discuss alternative 1 and 2. This is a somewhat tricky area and one have every reason to argue whether or not this should be a part of the RMCAT charter. As I said at the interim it can be difficult to treat the network congestion control and the video rate control (including the sender buffer buffer control) as two black boxes, at least if one wish to create an optimal solution, so I guess some discussion on API is needed, not sure if RMCAT is the correct venue for this though.

Comments welcome
/Ingemar

=================================
Ingemar Johansson  M.Sc.
Senior Researcher

Ericsson AB
Wireless Access Networks
Labratoriegränd 11
971 28, Luleå, Sweden
Phone +46-1071 43042
SMS/MMS +46-73 078 3289
ingemar.s.johansson@ericsson.com<mailto:ingemar.s.johansson@ericsson.com>
www.ericsson.com

“The difference between stupidity and
genius is that genius has its limits."
Albert Einstein
=================================