Network Working Group | J. Moffitt |
Internet-Draft | Mozilla |
Intended status: Informational | M. Zanaty |
Expires: September 10, 2015 | Cisco |
March 9, 2015 |
Video Codec Requirements
draft-moffitt-netvc-requirements-00
This document provides specific requirements for an Internet video codec. These requirements address quality, bit-rate, and packet-loss robustness, as well as other desirable properties.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 10, 2015.
Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
This document provides requirements for a video codec designed specifically for use over the Internet. The requirements attempt to address the needs of the most common streaming and interactive video transmission applications and ensure good quality when operating in typical Internet conditions. These requirements also address issues of quality, frame rate, bit-rate, and packet-loss robustness. Other desirable but not required video codec properties are also considered.
The following applications should be considered for Internet video codecs, along with their requirements:
One-to-one video chat applications are proliferating. These interactive uses of a video codec involve two connected participants sending and receiving encoded video to each other. Frame sizes will typically be 360p to 720p and bandwidth used around 1 Mbit/s.
The endpoints will need to negotiate and change session details during the call. For example, one endpoint may request higher resolution video when the size of the display window is increased.
Broadcasting is live or pre-recorded video being sent to many participants at the same time. This will typically involve frame sizes up to 1080p and bandwidth requirements as high as 6 Mbit/s.
Example applications in this area include on-demand video service like Netflix and YouTube as well as digital transmission of live sporting events.
Video conferencing requires many of the same things as point-to-point calls, but involves more than 2 participants. It is more complicated due to the shifting focus of attention among the participants. For example, when one participant is speaking, the user may prefer to have their video appear larger and the other participants smaller, which may have consequences for codec parameters.
Frame sizes and bitrates are similar to point-to-point applications.
Telepresence tries to use high fidelity reproduction to make remote video conference participants feel like they are real people in the same room. This requires high resolutions and large amounts of bandwidth. It is otherwise very similar to video conferencing applications.
Teleoperation requires the high fidelity of telepresence, but includes increased requirements for low latency. Remote control of surgical tools is one example application.
Screencasting is the sharing of the contents of some or all of a computer or mobile display. It is commonly used to send the visual output of applications to other endpoints. For example, a speaker at a conference might share the window for their presentation program and a mobile app developer might want to record a demo of their application.
Two main features distinguish this application. First, since the inputs are often RGB, it is important to preserve the color information at a higher fidelity than normal video. Second, the input for the encoder is potentially higher level than raw pixels or contains both pixels and higher level objects such as text along with font and positioning information.
Archival video brings several unique requirements. Many applications will want lossless compression or very high rates, and others will want low complexity. Examples of the former include archival storage of film masters; examples of the latter would be surveillance gear or video camera capture systems.
The preceding list of application is by no means complete. The requirements needed to enable these applications should be sufficient to meet the needs of many other applications that were not listed.
explicit non-requirements:
The features described in this section are potentially desirable but are not part of the strict requirements. Their benefits should be weighed against their costs before including them in the codec.
Although this document itself does not have security considerations, this section describes the security requirements for the codec.
As for any protocol to be used over the Internet, security is a very important aspect to consider. This goes beyond the obvious considerations of preventing buffer overflows and similar attacks that can lead to denial-of-service (DoS) or remote code execution. One very important security aspect is to make sure that the decoders have a bounded and reasonable worst-case complexity. This prevents an attacker from causing a DoS by sending packets that are specially crafted to take a very long (or infinite) time to decode.