summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc4629.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc4629.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc4629.txt')
-rw-r--r--doc/rfc/rfc4629.txt1627
1 files changed, 1627 insertions, 0 deletions
diff --git a/doc/rfc/rfc4629.txt b/doc/rfc/rfc4629.txt
new file mode 100644
index 0000000..fba70ac
--- /dev/null
+++ b/doc/rfc/rfc4629.txt
@@ -0,0 +1,1627 @@
+
+
+
+
+
+
+Network Working Group J. Ott
+Request for Comments: 4629 Helsinki University of Technology
+Obsoletes: 2429 C. Bormann
+Updates: 3555 Universitaet Bremen TZI
+Category: Standards Track G. Sullivan
+ Microsoft
+ S. Wenger
+ Nokia
+ R. Even, Ed.
+ Polycom
+ January 2007
+
+
+ RTP Payload Format for ITU-T Rec. H.263 Video
+
+Status of This Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The IETF Trust (2007).
+
+Abstract
+
+ This document describes a scheme to packetize an H.263 video stream
+ for transport using the Real-time Transport Protocol (RTP) with any
+ of the underlying protocols that carry RTP.
+
+ The document also describes the syntax and semantics of the Session
+ Description Protocol (SDP) parameters needed to support the H.263
+ video codec.
+
+ The document obsoletes RFC 2429 and updates the H263-1998 and
+ H263-2000 media type in RFC 3555.
+
+
+
+
+
+
+
+
+
+
+
+
+Ott, et al. Standards Track [Page 1]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+Table of Contents
+
+ 1. Introduction ....................................................3
+ 1.1. Terminology ................................................3
+ 2. New H.263 Features ..............................................3
+ 3. Usage of RTP ....................................................4
+ 3.1. RTP Header Usage ...........................................5
+ 3.2. Video Packet Structure .....................................6
+ 4. Design Considerations ...........................................7
+ 5. H.263+ Payload Header ...........................................9
+ 5.1. General H.263+ Payload Header ..............................9
+ 5.2. Video Redundancy Coding Header Extension ..................10
+ 6. Packetization Schemes ..........................................12
+ 6.1. Picture Segment Packets and Sequence Ending
+ Packets (P=1) .............................................12
+ 6.1.1. Packets that begin with a Picture Start Code .......12
+ 6.1.2. Packets that begin with GBSC or SSC ................13
+ 6.1.3. Packets that begin with an EOS or EOSBS Code .......14
+ 6.2. Encapsulating Follow-on Packet (P=0) ......................15
+ 7. Use of this Payload Specification ..............................15
+ 8. Media Type Definition ..........................................17
+ 8.1. Media Type Registrations ..................................17
+ 8.1.1. Registration of Media Type video/H263-1998 .........17
+ 8.1.2. Registration of Media Type video/H263-2000 .........21
+ 8.2. SDP Usage .................................................22
+ 8.2.1. Usage with the SDP Offer Answer Model ..............23
+ 9. Backward Compatibility to RFC 2429 .............................25
+ 9.1. New Optional Parameters for SDP ...........................25
+ 10. IANA Considerations ...........................................25
+ 11. Security Considerations .......................................25
+ 12. Acknowledgments ...............................................26
+ 13. Changes from Previous Versions of the Documents ...............26
+ 13.1. Changes from RFC 2429 ....................................26
+ 13.2. Changes from RFC 3555 ....................................26
+ 14. References ....................................................26
+ 14.1. Normative References .....................................26
+ 14.2. Informative References ...................................27
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Ott, et al. Standards Track [Page 2]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+1. Introduction
+
+ This document specifies an RTP payload header format applicable to
+ the transmission of video streams based on the 1998 and 2000 versions
+ of International Telecommunication Union-Telecommunication
+ Standardization Sector (ITU-T) Recommendation H.263 [H263]. Because
+ the 1998 and 2000 versions of H.263 are a superset of the 1996
+ syntax, this format can also be used with the 1996 version of H.263
+ and is recommended for this use by new implementations. This format
+ replaces the payload format in RFC 2190 [RFC2190], which continues to
+ be used by some existing implementations, and can be useful for
+ backward compatibility. New implementations supporting H.263 SHALL
+ use the payload format described in this document. RFC 2190 is moved
+ to historic status [RFC4628].
+
+ The document updates the media type registration that was previously
+ in RFC 3555 [RFC3555].
+
+ This document obsoletes RFC 2429 [RFC2429].
+
+1.1. Terminology
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+ document are to be interpreted as described in RFC 2119 [RFC2119] and
+ indicate requirement levels for compliant RTP implementations.
+
+2. New H.263 Features
+
+ The 1998 version of ITU-T Recommendation H.263 added numerous coding
+ options to improve codec performance over the 1996 version. In this
+ document, the 1998 version is referred to as H.263+ and the 2000
+ version as H.263++.
+
+ Among the new options, the ones with the biggest impact on the RTP
+ payload specification and the error resilience of the video content
+ are the slice structured mode, the independent segment decoding mode,
+ the reference picture selection mode, and the scalability mode. This
+ section summarizes the impact of these new coding options on
+ packetization. Refer to [H263] for more information on coding
+ options.
+
+ The slice structured mode was added to H.263+ for three purposes: to
+ provide enhanced error resilience capability, to make the bitstream
+ more amenable for use with an underlying packet transport such as
+ RTP, and to minimize video delay. The slice structured mode supports
+ fragmentation at macroblock boundaries.
+
+
+
+
+Ott, et al. Standards Track [Page 3]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ With the independent segment decoding (ISD) option, a video picture
+ frame is broken into segments and encoded in such a way that each
+ segment is independently decodable. Utilizing ISD in a lossy network
+ environment helps to prevent the propagation of errors from one
+ segment of the picture to others.
+
+ The reference picture selection mode allows the use of an older
+ reference picture rather than the one immediately preceding the
+ current picture. Usually, the last transmitted frame is implicitly
+ used as the reference picture for inter-frame prediction. If the
+ reference picture selection mode is used, the data stream carries
+ information on what reference frame should be used, indicated by the
+ temporal reference as an ID for that reference frame. The reference
+ picture selection mode may be used with or without a back channel,
+ which provides information to the encoder about the internal status
+ of the decoder. However, no special provision is made herein for
+ carrying back channel information. The Extended RTP Profile for RTP
+ Control Protocol (RTCP)-based Feedback [RFC4585] MAY be used as a
+ back channel mechanism.
+
+ H.263+ also includes bitstream scalability as an optional coding
+ mode. Three kinds of scalability are defined: temporal, signal-to-
+ noise ratio (SNR), and spatial scalability. Temporal scalability is
+ achieved via the disposable nature of bi-directionally predicted
+ frames, or B-frames. (A low-delay form of temporal scalability known
+ as P-picture temporal scalability can also be achieved by using the
+ reference picture selection mode, described in the previous
+ paragraph.) SNR scalability permits refinement of encoded video
+ frames, thereby improving the quality (or SNR). Spatial scalability
+ is similar to SNR scalability except that the refinement layer is
+ twice the size of the base layer in the horizontal dimension,
+ vertical dimension, or both.
+
+ H.263++ added some new functionalities. Among the new
+ functionalities are support for interlace mode, specified in H.263,
+ annex W.6.3.11, and the definition of profiles and levels in H.263
+ annex X.
+
+3. Usage of RTP
+
+ When transmitting H.263+ video streams over the Internet, the output
+ of the encoder can be packetized directly. All the bits resulting
+ from the bitstream (including the fixed length codes and variable
+ length codes) will be included in the packet, the only exception
+ being that when the payload of a packet begins with a Picture, GOB,
+ Slice, End of Sequence (EOS), or End of Sub-Bit Stream (EOSBS) start
+ code, the first 2 (all-zero) bytes of the start code shall be removed
+ and replaced by setting an indicator bit in the payload header.
+
+
+
+Ott, et al. Standards Track [Page 4]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ For H.263+ bitstreams coded with temporal, spatial, or SNR
+ scalability, each layer may be transported to a different network
+ address. More specifically, each layer may use a unique IP address
+ and port number combination. The temporal relations between layers
+ shall be expressed using the RTP timestamp so that they can be
+ synchronized at the receiving ends in multicast or unicast
+ applications.
+
+ The H.263+ video stream will be carried as payload data within RTP
+ packets. A new H.263+ payload header is defined in Section 5; it
+ updates the one specified in RFC 2190. This section defines the
+ usage of the RTP fixed header and H.263+ video packet structure.
+
+3.1. RTP Header Usage
+
+ Each RTP packet starts with a fixed RTP header. The following fields
+ of the RTP fixed header used for H.263+ video streams are further
+ emphasized here.
+
+ Marker bit (M bit): The Marker bit of the RTP header is set to 1 when
+ the current packet carries the end of current frame and is 0
+ otherwise.
+
+ Payload Type (PT): The RTP profile for a particular class of
+ applications will assign a payload type for this encoding, or, if
+ that is not done, a payload type in the dynamic range shall be chosen
+ by the sender.
+
+ Timestamp: The RTP Timestamp encodes the sampling instance of the
+ first video frame data contained in the RTP data packet. The RTP
+ timestamp shall be the same on successive packets if a video frame
+ occupies more than one packet. In a multilayer scenario, all
+ pictures corresponding to the same temporal reference should use the
+ same timestamp. If temporal scalability is used (if B-frames are
+ present), the timestamp may not be monotonically increasing in the
+ RTP stream. If B-frames are transmitted on a separate layer and
+ address, they must be synchronized properly with the reference
+ frames. Refer to ITU-T Recommendation H.263 [H263] for information
+ on required transmission order to a decoder. For an H.263+ video
+ stream, the RTP timestamp is based on a 90 kHz clock, the same as
+ that of the RTP payload for H.261 stream [RFC2032]. Since both the
+ H.263+ data and the RTP header contain time information, that timing
+ information must run synchronously. That is, both the RTP timestamp
+ and the temporal reference (TR in the picture header of H.263) should
+ carry the same relative timing information. Any H.263+ picture clock
+ frequency can be expressed as 1800000/(cd*cf) source pictures per
+ second, in which cd is an integer from 1 to 127 and cf is either 1000
+ or 1001. Using the 90 kHz clock of the RTP timestamp, the time
+
+
+
+Ott, et al. Standards Track [Page 5]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ increment between each coded H.263+ picture should therefore be an
+ integer multiple of (cd*cf)/20. This will always be an integer for
+ any "reasonable" picture clock frequency (for example, it is 3003 for
+ 30/1.001 Hz NTSC; 3600 for 25 Hz PAL; 3750 for 24 Hz film; and 1500,
+ 1250, or 1200 for the computer display update rates of 60, 72, or 75
+ Hz, respectively). For RTP packetization of hypothetical H.263+
+ bitstreams using "unreasonable" custom picture clock frequencies,
+ mathematical rounding could become necessary for generating the RTP
+ timestamps.
+
+3.2. Video Packet Structure
+
+ A section of an H.263+ compressed bitstream is carried as a payload
+ within each RTP packet. For each RTP packet, the RTP header is
+ followed by an H.263+ payload header, which is followed by a number
+ of bytes of a standard H.263+ compressed bitstream. The size of the
+ H.263+ payload header is variable, depending on the payload involved,
+ as detailed in the Section 4. The layout of the RTP H.263+ video
+ packet is shown as
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ : RTP Header :
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ : H.263+ Payload Header :
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ : H.263+ Compressed Data Stream :
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Any H.263+ start codes can be byte aligned by an encoder by using the
+ stuffing mechanisms of H.263+. As specified in H.263+, picture,
+ slice, and EOSBS starts codes shall always be byte aligned, and GOB
+ and EOS start codes may be byte aligned. For packetization purposes,
+ GOB start codes should be byte aligned; however, since this is not
+ required in H.263+, there may be some cases where GOB start codes are
+ not aligned, such as when transmitting existing content, or when
+ using H.263 encoders that do not support GOB start code alignment.
+ In this case, Follow-on Packets (see Section 5.2) should be used for
+ packetization.
+
+ All H.263+ start codes (Picture, GOB, Slice, EOS, and EOSBS) begin
+ with 16 zero-valued bits. If a start code is byte aligned and it
+ occurs at the beginning of a packet, these two bytes shall be removed
+ from the H.263+ compressed data stream in the packetization process
+ and shall instead be represented by setting a bit (the P bit) in the
+ payload header.
+
+
+
+
+
+
+Ott, et al. Standards Track [Page 6]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+4. Design Considerations
+
+ The goals of this payload format are to specify an efficient way of
+ encapsulating an H.263+ standard compliant bitstream and to enhance
+ the resiliency towards packet losses. Due to the large number of
+ different possible coding schemes in H.263+, a copy of the picture
+ header with configuration information is inserted into the payload
+ header when appropriate. The use of that copy of the picture header
+ along with the payload data can allow decoding of a received packet
+ even in cases when another packet containing the original picture
+ header becomes lost.
+
+ There are a few assumptions and constraints associated with this
+ H.263+ payload header design. The purpose of this section is to
+ point out various design issues and also to discuss several coding
+ options provided by H.263+ that may impact the performance of
+ network-based H.263+ video.
+
+ o The optional slice structured mode described in Annex K of [H263]
+ enables more flexibility for packetization. Similar to a picture
+ segment that begins with a GOB header, the motion vector
+ predictors in a slice are restricted to reside within its
+ boundaries. However, slices provide much greater freedom in the
+ selection of the size and shape of the area that is represented as
+ a distinct decodable region. In particular, slices can have a
+ size that is dynamically selected to allow the data for each slice
+ to fit into a chosen packet size. Slices can also be chosen to
+ have a rectangular shape, which is conducive for minimizing the
+ impact of errors and packet losses on motion-compensated
+ prediction. For these reasons, the use of the slice structured
+ mode is strongly recommended for any applications used in
+ environments where significant packet loss occurs.
+
+ o In non-rectangular slice structured mode, only complete slices
+ SHOULD be included in a packet. In other words, slices should not
+ be fragmented across packet boundaries. The only reasonable need
+ for a slice to be fragmented across packet boundaries is when the
+ encoder that generated the H.263+ data stream could not be
+ influenced by an awareness of the packetization process (such as
+ when sending H.263+ data through a network other than the one to
+ which the encoder is attached, as in network gateway
+ implementations). Optimally, each packet will contain only one
+ slice.
+
+
+
+
+
+
+
+
+Ott, et al. Standards Track [Page 7]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ o The independent segment decoding (ISD) described in Annex R of
+ [H263] prevents any data dependency across slice or GOB boundaries
+ in the reference picture. It can be utilized to improve
+ resiliency further in high loss conditions.
+
+ o If ISD is used in conjunction with the slice structure, the
+ rectangular slice submode shall be enabled, and the dimensions and
+ quantity of the slices present in a frame shall remain the same
+ between each two intra-coded frames (I-frames), as required in
+ H.263+. The individual ISD segments may also be entirely intra
+ coded from time to time to realize quick error recovery without
+ adding the latency time associated with sending complete INTRA-
+ pictures.
+
+ o When the slice structure is not applied, the insertion of a
+ (preferably byte-aligned) GOB header can be used to provide resync
+ boundaries in the bitstream, as the presence of a GOB header
+ eliminates the dependency of motion vector prediction across GOB
+ boundaries. These resync boundaries provide natural locations for
+ packet payload boundaries.
+
+ o H.263+ allows picture headers to be sent in an abbreviated form in
+ order to prevent repetition of overhead information that does not
+ change from picture to picture. For resiliency, sending a
+ complete picture header for every frame is often advisable. This
+ means (especially in cases with high packet loss probability in
+ which picture header contents are not expected to be highly
+ predictable) that the sender may find it advisable always to set
+ the subfield UFEP in PLUSPTYPE to '001' in the H.263+ video
+ bitstream. (See [H263] for the definition of the UFEP and
+ PLUSPTYPE fields).
+
+ o In a multi-layer scenario, each layer may be transmitted to a
+ different network address. The configuration of each layer, such
+ as the enhancement layer number (ELNUM), reference layer number
+ (RLNUM), and scalability type should be determined at the start of
+ the session and should not change during the course of the
+ session.
+
+ o All start codes can be byte aligned, and picture, slice, and EOSBS
+ start codes are always byte aligned. The boundaries of these
+ syntactical elements provide ideal locations for placing packet
+ boundaries.
+
+ o We assume that a maximum Picture Header size of 504 bits is
+ sufficient. The syntax of H.263+ does not explicitly prohibit
+ larger picture header sizes, but the use of such extremely large
+ picture headers is not expected.
+
+
+
+Ott, et al. Standards Track [Page 8]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+5. H.263+ Payload Header
+
+ For H.263+ video streams, each RTP packet shall carry only one H.263+
+ video packet. The H.263+ payload header shall always be present for
+ each H.263+ video packet. The payload header is of variable length.
+ A 16-bit field of the general payload header, defined in 5.1, may be
+ followed by an 8 bit field for Video Redundancy Coding (VRC)
+ information, and/or by a variable-length extra picture header as
+ indicated by PLEN. These optional fields appear in the order given
+ above, when present.
+
+ If an extra picture header is included in the payload header, the
+ length of the picture header in number of bytes is specified by PLEN.
+ The minimum length of the payload header is 16 bits, PLEN equal to 0
+ and no VRC information being present.
+
+ The remainder of this section defines the various components of the
+ RTP payload header. Section 6 defines the various packet types that
+ are used to carry different types of H.263+ coded data, and Section 7
+ summarizes how to distinguish between the various packet types.
+
+5.1. General H.263+ Payload Header
+
+ The H.263+ payload header is structured as follows:
+
+ 0 1
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | RR |P|V| PLEN |PEBIT|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ RR: 5 bits
+
+ Reserved bits. It SHALL be zero and MUST be ignored by receivers.
+
+ P: 1 bit
+
+ Indicates the picture start or a picture segment (GOB/Slice) start
+ or a video sequence end (EOS or EOSBS). Two bytes of zero bits
+ then have to be prefixed to the payload of such a packet to
+ compose a complete picture/GOB/slice/EOS/EOSBS start code. This
+ bit allows the omission of the two first bytes of the start codes,
+ thus improving the compression ratio.
+
+
+
+
+
+
+
+
+Ott, et al. Standards Track [Page 9]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ V: 1 bit
+
+ Indicates the presence of an 8-bit field containing information
+ for Video Redundancy Coding (VRC), which follows immediately after
+ the initial 16 bits of the payload header, if present. For syntax
+ and semantics of that 8-bit VRC field, see Section 5.2.
+
+ PLEN: 6 bits
+
+ Length, in bytes, of the extra picture header. If no extra
+ picture header is attached, PLEN is 0. If PLEN>0, the extra
+ picture header is attached immediately following the rest of the
+ payload header. Note that the length reflects the omission of the
+ first two bytes of the picture start code (PSC). See Section 6.1.
+
+ PEBIT: 3 bits
+
+ Indicates the number of bits that shall be ignored in the last
+ byte of the picture header. If PLEN is not zero, the ignored bits
+ shall be the least significant bits of the byte. If PLEN is zero,
+ then PEBIT shall also be zero.
+
+5.2. Video Redundancy Coding Header Extension
+
+ Video Redundancy Coding (VRC) is an optional mechanism intended to
+ improve error resilience over packet networks. Implementing VRC in
+ H.263+ will require the Reference Picture Selection option described
+ in Annex N of [H263]. By having multiple "threads" of independently
+ inter-frame predicted pictures, damage to an individual frame will
+ cause distortions only within its own thread, leaving the other
+ threads unaffected. From time to time, all threads converge to a
+ so-called sync frame (an INTRA picture or a non-INTRA picture that is
+ redundantly represented within multiple threads); from this sync
+ frame, the independent threads are started again. For more
+ information on codec support for VRC, see [Vredun].
+
+ P-picture temporal scalability is another use of the reference
+ picture selection mode and can be considered a special case of VRC in
+ which only one copy of each sync frame may be sent. It offers a
+ thread-based method of temporal scalability without the increased
+ delay caused by the use of B pictures. In this use, sync frames sent
+ in the first thread of pictures are also used for the prediction of a
+ second thread of pictures that fall temporally between the sync
+ frames to increase the resulting frame rate. In this use, the
+ pictures in the second thread can be discarded in order to obtain a
+ reduction of bit rate or decoding complexity without harming the
+ ability to decode later pictures. A third or more threads, can also
+ be added, but each thread is predicted only from the sync frames
+
+
+
+Ott, et al. Standards Track [Page 10]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ (which are sent at least in thread 0) or from frames within the same
+ thread.
+
+ While a VRC data stream is (like all H.263+ data) totally self-
+ contained, it may be useful for the transport hierarchy
+ implementation to have knowledge about the current damage status of
+ each thread. On the Internet, this status can easily be determined
+ by observing the marker bit, the sequence number of the RTP header,
+ the thread-id, and a circling "packet per thread" number. The latter
+ two numbers are coded in the VRC header extension.
+
+ The format of the VRC header extension is as follows:
+
+ 0 1 2 3 4 5 6 7
+ +-+-+-+-+-+-+-+-+
+ | TID | Trun |S|
+ +-+-+-+-+-+-+-+-+
+
+ TID: 3 bits
+
+ Thread ID. Up to 7 threads are allowed. Each frame of H.263+ VRC
+ data will use as reference information only sync frames or frames
+ within the same thread. By convention, thread 0 is expected to be
+ the "canonical" thread, which is the thread from which the sync frame
+ should ideally be used. In the case of corruption or loss of the
+ thread 0 representation, a representation of the sync frame with a
+ higher thread number can be used by the decoder. Lower thread
+ numbers are expected to contain representations of the sync frames
+ equal to or better than higher thread numbers in the absence of data
+ corruption or loss. See [Vredun] for a detailed discussion of VRC.
+
+ Trun: 4 bits
+
+ Monotonically increasing (modulo 16) 4-bit number counting the packet
+ number within each thread.
+
+ S: 1 bit
+
+ A bit that indicates that the packet content is for a sync frame. An
+ encoder using VRC may send several representations of the same "sync"
+ picture, in order to ensure that, regardless of which thread of
+ pictures is corrupted by errors or packet losses, the reception of at
+ least one representation of a particular picture is ensured (within
+ at least one thread). The sync picture can then be used for the
+ prediction of any thread. If packet losses have not occurred, then
+ the sync frame contents of thread 0 can be used, and those of other
+ threads can be discarded (and similarly for other threads). Thread 0
+ is considered the "canonical" thread, the use of which is preferable
+
+
+
+Ott, et al. Standards Track [Page 11]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ to all others. The contents of packets having lower thread numbers
+ shall be considered as having a higher processing and delivery
+ priority than those with higher thread numbers. Thus, packets having
+ lower thread numbers for a given sync frame shall be delivered first
+ to the decoder under loss-free and low-time-jitter conditions, which
+ will result in the discarding of the sync contents of the higher-
+ numbered threads as specified in Annex N of [H263].
+
+6. Packetization Schemes
+
+6.1. Picture Segment Packets and Sequence Ending Packets (P=1)
+
+ A picture segment packet is defined as a packet that starts at the
+ location of a Picture, GOB, or slice start code in the H.263+ data
+ stream. This corresponds to the definition of the start of a video
+ picture segment as defined in H.263+. For such packets, P=1 always.
+
+ An extra picture header can sometimes be attached in the payload
+ header of such packets. Whenever an extra picture header is attached
+ as signified by PLEN>0, only the last six bits of its picture start
+ code, '100000', are included in the payload header. A complete
+ H.263+ picture header with byte-aligned picture start code can be
+ conveniently assembled on the receiving end by prepending the sixteen
+ leading '0' bits.
+
+ When PLEN>0, the end bit position corresponding to the last byte of
+ the picture header data is indicated by PEBIT. The actual bitstream
+ data shall begin on an 8-bit byte boundary following the payload
+ header.
+
+ A sequence ending packet is defined as a packet that starts at the
+ location of an EOS or EOSBS code in the H.263+ data stream. This
+ delineates the end of a sequence of H.263+ video data (more H.263+
+ video data may still follow later, however, as specified in ITU-T
+ Recommendation H.263). For such packets, P=1 and PLEN=0 always.
+
+ The optional header extension for VRC may or may not be present as
+ indicated by the V bit flag.
+
+6.1.1. Packets that begin with a Picture Start Code
+
+ Any packet that contains the whole or the start of a coded picture
+ shall start at the location of the picture start code (PSC) and
+ should normally be encapsulated with no extra copy of the picture
+ header. In other words, normally PLEN=0 in such a case. However, if
+ the coded picture contains an incomplete picture header (UFEP =
+ "000"), then a representation of the complete (UFEP = "001") picture
+ header may be attached during packetization in order to provide
+
+
+
+Ott, et al. Standards Track [Page 12]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ greater error resilience. Thus, for packets that start at the
+ location of a picture start code, PLEN shall be zero unless both of
+ the following conditions apply:
+
+ 1) The picture header in the H.263+ bitstream payload is incomplete
+ (PLUSPTYPE present and UFEP="000").
+
+ 2) The additional picture header that is attached is not incomplete
+ (UFEP="001").
+
+ A packet that begins at the location of a Picture, GOB, slice, EOS,
+ or EOSBS start code shall omit the first two (all zero) bytes from
+ the H.263+ bitstream and signify their presence by setting P=1 in the
+ payload header.
+
+ Here is an example of encapsulating the first packet in a frame
+ (without an attached redundant complete picture header):
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | RR |1|V|0|0|0|0|0|0|0|0|0| bitstream data without the :
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ : first two 0 bytes of the PSC
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+6.1.2. Packets that begin with GBSC or SSC
+
+ For a packet that begins at the location of a GOB or slice start code
+ (GBSC), PLEN may be zero or nonzero, depending on whether a redundant
+ picture header is attached to the packet. In environments with very
+ low packet loss rates, or when picture header contents are very
+ seldom likely to change (except as can be detected from the GOB Frame
+ ID (GFID) syntax of H.263+), a redundant copy of the picture header
+ is not required. However, in less ideal circumstances a redundant
+ picture header should be attached for enhanced error resilience, and
+ its presence is indicated by PLEN>0.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Ott, et al. Standards Track [Page 13]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ Assuming a PLEN of 9 and P=1, below is an example of a packet that
+ begins with a byte-aligned GBSC or a Slice Start Code (SSC):
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | RR |1|V|0 0 1 0 0 1|PEBIT|1 0 0 0 0 0| picture header :
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ : starting with TR, PTYPE ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... | bitstream :
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ : data starting with GBSC/SSC without its first two 0 bytes
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Notice that only the last six bits of the picture start code,
+ '100000', are included in the payload header. A complete H.263+
+ picture header with byte aligned picture start code can be
+ conveniently assembled, if needed, on the receiving end by prepending
+ the sixteen leading '0' bits.
+
+6.1.3. Packets that begin with an EOS or EOSBS Code
+
+ For a packet that begins with an EOS or EOSBS code, PLEN shall be
+ zero, and no Picture, GOB, or Slice start codes shall be included
+ within the same packet. As with other packets beginning with start
+ codes, the two all-zero bytes that begin the EOS or EOSBS code at the
+ beginning of the packet shall be omitted, and their presence shall be
+ indicated by setting the P bit to 1 in the payload header.
+
+ System designers should be aware that some decoders may interpret the
+ loss of a packet containing only EOS or EOSBS information as the loss
+ of essential video data and may thus respond by not displaying some
+ subsequent video information. Since EOS and EOSBS codes do not
+ actually affect the decoding of video pictures, they are somewhat
+ unnecessary to send at all. Because of the danger of
+ misinterpretation of the loss of such a packet (which can be detected
+ by the sequence number), encoders are generally to be discouraged
+ from sending EOS and EOSBS.
+
+ Below is an example of a packet containing an EOS code:
+
+ 0 1 2
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | RR |1|V|0|0|0|0|0|0|0|0|0|1|1|1|1|1|1|0|0|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+
+Ott, et al. Standards Track [Page 14]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+6.2. Encapsulating Follow-on Packet (P=0)
+
+ A Follow-on Packet contains a number of bytes of coded H.263+ data
+ that do not start at a synchronization point. That is, a Follow-on
+ Packet does not start with a Picture, GOB, Slice, EOS, or EOSBS
+ header, and it may or may not start at a macroblock boundary. Since
+ Follow-on Packets do not start at synchronization points, the data at
+ the beginning of a Follow-on Packet is not independently decodable.
+ For such packets, P=0 always. If the preceding packet of a Follow-on
+ Packet got lost, the receiver may discard that Follow-on Packet, as
+ well as all other following Follow-on Packets. Better behavior, of
+ course, would be for the receiver to scan the interior of the packet
+ payload content to determine whether any start codes are found in the
+ interior of the packet that can be used as resync points. The use of
+ an attached copy of a picture header for a Follow-on Packet is useful
+ only if the interior of the packet or some subsequent Follow-on
+ Packet contains a resync code, such as a GOB or slice start code.
+ PLEN>0 is allowed, since it may allow resync in the interior of the
+ packet. The decoder may also be resynchronized at the next segment
+ or picture packet.
+
+ Here is an example of a Follow-on Packet (with PLEN=0):
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
+ | RR |0|V|0|0|0|0|0|0|0|0|0| bitstream data
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
+
+7. Use of this Payload Specification
+
+ There is no syntactical difference between a picture segment packet
+ and a Follow-on Packet, other than the indication P=1 for picture
+ segment or sequence ending packets and P=0 for Follow-on Packets.
+ See the following for a summary of the entire packet types and ways
+ to distinguish between them.
+
+ It is possible to distinguish between the different packet types by
+ checking the P bit and the first 6 bits of the payload along with the
+ header information. The following table shows the packet type for
+ permutations of this information (see also the picture/GOB/Slice
+ header descriptions in H.263+ for details):
+
+
+
+
+
+
+
+
+
+Ott, et al. Standards Track [Page 15]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ -------------+--------------+----------------------+----------------
+ First 6 bits | P-Bit | PLEN | Packet | Remarks
+ of Payload |(payload hdr.)| |
+ -------------+--------------+----------------------+----------------
+ 100000 | 1 | 0 | Picture | Typical Picture
+ 100000 | 1 | > 0 | Picture | Note UFEP
+ 1xxxxx | 1 | 0 | GOB/Slice/EOS/EOSBS | See possible GNs
+ 1xxxxx | 1 | > 0 | GOB/Slice | See possible GNs
+ Xxxxxx | 0 | 0 | Follow-on |
+ Xxxxxx | 0 | > 0 | Follow-on | Interior Resync
+ -------------+--------------+----------------------+----------------
+
+ The details regarding the possible values of the five bit Group
+ Number (GN) field that follows the initial "1" bit when the P-bit is
+ "1" for a GOB, Slice, EOS, or EOSBS packet are found in Section 5.2.3
+ of H.263 [H263].
+
+ As defined in this specification, every start of a coded frame (as
+ indicated by the presence of a PSC) has to be encapsulated as a
+ picture segment packet. If the whole coded picture fits into one
+ packet of reasonable size (which is dependent on the connection
+ characteristics), this is the only type of packet that may need to be
+ used. Due to the high compression ratio achieved by H.263+, it is
+ often possible to use this mechanism, especially for small spatial
+ picture formats such as Quarter Common Intermediate Format (QCIF) and
+ typical Internet packet sizes around 1500 bytes.
+
+ If the complete coded frame does not fit into a single packet, two
+ different ways for the packetization may be chosen. In case of very
+ low or zero packet loss probability, one or more Follow-on Packets
+ may be used for coding the rest of the picture. Doing so leads to
+ minimal coding and packetization overhead, as well as to an optimal
+ use of the maximal packet size, but does not provide any added error
+ resilience.
+
+ The alternative is to break the picture into reasonably small
+ partitions, called Segments (by using the Slice or GOB mechanism),
+ that do offer synchronization points. By doing so and using the
+ Picture Segment payload with PLEN>0, decoding of the transmitted
+ packets is possible even in cases in which the Picture packet
+ containing the picture header was lost (provided any necessary
+ reference picture is available). Picture Segment packets can also be
+ used in conjunction with Follow-on Packets for large segment sizes.
+
+
+
+
+
+
+
+
+Ott, et al. Standards Track [Page 16]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+8. Media Type Definition
+
+ This section specifies optional parameters that MAY be used to select
+ optional features of the H.263 codec. The parameters are specified
+ here as part of the Media Type registration for the ITU-T H.263
+ codec. A mapping of the parameters into the Session Description
+ Protocol (SDP) [RFC4566] is also provided for applications that use
+ SDP. Multiple parameters SHOULD be expressed as a media type string,
+ in the form of a semicolon-separated list of parameter=value pairs.
+
+8.1. Media Type Registrations
+
+ This section describes the media types and names associated with this
+ payload format. The section updates the previous registered version
+ in RFC 3555 [RFC3555].
+
+8.1.1. Registration of Media Type video/H263-1998
+
+ Type name: video
+
+ Subtype name: H263-1998
+
+ Required parameters: None
+
+ Optional parameters:
+
+ SQCIF: Specifies the MPI (Minimum Picture Interval) for SQCIF
+ resolution. Permissible values are integer values from 1 to 32,
+ which correspond to a maximum frame rate of 30/(1.001 * the
+ specified value) frames per second.
+
+ QCIF: Specifies the MPI (Minimum Picture Interval) for QCIF
+ resolution. Permissible values are integer values from 1 to 32,
+ which correspond to a maximum frame rate of 30/(1.001 * the
+ specified value) frames per second.
+
+ CIF: Specifies the MPI (Minimum Picture Interval) for CIF
+ resolution. Permissible values are integer values from 1 to 32,
+ which correspond to a maximum frame rate of 30/(1.001 * the
+ specified value) frames per second.
+
+ CIF4: Specifies the MPI (Minimum Picture Interval) for 4CIF
+ resolution. Permissible values are integer values from 1 to 32,
+ which correspond to a maximum frame rate of 30/(1.001 * the
+ specified value) frames per second.
+
+
+
+
+
+
+Ott, et al. Standards Track [Page 17]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ CIF16: Specifies the MPI (Minimum Picture Interval) for 16CIF
+ resolution. Permissible values are integer values from 1 to 32,
+ which correspond to a maximum frame rate of 30/(1.001 * the
+ specified value) frames per second.
+
+ CUSTOM: Specifies the MPI (Minimum Picture Interval) for a
+ custom-defined resolution. The custom parameter receives three
+ comma-separated values, Xmax, Ymax, and MPI. The Xmax and Ymax
+ parameters describe the number of pixels in the X and Y axis and
+ must be evenly divisible by 4. The permissible values for MPI are
+ integer values from 1 to 32, which correspond to a maximum frame
+ rate of 30/(1.001 *the specified value).
+
+ A system that declares support of a specific MPI for one of the
+ resolutions SHALL also implicitly support a lower resolution with
+ the same MPI.
+
+ A list of optional annexes specifies which annexes of H.263 are
+ supported. The optional annexes are defined as part of H263-1998,
+ H263-2000. H.263 annex X [H263] defines profiles that group
+ annexes for specific applications. A system that supports a
+ specific annex SHALL specify its support using the optional
+ parameters. If no annex is specified, then the stream is Baseline
+ H.263.
+
+ The allowed optional parameters for the annexes are "F", "I", "J",
+ "T", "K", "N", and "P".
+
+ "F", "I", "J", and "T" if supported, SHALL have the value "1". If
+ not supported, they should not be listed or SHALL have the value
+ "0".
+
+ "K" can receive one of four values 1 - 4:
+
+ 1: Slices In Order, Non-Rectangular
+
+ 2: Slices In Order, Rectangular
+
+ 3: Slices Not Ordered, Non-Rectangular
+
+ 4: Slices Not Ordered, Rectangular
+
+ "N": Reference Picture Selection mode - Four numeric choices
+ (1 - 4) are available, representing the following modes:
+
+ 1: NEITHER: No back-channel data is returned from the decoder to
+ the encoder.
+
+
+
+
+Ott, et al. Standards Track [Page 18]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ 2: ACK: The decoder returns only acknowledgment messages.
+
+ 3: NACK: The decoder returns only non-acknowledgment messages.
+
+ 4: ACK+NACK: The decoder returns both acknowledgment and non-
+ acknowledgment messages.
+
+ No special provision is made herein for carrying back channel
+ information. The Extended RTP Profile for RTCP-based Feedback
+ [RFC4585] MAY be used as a back channel mechanism.
+
+ "P": Reference Picture Resampling, in which the following submodes
+ are represented as a number from 1 to 4:
+
+ 1: dynamicPictureResizingByFour
+
+ 2: dynamicPictureResizingBySixteenthPel
+
+ 3: dynamicWarpingHalfPel
+
+ 4: dynamicWarpingSixteenthPel
+
+ Example: P=1,3
+
+ PAR: Arbitrary Pixel Aspect Ratio. Defines the width:height ratio
+ by two colon-separated integers between 0 and 255. Default ratio
+ is 12:11, if not otherwise specified.
+
+ CPCF: Arbitrary (Custom) Picture Clock Frequency: CPCF is a
+ comma-separated list of eight parameters specifying a custom
+ picture clock frequency and the MPI (minimum picture interval) for
+ the supported picture sizes when using that picture clock
+ frequency. The first two parameters are cd, which is an integer
+ from 1 to 127, and cf, which is either 1000 or 1001. The custom
+ picture clock frequency is given by the formula 1800000/(cd*cf)
+ provided in the RTP Timestamp semantics in Section 3.1 above (as
+ specified in H.263 section 5.1.7). Following the values of cd and
+ cf, the remaining six parameters are SQCIFMPI, QCIFMPI, CIFMPI,
+ CIF4MPI, CIF16MPI, and CUSTOMMPI, which each specify an integer
+ MPI (minimum picture interval) for the standard picture sizes
+ SQCIF, QCIF, CIF, 4CIF, 16CIF, and CUSTOM, respectively, as
+ described above. The MPI value indicates a maximum frame rate of
+ 1800000/(cd*cf*MPI) frames per second for MPI parameters having a
+ value in the range from 1 to 2048, inclusive. An MPI value of 0
+ specifies that the associated picture size is not supported for
+ the custom picture clock frequency. If the CUSTOMMPI parameter is
+ not equal to 0, the CUSTOM parameter SHALL also be present (so
+
+
+
+
+Ott, et al. Standards Track [Page 19]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ that the Xmax and Ymax dimensions of the custom picture size are
+ defined).
+
+ BPP: BitsPerPictureMaxKb. Maximum number of bits in units of 1024
+ bits allowed to represent a single picture. If this parameter is
+ not present, then the default value, based on the maximum
+ supported resolution, is used. BPP is integer value between 0 and
+ 65536.
+
+ HRD: Hypothetical Reference Decoder. See annex B of H.263
+ specification [H263]. This parameter, if supported, SHALL have
+ the value "1". If not supported, it should not be listed or SHALL
+ have the value "0".
+
+ Encoding considerations:
+
+ This media type is framed and binary; see Section 4.8 in [RFC4288]
+
+ Security considerations: See Section 11 of RFC 4629
+
+ Interoperability considerations:
+
+ These are receiver options; current implementations will not send
+ any optional parameters in their SDP. They will ignore the
+ optional parameters and will encode the H.263 stream without any
+ of the annexes. Most decoders support at least QCIF and CIF fixed
+ resolutions, and they are expected to be available almost in every
+ H.263-based video application.
+
+ Published specification: RFC 4629
+
+ Applications that use this media type:
+
+ Audio and video streaming and conferencing tools.
+
+ Additional information: None
+
+ Person and email address to contact for further information:
+
+ Roni Even: roni.even@polycom.co.il
+
+ Intended usage: COMMON
+
+ Restrictions on usage:
+
+ This media type depends on RTP framing and thus is only defined
+ for transfer via RTP [RFC3550]. Transport within other framing
+ protocols is not defined at this time.
+
+
+
+Ott, et al. Standards Track [Page 20]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ Author: Roni Even
+
+ Change controller:
+
+ IETF Audio/Video Transport working group, delegated from the IESG.
+
+8.1.2. Registration of Media Type video/H263-2000
+
+ Type name: video
+
+ Subtype name: H263-2000
+
+ Required parameters: None
+
+ Optional parameters:
+
+ The optional parameters of the H263-1998 type MAY be used with
+ this media subtype. Specific optional parameters that may be used
+ with the H263-2000 type are as follows:
+
+ PROFILE: H.263 profile number, in the range 0 through 10,
+ specifying the supported H.263 annexes/subparts based on H.263
+ annex X [H263]. The annexes supported in each profile are listed
+ in table X.1 of H.263 annex X. If no profile or H.263 annex is
+ specified, then the stream is Baseline H.263 (profile 0 of H.263
+ annex X).
+
+ LEVEL: Level of bitstream operation, in the range 0 through 100,
+ specifying the level of computational complexity of the decoding
+ process. The level are described in table X.2 of H.263 annex X.
+
+ According to H.263 annex X, support of any level other than level
+ 45 implies support of all lower levels. Support of level 45
+ implies support of level 10.
+
+ A system that specifies support of a PROFILE MUST specify the
+ supported LEVEL.
+
+ INTERLACE: Interlaced or 60 fields indicates the support for
+ interlace display mode, as specified in H.263 annex W.6.3.11.
+ This parameter, if supported SHALL have the value "1". If not
+ supported, it should not be listed or SHALL have the value "0".
+
+ Encoding considerations:
+
+ This media type is framed and binary; see Section 4.8 in [RFC4288]
+
+ Security considerations: See Section 11 of RFC 4629
+
+
+
+Ott, et al. Standards Track [Page 21]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ Interoperability considerations:
+
+ The optional parameters PROFILE and LEVEL SHALL NOT be used with
+ any of the other optional parameters.
+
+ Published specification: RFC 4629
+
+ Applications that use this media type:
+
+ Audio and video streaming and conferencing tools.
+
+ Additional information: None
+
+ Person and email address to contact for further information :
+
+ Roni Even: roni.even@polycom.co.il
+
+ Intended usage: COMMON
+
+ Restrictions on usage:
+
+ This media type depends on RTP framing and thus is only defined
+ for transfer via RTP [RFC3550]. Transport within other framing
+ protocols is not defined at this time.
+
+ Author: Roni Even
+
+ Change controller:
+
+ IETF Audio/Video Transport working group delegated from the IESG.
+
+8.2. SDP Usage
+
+ The media types video/H263-1998 and video/H263-2000 are mapped to
+ fields in the Session Description Protocol (SDP) as follows:
+
+ o The media name in the "m=" line of SDP MUST be video.
+
+ o The encoding name in the "a=rtpmap" line of SDP MUST be H263-1998
+ or H263-2000 (the media subtype).
+
+ o The clock rate in the "a=rtpmap" line MUST be 90000.
+
+ o The optional parameters, if any, MUST be included in the "a=fmtp"
+ line of SDP. These parameters are expressed as a media type
+ string, in the form of a semicolon-separated list of
+ parameter=value pairs. The optional parameters PROFILE and LEVEL
+ SHALL NOT be used with any of the other optional parameters.
+
+
+
+Ott, et al. Standards Track [Page 22]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+8.2.1. Usage with the SDP Offer Answer Model
+
+ For offering H.263 over RTP using SDP in an Offer/Answer model
+ [RFC3264], the following considerations are necessary.
+
+ Codec options (F,I,J,K,N,P,T): These options MUST NOT appear unless
+ the sender of these SDP parameters is able to decode those options.
+ These options designate receiver capabilities even when sent in a
+ "sendonly" offer.
+
+ Profile: The offer of a SDP profile parameter signals that the
+ offerer can decode a stream that uses the specified profile. Each
+ profile uses different H.263 annexes, so there is no implied
+ relationship between them. An answerer SHALL NOT change the profile
+ parameter and MUST reject the payload type containing an unsupported
+ profile. A decoder that supports a profile SHALL also support H.263
+ baseline profile (profile 0). An offerer is RECOMMENDED to offer all
+ the different profiles it is interested to use as individual payload
+ types. In addition an offerer, sending an offer using the PROFILE
+ optional parameter, is RECOMMENDED to offer profile 0, as this will
+ enable communication, and in addition allows an answerer to add those
+ profiles it does support in an answer.
+
+ LEVEL: The LEVEL parameter in an offer indicates the maximum
+ computational complexity supported by the offerer in performing
+ decoding for the given PROFILE. An answerer MAY change the value
+ (both up and down) of the LEVEL parameter in its answer to indicate
+ the highest value it supports.
+
+ INTERLACE: The parameter MAY be included in either offer or answer to
+ indicate that the offerer or answerer respectively supports reception
+ of interlaced content. The inclusion in either offer or answer is
+ independent of each other.
+
+ Picture sizes and MPI: Supported picture sizes and their
+ corresponding minimum picture interval (MPI) information for H.263
+ can be combined. All picture sizes can be advertised to the other
+ party, or only a subset. The terminal announces only those picture
+ sizes (with their MPIs) which it is willing to receive. For example,
+ MPI=2 means that the maximum (decodable) picture rate per second is
+ 15/1.001 (approximately 14.985).
+
+ If the receiver does not specify the picture size/MPI optional
+ parameter, then it SHOULD be ready to receive QCIF resolution with
+ MPI=1.
+
+ Parameters offered first are the most preferred picture mode to be
+ received.
+
+
+
+Ott, et al. Standards Track [Page 23]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ Here is an example of the usage of these parameters:
+
+ CIF=4;QCIF=3;SQCIF=2;CUSTOM=360,240,2
+
+ This means that the encoder SHOULD send CIF picture size, which it
+ can decode at MPI=4. If that is not possible, then QCIF with MPI
+ value 3 should be sent; if neither are possible, then SQCIF with MPI
+ value=2. The receiver is capable of (but least preferred) decoding
+ custom picture sizes (max 360x240) with MPI=2. Note that most
+ decoders support at least QCIF and CIF fixed resolutions, and that
+ they are expected to be available almost in every H.263-based video
+ application.
+
+ Below is an example of H.263 SDP in an offer:
+
+ a=fmtp:xx CIF=4;QCIF=2;F=1;K=1
+
+ This means that the sender of this message can decode an H.263 bit
+ stream with the following options and parameters: preferred
+ resolution is CIF (at up to 30/4.004 frames per second), but if that
+ is not possible then QCIF size is also supported (at up to 30/2.002
+ frames per second). Advanced Prediction mode (AP) and
+ slicesInOrder-NonRect options MAY be used.
+
+ Below is an example of H.263 SDP in an offer that includes the CPCF
+ parameter.
+
+ a=fmtp:xx CPCF=36,1000,0,1,1,0,0,2;CUSTOM=640,480,2;CIF=1;QCIF=1
+
+ This means that the sender of this message can decode an H.263 bit
+ stream with a preferred custom picture size of 640x480 at a maximum
+ frame rate of 25 frames per second using a custom picture clock
+ frequency of 50 Hz. If that is not possible, then the 640x480
+ picture size is also supported at up to 30/2.002 frames per second
+ using the ordinary picture clock frequency of 30/1.001 Hz. If
+ neither of those is possible, then the CIF and QCIF picture sizes are
+ also supported at up to 50 frames per second using the custom picture
+ clock frequency of 50 Hz or up to 30/1.001 frames per second using
+ the ordinary picture clock frequency of 30/1.001 Hz, and CIF is
+ preferred over QCIF.
+
+ The following limitation applies for usage of these media types when
+ performing offer/answer for sessions using multicast transport. An
+ answerer SHALL NOT change any of the parameters in an answer, instead
+ if the indicated values are not supported the payload type MUST be
+ rejected.
+
+
+
+
+
+Ott, et al. Standards Track [Page 24]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+9. Backward Compatibility to RFC 2429
+
+ The current document is a revision of RFC 2429 and obsoletes it.
+ This section will address the backward compatibility issues.
+
+9.1. New Optional Parameters for SDP
+
+ The document adds new optional parameters to the H263-1998 and H263-
+ 2000 payload type, defined in RFC 3555 [RFC3555]. Since these are
+ optional parameters we expect that old implementations will ignore
+ these parameters, and that new implementations that will receive the
+ H263-1998 and H263-2000 payload types with no parameters will behave
+ as if the other side can accept H.263 at QCIF resolution at a frame
+ rate not exceeding 15/1.001 (approximately 14.985) frames per second.
+
+10. IANA Considerations
+
+ This document updates the H.263 (1998) and H.263 (2000) media types,
+ described in RFC 3555 [RFC3555]. The updated media type
+ registrations are in Section 8.1.
+
+11. Security Considerations
+
+ RTP packets using the payload format defined in this specification
+ are subject to the security considerations discussed in the RTP
+ specification [RFC3550] and any appropriate RTP profile (for example,
+ [RFC3551]). This implies that confidentiality of the media streams
+ is achieved by encryption. Because the data compression used with
+ this payload format is applied end-to-end, encryption may be
+ performed after compression, so there is no conflict between the two
+ operations.
+
+ A potential denial-of-service threat exists for data encoding using
+ compression techniques that have non-uniform receiver-end
+ computational load. The attacker can inject pathological datagrams
+ into the stream that are complex to decode and cause the receiver to
+ be overloaded. The usage of authentication of at least the RTP
+ packet is RECOMMENDED.
+
+ As with any IP-based protocol, in some circumstances a receiver may
+ be overloaded simply by the receipt of too many packets, either
+ desired or undesired. Network-layer authentication may be used to
+ discard packets from undesired sources, but the processing cost of
+ the authentication itself may be too high. In a multicast
+ environment, pruning of specific sources may be implemented in future
+ versions of IGMP [RFC2032] and in multicast routing protocols to
+ allow a receiver to select which sources are allowed to reach it.
+
+
+
+
+Ott, et al. Standards Track [Page 25]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ A security review of this payload format found no additional
+ considerations beyond those in the RTP specification.
+
+12. Acknowledgements
+
+ This is to acknowledge the work done by Chad Zhu, Linda Cline, Gim
+ Deisher, Tom Gardos, Christian Maciocco, and Donald Newell from Intel
+ Corp., who co-authored RFC 2429.
+
+ We would also like to acknowledge the work of Petri Koskelainen from
+ Nokia and Nermeen Ismail from Cisco, who helped with composing the
+ text for the new media types.
+
+13. Changes from Previous Versions of the Documents
+
+13.1. Changes from RFC 2429
+
+ The changes from the RFC 2429 are:
+
+ 1. The H.263 1998 and 2000 media type are now in the payload
+ specification.
+
+ 2. Added optional parameters to the H.263 1998 and 2000 media types.
+
+ 3. Mandate the usage of RFC 2429 for all H.263. RFC 2190 payload
+ format should be used only to interact with legacy systems.
+
+13.2. Changes from RFC 3555
+
+ This document adds new optional parameters to the H263-1998 and
+ H263-2000 payload types.
+
+14. References
+
+14.1. Normative References
+
+ [H263] International Telecommunications Union - Telecommunication
+ Standardization Sector, "Video coding for low bit rate
+ communication", ITU-T Recommendation H.263, January 2005.
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
+ Jacobson, "RTP: A Transport Protocol for Real-Time
+ Applications", STD 64, RFC 3550, July 2003.
+
+
+
+
+
+Ott, et al. Standards Track [Page 26]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+ [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and
+ Video Conferences with Minimal Control", STD 65, RFC 3551,
+ July 2003.
+
+ [RFC3555] Casner, S. and P. Hoschka, "MIME Type Registration of RTP
+ Payload Formats", RFC 3555, July 2003.
+
+ [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
+ Description Protocol", RFC 4566, July 2006.
+
+14.2. Informative References
+
+ [RFC2032] Turletti, T., "RTP Payload Format for H.261 Video
+ Streams", RFC 2032, October 1996.
+
+ [RFC2190] Zhu, C., "RTP Payload Format for H.263 Video Streams", RFC
+ 2190, September 1997.
+
+ [RFC2429] Bormann, C., Cline, L., Deisher, G., Gardos, T., Maciocco,
+ C., Newell, D., Ott, J., Sullivan, G., Wenger, S., and C.
+ Zhu, "RTP Payload Format for the 1998 Version of ITU-T
+ Rec. H.263 Video (H.263+)", RFC 2429, October 1998.
+
+ [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
+ with Session Description Protocol (SDP)", RFC 3264, June
+ 2002.
+
+ [RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and
+ Registration Procedures", BCP 13, RFC 4288, December 2005.
+
+ [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey,
+ "Extended RTP Profile for Real-time Transport Control
+ Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, July
+ 2006.
+
+ [RFC4628] Even, R., "RTP Payload Format for H.263 Moving RFC 2190 to
+ Historic Status", RFC 4628, January 2007.
+
+ [Vredun] Wenger, S., "Video Redundancy Coding in H.263+", Proc.
+ Audio-Visual Services over Packet Networks, Aberdeen, U.K.
+ 9/1997, September 1997.
+
+
+
+
+
+
+
+
+
+
+Ott, et al. Standards Track [Page 27]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+Authors' Addresses
+
+ Joerg Ott
+ Helsinki University of Technology
+ Networking Laboratory
+ PO Box 3000
+ 02015 TKK, Finland
+
+ EMail: jo@netlab.tkk.fi
+
+
+ Carsten Bormann
+ Universitaet Bremen TZI
+ Postfach 330440
+ D-28334 Bremen, GERMANY
+
+ Phone: +49.421.218-7024
+ Fax: +49.421.218-7000
+ EMail: cabo@tzi.org
+
+
+ Gary Sullivan
+ Microsoft Corp.
+ One Microsoft Way
+ Redmond, WA 98052
+ USA
+
+ EMail: garysull@microsoft.com
+
+
+ Stephan Wenger
+ Nokia Research Center
+ P.O. Box 100
+ 33721 Tampere
+ Finland
+
+ EMail: stewe@stewe.org
+
+
+ Roni Even (editor)
+ Polycom
+ 94 Derech Em Hamoshavot
+ Petach Tikva 49130
+ Israel
+
+ EMail: roni.even@polycom.co.il
+
+
+
+
+
+Ott, et al. Standards Track [Page 28]
+
+RFC 4629 H.263 RTP Payload Format January 2007
+
+
+Full Copyright Statement
+
+ Copyright (C) The IETF Trust (2007).
+
+ This document is subject to the rights, licenses and restrictions
+ contained in BCP 78, and except as set forth therein, the authors
+ retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+ OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
+ THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
+ THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+ WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the procedures with respect to rights in RFC documents can be
+ found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at
+ ietf-ipr@ietf.org.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+Ott, et al. Standards Track [Page 29]
+