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

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                      M. Speer
  8. Request for Comment: 2029                                D. Hoffman
  9. Category: Standards Track                    Sun Microsystems, Inc.
  10.                                                        October 1996
  11.  
  12.  
  13.             RTP Payload Format of Sun's CellB Video Encoding
  14.  
  15. Status of this Memo
  16.  
  17.    This document specifies an Internet standards track protocol for the
  18.    Internet community, and requests discussion and suggestions for
  19.    improvements.  Please refer to the current edition of the "Internet
  20.    Official Protocol Standards" (STD 1) for the standardization state
  21.    and status of this protocol.  Distribution of this memo is unlimited.
  22.  
  23. Abstract
  24.  
  25.    This memo describes a packetization scheme for the CellB video
  26.    encoding. The scheme proposed allows applications to transport CellB
  27.    video flows over protocols used by RTP.  This document is meant for
  28.    implementors of video applications that want to use RTP and CellB.
  29.  
  30. 1. Introduction
  31.  
  32.    The Cell image compression algorithm is a variable bit-rate video
  33.    coding scheme.  It provides "high" quality, low bit-rate image
  34.    compression at low computational cost.   The bytestream that is
  35.    produced by the Cell encoder consists of instructional codes and
  36.    information about the compressed image.
  37.  
  38.    For futher information on Cell compression technology, refer to [1].
  39.    Currently, there are two versions of the Cell compression technology:
  40.    CellA and CellB.  CellA is primarily designed for the encoding of
  41.    stored video intended for local display, and will not be discussed in
  42.    this memo.
  43.  
  44.    CellB, derived from CellA, has been optimized for network-based video
  45.    applications.  It is computationally symmetric in both encode and
  46.    decode.  CellB utilizes a fixed colormap and vector quantization
  47.    techniques in the YUV color space to achieve compression.
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Speer & Hoffman             Standards Track                     [Page 1]
  59.  
  60. RFC 2029                   RTP Payload Format               October 1996
  61.  
  62.  
  63. 2. Network Packetization and Encapsulation
  64.  
  65. 2.1 RTP Usage
  66.  
  67.    The RTP timestamp is in units of 90KHz. The same timestamp value is
  68.    used for all packet payloads of a frame.  The RTP maker bit denotes
  69.    the end of a frame.
  70.  
  71. 2.2 CellB Header
  72.  
  73.    The packetization of the CellB bytestream is designed to make the
  74.    resulting packet stream robust to packet loss.  To achieve this goal,
  75.    an additional header is added to each RTP packet to uniquely identify
  76.    the location of the first cell of the packet within the current
  77.    frame.  In addition, the width and height of the frame in pixels is
  78.    carried in each CellB packet header.  Although the size can only
  79.    change between frames, it is carried in every packet to simplify the
  80.    packet encoding.
  81.  
  82.     0                   1                   2                   3
  83.     0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
  84.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  85.    |       Cell X Location         |      Cell Y Location          |
  86.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  87.    |       Width of Image          |      Height of Image          |
  88.    +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
  89.    |                     Compressed CellB Data                     |
  90.    |                             ....                              |
  91.    +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
  92.  
  93.    All fields are 16-bit unsigned integers in network byte order, and
  94.    are placed at the beginning of the payload for each RTP packet.  The
  95.    Cell X and the Cell Y Location coordinates are expressed as cell
  96.    coordinates, not pixel coordinates. Since cells represent 4x4 blocks
  97.    of pixels, the X or Y dimension of the cell coordinates range in
  98.    value from 0 through 1/4 of the of the same dimension in pixel
  99.    coordinates.
  100.  
  101. 2.3 Packetization Rules
  102.  
  103.    A packet can be of any size chosen by the implementor, up to a full
  104.    frame.  All multi-byte codes must be completely contained within a
  105.    packet.  In general, the implementor should avoid packet sizes that
  106.    result in fragmentation by the network.
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Speer & Hoffman             Standards Track                     [Page 2]
  115.  
  116. RFC 2029                   RTP Payload Format               October 1996
  117.  
  118.  
  119. 3. References
  120.  
  121.    1.      "Cell Image Compression Byte Stream Description,"
  122.            ftp://playground.sun.com:/pub/multimedia/video/
  123.            cellbytestream.ps.Z
  124.  
  125.    2.      Turletti, T., and C. Huitema, "RTP Payload Format
  126.            for H.261 Video Streams", RFC 2032, October 1996.
  127.  
  128.    3.      Schulzrinne, H., Casner, S., Frederick, R., and
  129.            V. Jacobson, "RTP: A Transport Protocol for Real-Time
  130.            Applications", RFC 1889, January 1996.
  131.  
  132.    4.      Schulzrinne, H., "RTP Profile for Audio and Video
  133.            Conferences with Minimal Control", RFC 1890,
  134.            January 1996.
  135.  
  136. 4 Authors' Addresses
  137.  
  138.    Michael F. Speer
  139.    Sun Microsystems Computer Corporation
  140.    2550 Garcia Ave MailStop UMPK14-305
  141.    Mountain View, CA 94043
  142.  
  143.    Voice: +1 415 786 6368
  144.    Fax: +1 415 786 6445
  145.    EMail: michael.speer@eng.sun.com
  146.  
  147.  
  148.    Don Hoffman
  149.    Sun Microsystems Computer Corporation
  150.    2550 Garcia Ave MailStop UMPK14-305
  151.    Mountain View, CA 94043
  152.  
  153.    Voice: +1 415 786 6370
  154.    Fax: +1 415 786 6445
  155.    EMail: don.hoffman@eng.sun.com
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Speer & Hoffman             Standards Track                     [Page 3]
  171.  
  172. RFC 2029                   RTP Payload Format               October 1996
  173.  
  174.  
  175. Appendix A - Structure of the CellB Video Stream
  176.  
  177.    The CellB bytestream consists of cell codes, skip codes and
  178.    quantization-table specific codes.  These are now described.
  179.  
  180. A.1 CellB Cell Code
  181.  
  182.    Cell codes are 4 bytes in length, and describe a 4x4 pixel cell.
  183.    There are two possible luminance (Y) levels for each cell, but only
  184.    one pair of chrominance (UV) values.  The CellB cell code is shown
  185.    below:
  186.  
  187.  
  188.     0                   1                   2                   3
  189.     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
  190.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  191.    |0 M M M M M M M M M M M M M M M|U V U V U V U V|Y Y Y Y Y Y Y Y|
  192.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  193.                 4x4 Bitmask             U/V Code       Y/Y Code
  194.  
  195.    The first two bytes of the cell code are a bitmask.  Each bit in the
  196.    mask represents a pixel in a 16-pixel cell.  Bit 0 represents the
  197.    value of the upper right-hand pixel of the cell, and subsequent bits
  198.    represent the pixels in row-major order.  If a pixel's bit is set in
  199.    the 4x4 Bitmask, then the pixel will be rendered with the pixel value
  200.    <Y(1), U, V>.  If the pixel's bit is not set in the bitmask, then the
  201.    pixel's value will be rendered with the value <Y(0), U, V>.  The
  202.    bitmask for the cell is normalized so that the most significant bit
  203.    is always 0 (i.e., corresponding to <Y(0), U, V>).
  204.  
  205.    The U/V field of the cell code represents the chrominance component.
  206.    This code is in index into a table of vectors that represents two
  207.    independent components of chrominance.
  208.  
  209.    The Y/Y field of the cell code represents two luminance values (Y(0)
  210.    and Y(1)).  This code is an index into a table of two-compoment
  211.    luminance vectors.
  212.  
  213.    The derivation of the U/V and Y/Y tables is outside the scope of this
  214.    memo. A complete discussion can be found in [1].
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Speer & Hoffman             Standards Track                     [Page 4]
  227.  
  228. RFC 2029                   RTP Payload Format               October 1996
  229.  
  230.  
  231. A.2 CellB Skip Code
  232.  
  233.    The single byte CellB skip code tells the CellB decoder to skip the
  234.    next S+1 cells in the current video frame being decoded.  The maximum
  235.    number of cells that can be skipped is 32.  The format of the skip
  236.    code is shown below.
  237.  
  238.                          0 1 2 3 4 5 6 7
  239.                         +-+-+-+-+-+-+-+-+
  240.                         |1 0 0 S S S S S|
  241.                         +-+-+-+-+-+-+-+-+
  242.  
  243. A.3 CellB Y/Y Table Code
  244.  
  245.    The single byte "new Y/Y table" code is used to tell the decoder that
  246.    the next 512 bytes are a new Y/Y quantization table.  The code and
  247.    the representation of the table are shown below.  The sample
  248.    encoder/decoder pair in this document do not implement this feature
  249.    of the CellB compression.  However, future CellB codecs may implement
  250.    this feature.
  251.  
  252.                          0 1 2 3 4 5 6 7
  253.                         +-+-+-+-+-+-+-+-+
  254.                         |1 1 1 1 1 1 1 0|
  255.                         +-+-+-+-+-+-+-+-+
  256.  
  257.    The format of the new Y/Y table is:
  258.  
  259.      0                   1                   2                   3
  260.      0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
  261.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  262.     |    Y1_000     |    Y2_000     |   Y1_001      |   Y2_001      |
  263.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  264.  
  265.                 .
  266.                 .
  267.                 .
  268.  
  269.      0                   1                   2                   3
  270.      0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
  271.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  272.     |    Y1_254     |    Y2_254     |   Y1_255      |   Y2_255      |
  273.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Speer & Hoffman             Standards Track                     [Page 5]
  283.  
  284. RFC 2029                   RTP Payload Format               October 1996
  285.  
  286.  
  287. A.4 CellB U/V Table Code
  288.  
  289.    The single byte "new U/V table" code is used to tell the decoder that
  290.    the next 512 bytes represent a new U/V quantization table.  The code
  291.    is shown below.  The sample encoder/decoder pair provided in this
  292.    document do not implement this feature of the CellB compression.
  293.    However, future CellB codecs may implement this feature.
  294.  
  295.                          0 1 2 3 4 5 6 7
  296.                         +-+-+-+-+-+-+-+-+
  297.                         |1 1 1 1 1 1 1 1|
  298.                         +-+-+-+-+-+-+-+-+
  299.  
  300.    The bytes of the new U/V quantization table are arranged as:
  301.  
  302.      0                   1                   2                   3
  303.      0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
  304.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  305.     |    U_000      |    V_000      |   U_001       |   V_001       |
  306.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  307.  
  308.                 .
  309.                 .
  310.                 .
  311.  
  312.      0                   1                   2                   3
  313.      0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
  314.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  315.     |    U_254      |    V_254      |   U_255       |   V_255       |
  316.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  317.  
  318. Appendix B - Availability of CellB
  319.  
  320.    It is the viewpoint of Sun Microsystems, Inc, that CellB is
  321.    publically available for use without any license.
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Speer & Hoffman             Standards Track                     [Page 6]
  339.  
  340.