home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / rfc / rfc2032 < prev    next >
Text File  |  1996-10-30  |  27KB  |  620 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                        T. Turletti
  8. Request for Comments: 2032                                           MIT
  9. Category: Standards Track                                     C. Huitema
  10.                                                                 Bellcore
  11.                                                             October 1996
  12.  
  13.  
  14.                RTP Payload Format for H.261 Video Streams
  15.  
  16. Status of this Memo
  17.  
  18.    This document specifies an Internet standards track protocol for the
  19.    Internet community, and requests discussion and suggestions for
  20.    improvements.  Please refer to the current edition of the "Internet
  21.    Official Protocol Standards" (STD 1) for the standardization state
  22.    and status of this protocol.  Distribution of this memo is unlimited.
  23.  
  24. Table of Contents
  25.  
  26.    1. Abstract .............................................    1
  27.    2. Purpose of this document .............................    2
  28.    3. Structure of the packet stream .......................    2
  29.    3.1 Overview of the ITU-T recommendation H.261 ..........    2
  30.    3.2 Considerations for packetization ....................    3
  31.    4. Specification of the packetization scheme ............    4
  32.    4.1 Usage of RTP ........................................    4
  33.    4.2 Recommendations for operation with hardware codecs ..    6
  34.    5. Packet loss issues ...................................    7
  35.    5.1 Use of optional H.261-specific control packets ......    8
  36.    5.2 H.261 control packets definition ....................    9
  37.    5.2.1 Full INTRA-frame Request (FIR) packet .............    9
  38.    5.2.2 Negative ACKnowledgements (NACK) packet ...........    9
  39.    6. Security Considerations ..............................   10
  40.     Authors' Addresses .....................................   10
  41.     Acknowledgements .......................................   10
  42.     References .............................................   11
  43.  
  44. 1.  Abstract
  45.  
  46.    This memo describes a scheme to packetize an H.261 video stream for
  47.    transport using the Real-time Transport Protocol, RTP, with any of
  48.    the underlying protocols that carry RTP.
  49.  
  50.    This specification is a product of the Audio/Video Transport working
  51.    group within the Internet Engineering Task Force.  Comments are
  52.    solicited and should be addressed to the working group's mailing list
  53.    at rem-conf@es.net and/or the authors.
  54.  
  55.  
  56.  
  57.  
  58. Turletti & Huitema          Standards Track                     [Page 1]
  59.  
  60. RFC 2032           RTP Payload Format for H.261 Video       October 1996
  61.  
  62.  
  63. 2.  Purpose of this document
  64.  
  65.    The ITU-T recommendation H.261 [6] specifies the encodings used by
  66.    ITU-T compliant video-conference codecs. Although these encodings
  67.    were originally specified for fixed data rate ISDN circuits,
  68.    experiments [3],[8] have shown that they can also be used over
  69.    packet-switched networks such as the Internet.
  70.  
  71.    The purpose of this memo is to specify the RTP payload format for
  72.    encapsulating H.261 video streams in RTP [1].
  73.  
  74. 3.  Structure of the packet stream
  75.  
  76. 3.1.  Overview of the ITU-T recommendation H.261
  77.  
  78.    The H.261 coding is organized as a hierarchy of groupings.  The video
  79.    stream is composed of a sequence of images, or frames, which are
  80.    themselves organized as a set of Groups of Blocks (GOB). Note that
  81.    H.261 "pictures" are referred as "frames" in this document.  Each GOB
  82.    holds a set of 3 lines of 11 macro blocks (MB). Each MB carries
  83.    information on a group of 16x16 pixels: luminance information is
  84.    specified for 4 blocks of 8x8 pixels, while chrominance information
  85.    is given by two "red" and "blue" color difference components at a
  86.    resolution of only 8x8 pixels.  These components and the codes
  87.    representing their sampled values are as defined in the ITU-R
  88.    Recommendation 601 [7].
  89.  
  90.    This grouping is used to specify information at each level of the
  91.    hierarchy:
  92.  
  93.    -    At the frame level, one specifies information such as the
  94.         delay from the previous frame, the image format, and
  95.         various indicators.
  96.  
  97.    -    At the GOB level, one specifies the GOB number and the
  98.         default quantifier that will be used for the MBs.
  99.  
  100.    -    At the MB level, one specifies which blocks are present
  101.         and which did not change, and optionally a quantifier and
  102.         motion vectors.
  103.  
  104.    Blocks which have changed are encoded by computing the discrete
  105.    cosine transform (DCT) of their coefficients, which are then
  106.    quantized and Huffman encoded (Variable Length Codes).
  107.  
  108.    The H.261 Huffman encoding includes a special "GOB start" pattern,
  109.    composed of 15 zeroes followed by a single 1, that cannot be imitated
  110.    by any other code words. This pattern is included at the beginning of
  111.  
  112.  
  113.  
  114. Turletti & Huitema          Standards Track                     [Page 2]
  115.  
  116. RFC 2032           RTP Payload Format for H.261 Video       October 1996
  117.  
  118.  
  119.    each GOB header (and also at the beginning of each frame header) to
  120.    mark the separation between two GOBs, and is in fact used as an
  121.    indicator that the current GOB is terminated. The encoding also
  122.    includes a stuffing pattern, composed of seven zeroes followed by
  123.    four ones; that stuffing pattern can only be entered between the
  124.    encoding of MBs, or just before the GOB separator.
  125.  
  126. 3.2.  Considerations for packetization
  127.  
  128.    H.261 codecs designed for operation over ISDN circuits produce a bit
  129.    stream composed of several levels of encoding specified by H.261 and
  130.    companion recommendations.  The bits resulting from the Huffman
  131.    encoding are arranged in 512-bit frames, containing 2 bits of
  132.    synchronization, 492 bits of data and 18 bits of error correcting
  133.    code.  The 512-bit frames are then interlaced with an audio stream
  134.    and transmitted over px64 kbps circuits according to specification
  135.    H.221 [5].
  136.  
  137.    When transmitting over the Internet, we will directly consider the
  138.    output of the Huffman encoding. All the bits produced by the Huffman
  139.    encoding stage will be included in the packet. We will not carry the
  140.    512-bit frames, as protection against bit errors can be obtained by
  141.    other means. Similarly, we will not attempt to multiplex audio and
  142.    video signals in the same packets, as UDP and RTP provide a much more
  143.    efficient way to achieve multiplexing.
  144.  
  145.    Directly transmitting the result of the Huffman encoding over an
  146.    unreliable stream of UDP datagrams would, however, have poor error
  147.    resistance characteristics. The result of the hierachical structure
  148.    of H.261 bit stream is that one needs to receive the information
  149.    present in the frame header to decode the GOBs, as well as the
  150.    information present in the GOB header to decode the MBs.  Without
  151.    precautions, this would mean that one has to receive all the packets
  152.    that carry an image in order to properly decode its components.
  153.  
  154.    If each image could be carried in a single packet, this requirement
  155.    would not create a problem. However, a video image or even one GOB by
  156.    itself can sometimes be too large to fit in a single packet.
  157.    Therefore, the MB is taken as the unit of fragmentation.  Packets
  158.    must start and end on a MB boundary, i.e. a MB cannot be split across
  159.    multiple packets.  Multiple MBs may be carried in a single packet
  160.    when they will fit within the maximal packet size allowed. This
  161.    practice is recommended to reduce the packet send rate and packet
  162.    overhead.
  163.  
  164.    To allow each packet to be processed independently for efficient
  165.    resynchronization in the presence of packet losses, some state
  166.    information from the frame header and GOB header is carried with each
  167.  
  168.  
  169.  
  170. Turletti & Huitema          Standards Track                     [Page 3]
  171.  
  172. RFC 2032           RTP Payload Format for H.261 Video       October 1996
  173.  
  174.  
  175.    packet to allow the MBs in that packet to be decoded.  This state
  176.    information includes the GOB number in effect at the start of the
  177.    packet, the macroblock address predictor (i.e. the last MBA encoded
  178.    in the previous packet), the quantizer value in effect prior to the
  179.    start of this packet (GQUANT, MQUANT or zero in case of a beginning
  180.    of GOB) and the reference motion vector data (MVD) for computing the
  181.    true MVDs contained within this packet. The bit stream cannot be
  182.    fragmented between a GOB header and MB 1 of that GOB.
  183.  
  184.    Moreover, since the compressed MB may not fill an integer number of
  185.    octets, the data header contains two three-bit integers, SBIT and
  186.    EBIT, to indicate the number of unused bits in the first and last
  187.    octets of the H.261 data, respectively.
  188.  
  189. 4.  Specification of the packetization scheme
  190.  
  191. 4.1.  Usage of RTP
  192.  
  193.    The H.261 information is carried as payload data within the RTP
  194.    protocol. The following fields of the RTP header are specified:
  195.  
  196.    -    The payload type should specify H.261 payload format (see
  197.         the companion RTP profile document RFC 1890).
  198.  
  199.    -    The RTP timestamp encodes the sampling instant of the
  200.         first video image contained in the RTP data packet. If a
  201.         video image occupies more than one packet, the timestamp
  202.         will be the same on all of those packets. Packets from
  203.         different video images must have different timestamps so
  204.         that frames may be distinguished by the timestamp. For
  205.         H.261 video streams, the RTP timestamp is based on a
  206.         90kHz clock. This clock rate is a multiple of the natural
  207.         H.261 frame rate (i.e. 30000/1001 or approx. 29.97 Hz).
  208.         That way, for each frame time, the clock is just
  209.         incremented by the multiple and this removes inaccuracy
  210.         in calculating the timestamp. Furthermore, the initial
  211.         value of the timestamp is random (unpredictable) to make
  212.         known-plaintext attacks on encryption more difficult, see
  213.         RTP [1]. Note that if multiple frames are encoded in a
  214.         packet (e.g. when there are very little changes between
  215.         two images), it is necessary to calculate display times
  216.         for the frames after the first using the timing
  217.         information in the H.261 frame header. This is required
  218.         because the RTP timestamp only gives the display time of
  219.         the first frame in the packet.
  220.  
  221.    -    The marker bit of the RTP header is set to one in the
  222.         last packet of a video frame, and otherwise, must be
  223.  
  224.  
  225.  
  226. Turletti & Huitema          Standards Track                     [Page 4]
  227.  
  228. RFC 2032           RTP Payload Format for H.261 Video       October 1996
  229.  
  230.  
  231.         zero. Thus, it is not necessary to wait for a following
  232.         packet (which contains the start code that terminates the
  233.         current frame) to detect that a new frame should be
  234.         displayed.
  235.  
  236.    The H.261 data will follow the RTP header, as in:
  237.  
  238.      0                   1                   2                   3
  239.      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
  240.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  241.     .                                                               .
  242.     .                          RTP header                           .
  243.     .                                                               .
  244.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  245.     |                          H.261  header                        |
  246.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  247.     |                          H.261 stream ...                     .
  248.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  249.  
  250.    The H.261 header is defined as following:
  251.  
  252.      0                   1                   2                   3
  253.      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
  254.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  255.     |SBIT |EBIT |I|V| GOBN  |   MBAP  |  QUANT  |  HMVD   |  VMVD   |
  256.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  257.  
  258.    The fields in the H.261 header have the following meanings:
  259.  
  260.    Start bit position (SBIT): 3 bits
  261.      Number of most significant bits that should be ignored
  262.      in the first data octet.
  263.  
  264.    End bit position (EBIT): 3 bits
  265.      Number of least significant bits that should be ignored
  266.      in the last data octet.
  267.  
  268.    INTRA-frame encoded data (I): 1 bit
  269.      Set to 1 if this stream contains only INTRA-frame coded
  270.      blocks. Set to 0 if this stream may or may not contain
  271.      INTRA-frame coded blocks. The sense of this bit may not
  272.      change during the course of the RTP session.
  273.  
  274.    Motion Vector flag (V): 1 bit
  275.      Set to 0 if motion vectors are not used in this stream.
  276.      Set to 1 if motion vectors may or may not be used in
  277.      this stream. The sense of this bit may not change during
  278.      the course of the session.
  279.  
  280.  
  281.  
  282. Turletti & Huitema          Standards Track                     [Page 5]
  283.  
  284. RFC 2032           RTP Payload Format for H.261 Video       October 1996
  285.  
  286.  
  287.    GOB number (GOBN): 4 bits
  288.      Encodes the GOB number in effect at the start of the
  289.      packet. Set to 0 if the packet begins with a GOB header.
  290.  
  291.    Macroblock address predictor (MBAP): 5 bits
  292.      Encodes the macroblock address predictor (i.e. the last
  293.      MBA encoded in the previous packet). This predictor ranges
  294.      from 0-32 (to predict the valid MBAs 1-33), but because
  295.      the bit stream cannot be fragmented between a GOB header
  296.      and MB 1, the predictor at the start of the packet can
  297.      never be 0. Therefore, the range is 1-32, which is biased
  298.      by -1 to fit in 5 bits. For example, if MBAP is 0, the
  299.      value of the MBA predictor is 1. Set to 0 if the packet
  300.      begins with a GOB header.
  301.  
  302.    Quantizer (QUANT): 5 bits
  303.      Quantizer value (MQUANT or GQUANT) in effect prior to the
  304.      start of this packet. Set to 0 if the packet begins with
  305.      a GOB header.
  306.  
  307.    Horizontal motion vector data (HMVD): 5 bits
  308.      Reference horizontal motion vector data (MVD). Set to 0
  309.      if V flag is 0 or if the packet begins with a GOB header,
  310.      or when the MTYPE of the last MB encoded in the previous
  311.      packet was not MC. HMVD is encoded as a 2's complement
  312.      number, and `10000' corresponding to the value -16 is
  313.      forbidden (motion vector fields range from +/-15).
  314.  
  315.    Vertical motion vector data (VMVD): 5 bits
  316.      Reference vertical motion vector data (MVD). Set to 0 if
  317.      V flag is 0 or if the packet begins with a GOB header, or
  318.      when the MTYPE of the last MB encoded in the previous
  319.      packet was not MC. VMVD is encoded as a 2's complement
  320.      number, and `10000' corresponding to the value -16 is
  321.      forbidden (motion vector fields range from +/-15).
  322.  
  323.    Note that the I and V flags are hint flags, i.e. they can be inferred
  324.    from the bit stream. They are included to allow decoders to make
  325.    optimizations that would not be possible if these hints were not
  326.    provided before bit stream was decoded.  Therefore, these bits cannot
  327.    change for the duration of the stream. A conformant implementation
  328.    can always set V=1 and I=0.
  329.  
  330. 4.2.  Recommendations for operation with hardware codecs
  331.  
  332.    Packetizers for hardware codecs can trivially figure out GOB
  333.    boundaries using the GOB-start pattern included in the H.261 data.
  334.    (Note that software encoders already know the boundaries.) The
  335.  
  336.  
  337.  
  338. Turletti & Huitema          Standards Track                     [Page 6]
  339.  
  340. RFC 2032           RTP Payload Format for H.261 Video       October 1996
  341.  
  342.  
  343.    cheapest packetization implementation is to packetize at the GOB
  344.    level all the GOBs that fit in a packet.  But when a GOB is too
  345.    large, the packetizer has to parse it to do MB fragmentation. (Note
  346.    that only the Huffman encoding must be parsed and that it is not
  347.    necessary to fully decompress the stream, so this requires relatively
  348.    little processing; example implementations can be found in some
  349.    public H.261 codecs such as IVS [4] and VIC [9].) It is recommended
  350.    that MB level fragmentation be used when feasible in order to obtain
  351.    more efficient packetization. Using this fragmentation scheme reduces
  352.    the output packet rate and therefore reduces the overhead.
  353.  
  354.    At the receiver, the data stream can be depacketized and directed to
  355.    a hardware codec's input.  If the hardware decoder operates at a
  356.    fixed bit rate, synchronization may be maintained by inserting the
  357.    stuffing pattern between MBs (i.e., between packets) when the packet
  358.    arrival rate is slower than the bit rate.
  359.  
  360. 5.  Packet loss issues
  361.  
  362.    On the Internet, most packet losses are due to network congestion
  363.    rather than transmission errors. Using UDP, no mechanism is available
  364.    at the sender to know if a packet has been successfully received. It
  365.    is up to the application, i.e.  coder and decoder, to handle the
  366.    packet loss. Each RTP packet includes a a sequence number field which
  367.    can be used to detect packet loss.
  368.  
  369.    H.261 uses the temporal redundancy of video to perform compression.
  370.    This differential coding (or INTER-frame coding) is sensitive to
  371.    packet loss. After a packet loss, parts of the image may remain
  372.    corrupt until all corresponding MBs have been encoded in INTRA-frame
  373.    mode (i.e. encoded independently of past frames). There are several
  374.    ways to mitigate packet loss:
  375.  
  376.    (1)  One way is to use only INTRA-frame encoding and MB level
  377.         conditional replenishment. That is, only MBs that change
  378.         (beyond some threshold) are transmitted.
  379.  
  380.    (2)  Another way is to adjust the INTRA-frame encoding
  381.         refreshment rate according to the packet loss observed by
  382.         the receivers. The H.261 recommendation specifies that a
  383.         MB is INTRA-frame encoded at least every 132 times it is
  384.         transmitted. However, the INTRA-frame refreshment rate
  385.         can be raised in order to speed the recovery when the
  386.         measured loss rate is significant.
  387.  
  388.    (3)  The fastest way to repair a corrupted image is to request
  389.         an INTRA-frame coded image refreshment after a packet
  390.         loss is detected. One means to accomplish this is for the
  391.  
  392.  
  393.  
  394. Turletti & Huitema          Standards Track                     [Page 7]
  395.  
  396. RFC 2032           RTP Payload Format for H.261 Video       October 1996
  397.  
  398.  
  399.         decoder to send to the coder a list of packets lost. The
  400.         coder can decide to encode every MB of every GOB of the
  401.         following video frame in INTRA-frame mode (i.e. Full
  402.         INTRA-frame encoded), or if the coder can deduce from the
  403.         packet sequence numbers which MBs were affected by the
  404.         loss, it can save bandwidth by sending only those MBs in
  405.         INTRA-frame mode. This mode is particularly efficient in
  406.         point-to-point connection or when the number of decoders
  407.         is low.  The next section specifies how the refresh
  408.         function may be implemented.
  409.  
  410.    Note that the method (1) is currently implemented in the VIC
  411.    videoconferencing software [9]. Methods (2) and (3) are currently
  412.    implemented in the IVS videoconferencing software [4].
  413.  
  414. 5.1.  Use of optional H.261-specific control packets
  415.  
  416.    This specification defines two H.261-specific RTCP control packets,
  417.    "Full INTRA-frame Request" and "Negative Acknowledgement", described
  418.    in the next section.  Their purpose is to speed up refreshment of the
  419.    video in those situations where their use is feasible.  Support of
  420.    these H.261-specific control packets by the H.261 sender is optional;
  421.    in particular, early experiments have shown that the usage of this
  422.    feature could have very negative effects when the number of sites is
  423.    very large. Thus, these control packets should be used with caution.
  424.  
  425.    The H.261-specific control packets differ from normal RTCP packets in
  426.    that they are not transmitted to the normal RTCP destination
  427.    transport address for the RTP session (which is often a multicast
  428.    address).  Instead, these control packets are sent directly via
  429.    unicast from the decoder to the coder.  The destination port for
  430.    these control packets is the same port that the coder uses as a
  431.    source port for transmitting RTP (data) packets.  Therefore, these
  432.    packets may be considered "reverse" control packets.
  433.  
  434.    As a consequence, these control packets may only be used when no RTP
  435.    mixers or translators intervene in the path from the coder to the
  436.    decoder.  If such intermediate systems do intervene, the address of
  437.    the coder would no longer be present as the network-level source
  438.    address in packets received by the decoder, and in fact, it might not
  439.    be possible for the decoder to send packets directly to the coder.
  440.  
  441.    Some reliable multicast protocols use similar NACK control packets
  442.    transmitted over the normal multicast distribution channel, but they
  443.    typically use random delays to prevent a NACK implosion problem [2].
  444.    The goal of such protocols is to provide reliable multicast packet
  445.    delivery at the expense of delay, which is appropriate for
  446.    applications such as a shared whiteboard.
  447.  
  448.  
  449.  
  450. Turletti & Huitema          Standards Track                     [Page 8]
  451.  
  452. RFC 2032           RTP Payload Format for H.261 Video       October 1996
  453.  
  454.  
  455.    On the other hand, interactive video transmission is more sensitive
  456.    to delay and does not require full reliability.  For video
  457.    applications it is more effective to send the NACK control packets as
  458.    soon as possible, i.e. as soon as a loss is detected, without adding
  459.    any random delays. In this case, multicasting the NACK control
  460.    packets would generate useless traffic between receivers since only
  461.    the coder will use them.  But this method is only effective when the
  462.    number of receivers is small. e.g. in IVS [4] the H.261 specific
  463.    control packets are used only in point-to-point connections or in
  464.    point-to-multipoint connections when there are less than 10
  465.    participants in the conference.
  466.  
  467. 5.2.  H.261 control packets definition
  468.  
  469. 5.2.1.  Full INTRA-frame Request (FIR) packet
  470.  
  471.      0                   1                   2                   3
  472.      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
  473.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  474.     |V=2|P|   MBZ   |  PT=RTCP_FIR  |           length              |
  475.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  476.     |                              SSRC                             |
  477.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  478.  
  479.    This packet indicates that a receiver requires a full encoded image
  480.    in order to either start decoding with an entire image or to refresh
  481.    its image and speed the recovery after a burst of lost packets. The
  482.    receiver requests the source to force the next image in full "INTRA-
  483.    frame" coding mode, i.e. without using differential coding. The
  484.    various fields are defined in the RTP specification [1]. SSRC is the
  485.    synchronization source identifier for the sender of this packet. The
  486.    value of the packet type (PT) identifier is the constant RTCP_FIR
  487.    (192).
  488.  
  489. 5.2.2.  Negative ACKnowledgements (NACK) packet
  490.  
  491.    The format of the NACK packet is as follow:
  492.  
  493.      0                   1                   2                   3
  494.      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
  495.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  496.     |V=2|P|   MBZ   | PT=RTCP_NACK  |           length              |
  497.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  498.     |                              SSRC                             |
  499.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  500.     |              FSN              |              BLP              |
  501.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  502.  
  503.  
  504.  
  505.  
  506. Turletti & Huitema          Standards Track                     [Page 9]
  507.  
  508. RFC 2032           RTP Payload Format for H.261 Video       October 1996
  509.  
  510.  
  511.    The various fields T, P, PT, length and SSRC are defined in the RTP
  512.    specification [1]. The value of the packet type (PT) identifier is
  513.    the constant RTCP_NACK (193). SSRC is the synchronization source
  514.    identifier for the sender of this packet.
  515.  
  516.    The two remaining fields have the following meanings:
  517.  
  518.    First Sequence Number (FSN): 16 bits
  519.      Identifies the first sequence number lost.
  520.  
  521.    Bitmask of following lost packets (BLP): 16 bits
  522.      A bit is set to 1 if the corresponding packet has been lost,
  523.      and set to 0 otherwise. BLP is set to 0 only if no packet
  524.      other than that being NACKed (using the FSN field) has been
  525.      lost. BLP is set to 0x00001 if the packet corresponding to
  526.      the FSN and the following packet have been lost, etc.
  527.  
  528. 6.  Security Considerations
  529.  
  530.    Security issues are not discussed in this memo.
  531.  
  532. Authors' Addresses
  533.  
  534.    Thierry Turletti
  535.    INRIA - RODEO Project
  536.    2004 route des Lucioles
  537.    BP 93, 06902 Sophia Antipolis
  538.    FRANCE
  539.  
  540.    EMail: turletti@sophia.inria.fr
  541.  
  542.  
  543.    Christian Huitema
  544.    MCC 1J236B Bellcore
  545.    445 South Street
  546.    Morristown, NJ 07960-6438
  547.  
  548.    EMail: huitema@bellcore.com
  549.  
  550. Acknowledgements
  551.  
  552.    This memo is based on discussion within the AVT working group chaired
  553.    by Stephen Casner. Steve McCanne, Stephen Casner, Ronan Flood, Mark
  554.    Handley, Van Jacobson, Henning G.  Schulzrinne and John Wroclawski
  555.    provided valuable comments.  Stephen Casner and Steve McCanne also
  556.    helped greatly with getting this document into readable form.
  557.  
  558.  
  559.  
  560.  
  561.  
  562. Turletti & Huitema          Standards Track                    [Page 10]
  563.  
  564. RFC 2032           RTP Payload Format for H.261 Video       October 1996
  565.  
  566.  
  567. References
  568.  
  569.    [1]  Schulzrinne, H., Casner, S., Frederick, R., and
  570.         V. Jacobson, "RTP: A Transport Protocol for Real-Time
  571.         Applications", RFC 1889, January 1996.
  572.  
  573.    [2]  Sridhar Pingali, Don Towsley and James F. Kurose, A
  574.         comparison of sender-initiated and receiver-initiated
  575.         reliable multicast protocols, IEEE GLOBECOM '94.
  576.  
  577.    [3]  Thierry Turletti, H.261 software codec for
  578.         videoconferencing over the Internet INRIA Research Report
  579.         no 1834, January 1993.
  580.  
  581.    [4]  Thierry Turletti, INRIA Videoconferencing tool (IVS),
  582.         available by anonymous ftp from zenon.inria.fr in the
  583.         "rodeo/ivs/last_version" directory. See also URL
  584.         <http://www.inria.fr/rodeo/ivs.html>.
  585.  
  586.    [5]  Frame structure for Audiovisual Services for a 64 to 1920
  587.         kbps Channel in Audiovisual Services ITU-T (International
  588.         Telecommunication Union - Telecommunication
  589.         Standardisation Sector) Recommendation H.221, 1990.
  590.  
  591.    [6]  Video codec for audiovisual services at p x 64 kbit/s
  592.         ITU-T (International Telecommunication Union -
  593.         Telecommunication Standardisation Sector) Recommendation
  594.         H.261, 1993.
  595.  
  596.    [7]  Digital Methods of Transmitting Television Information
  597.         ITU-R (International Telecommunication Union -
  598.         Radiocommunication Standardisation Sector) Recommendation
  599.         601, 1986.
  600.  
  601.    [8]  M.A Sasse, U. Bilting, C-D Schulz, T. Turletti, Remote
  602.         Seminars through MultiMedia Conferencing: Experiences
  603.         from the MICE project, Proc. INET'94/JENC5, Prague, June
  604.         1994, pp. 251/1-251/8.
  605.  
  606.    [9]  Steve MacCanne, Van Jacobson, VIC Videoconferencing tool,
  607.         available by anonymous ftp from ee.lbl.gov in the
  608.         "conferencing/vic" directory.
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Turletti & Huitema          Standards Track                    [Page 11]
  619.  
  620.