[rtcweb] Review of draft-ietf-rtcweb-fec-03
Bernard Aboba <bernard.aboba@gmail.com> Wed, 06 April 2016 22:27 UTC
Return-Path: <bernard.aboba@gmail.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 95EA112D101 for <rtcweb@ietfa.amsl.com>; Wed, 6 Apr 2016 15:27:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 U-_iqYwt7CWt for <rtcweb@ietfa.amsl.com>; Wed, 6 Apr 2016 15:27:00 -0700 (PDT)
Received: from mail-vk0-x22f.google.com (mail-vk0-x22f.google.com [IPv6:2607:f8b0:400c:c05::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1456A12D0A3 for <rtcweb@ietf.org>; Wed, 6 Apr 2016 15:27:00 -0700 (PDT)
Received: by mail-vk0-x22f.google.com with SMTP id e6so76998345vkh.2 for <rtcweb@ietf.org>; Wed, 06 Apr 2016 15:27:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to; bh=A+S0UaI1BcAI0mKErH0GUF1EpJLxJbAxSjKVIyLkMF0=; b=EhEU/RSZ4fFAtVzRNgUq3xDBV7duAMyLAhuFHqj79bJCTDmNzMjUOsBsMj/fT0SZjP GqGbLbR1fHkSzbQxQsuKjicAtD6tUrr3HgrETC7k9Q9sEzTH6XZJQxuW9IjkSWr6hVbR NQnbKga8ODjxMu7vo3LSB8l77S4zv2QGljmJHBvkMeCpgmOBnuERWJ4gELAxEURq4jer qm4RfarPS5lWFcERdGahWr2V3tB7upz9b9KNJ10D3zEJ3tOtTJR5U6TWA9dO3ron9dpq ds7JvbYZ0Xh/Hj8A3jBTcjOHBbCJdjc1AS7SjRWJhxH/VzSjbjmLixrDl7syUY+qrq+P PWsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=A+S0UaI1BcAI0mKErH0GUF1EpJLxJbAxSjKVIyLkMF0=; b=Oo6AEOCu0uT31+jWSrCvdgqhXAR3VEF2gOrAmJIkuq4p6eJ22wbph/0DuJ6Ojg2Lyf KazN/+BBBRy7aERARZTrtXwXHkMmdmdBAXqLRUTF/2JD3J+mhzeqycEuDaLWQ+9dF5W8 kgMNd3AjpH7HHxHy90ZNP19FU/wBBHvu/5yaLDqu3fRDXCh3xcIChLQ9s9tWU6aSfJSk /64nhT4naL0N0aMSEexS+2wjPQ7MUig9a5X7nPCOYZ75EbMieEln70k9mik7MaOgrcmu XzpRIJbbCi58AgE+rJ23vI5JB7080RaElK/F0Z+dVEPIpXhgq/HSsduEd5XMVwK9exdN cJNQ==
X-Gm-Message-State: AD7BkJLL38QVVH4sd9ERh5Qb7KERhBm79I54mzTm+z3ActAz7mYqPh60Cscf90gyIYnlron6AD4A9LNKVXRJEQ==
X-Received: by 10.31.147.82 with SMTP id v79mr3490668vkd.58.1459981619128; Wed, 06 Apr 2016 15:26:59 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.176.4.40 with HTTP; Wed, 6 Apr 2016 15:26:39 -0700 (PDT)
From: Bernard Aboba <bernard.aboba@gmail.com>
Date: Wed, 06 Apr 2016 15:26:39 -0700
Message-ID: <CAOW+2dtJ0Rh_h0J69nFE=n981svVmB3od6ggfs5-PxKnJM+9pA@mail.gmail.com>
To: "rtcweb@ietf.org" <rtcweb@ietf.org>
Content-Type: multipart/alternative; boundary="001a1141dca2c96fe4052fd87563"
Archived-At: <http://mailarchive.ietf.org/arch/msg/rtcweb/YXz2PzhKE5Ht53z428CJ9Y9135c>
Subject: [rtcweb] Review of draft-ietf-rtcweb-fec-03
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtcweb/>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Apr 2016 22:27:02 -0000
Section 3.3 Note that this mechanism can only carry redundancy information for the immediately preceding packet; as such the decoder cannot fully recover multiple consecutive lost packets. [BA] In our experience, this has turned out to be a significant problem on wireless networks where burst loss is common. Section 4.1 When using the Opus codec, use of the built-in Opus FEC mechanism is RECOMMENDED. This provides reasonable protection of the audio stream against typical losses, with modest overhead. Note that as indicated above the built-in Opus FEC only provides single-frame redundancy; if multi-packet protection is needed, the built-in FEC should be combined with [RFC2198 <https://tools.ietf.org/html/rfc2198>] redundancy to protect the N-2th, N-3rd, etc. packets. Because of the lower packet rate of audio encodings, usually a single packet per frame, use of a separate FEC stream comes with a higher overhead than other mechanisms, and therefore is NOT RECOMMENDED. [BA] In our implementation, we have found that using external FEC supporting burst loss resilience provides audio quality superior to RFC 2198 redundancy with less overhead, iff the level of protection can be dynamically adjusted (e.g. it is only used if needed). Since that is recommended in Section 8, NOT RECOMMENDED seems too harsh. Maybe optional? Section 5.1 For video content, use of a separate FEC stream with the RTP payload format described in [I-D.ietf-payload-flexible-fec-scheme <https://tools.ietf.org/html/draft-ietf-rtcweb-fec-03#ref-I-D.ietf-payload-flexible-fec-scheme>] is RECOMMENDED. [BA] The above RECOMMENDED seems to be contradicted by a MUST in Section 7. Section 7 To support the functionality recommended above, implementations MUST support the relevant mechanisms for their supported audio codecs, as described in Section 4 <https://tools.ietf.org/html/draft-ietf-rtcweb-fec-03#section-4>, and the general FEC mechanism described in [I-D.ietf-payload-flexible-fec-scheme <https://tools.ietf.org/html/draft-ietf-rtcweb-fec-03#ref-I-D.ietf-payload-flexible-fec-scheme>]. Implementations MAY support additional FEC mechanisms if desired, e.g. [RFC5109 <https://tools.ietf.org/html/rfc5109>]. [BA] The above paragraph seems to indicate that flex fec is a MUST, rather than merely RECOMMENDED. Personally, I think a MUST for flex fec is too much, and that since existing implementations support ulpfec, this should be upgraded to RECOMMENDED. RECOMMENDED seems more suitable for flexible fec since we don't have much implementation experience yet. My recommendation would be to wait to publish the flex fec document until we had some implementation experience, since if the flex fec goes to RFC before that we could have some surprises (including late IPR declarations) that might lead us to regret publishing early. Section 8 Given this, WebRTC implementations SHOULD only transmit the amount of FEC needed to protect against the observed packet loss (which can be determined, e.g., by monitoring transmit packet loss data from RTCP Receiver Reports [RFC3550 <https://tools.ietf.org/html/rfc3550>]), or the application indicates it is willing to pay a quality penalty to proactively avoid losses. [BA] Very much in agreement with this - particularly since RTX can be a quite viable robustness mechanism, particularly when combined with temporal scalability. Where RTX is not sufficient (e.g. RTT is too high), it might be worth mentioning selective FEC protection (e.g. of the base layer only). Since VP8, VP9 and future video codecs can all benefit from this, it's not that esoteric.
- [rtcweb] Review of draft-ietf-rtcweb-fec-03 Bernard Aboba