summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc2029.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/rfc2029.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc2029.txt')
-rw-r--r--doc/rfc/rfc2029.txt339
1 files changed, 339 insertions, 0 deletions
diff --git a/doc/rfc/rfc2029.txt b/doc/rfc/rfc2029.txt
new file mode 100644
index 0000000..088462e
--- /dev/null
+++ b/doc/rfc/rfc2029.txt
@@ -0,0 +1,339 @@
+
+
+
+
+
+
+Network Working Group M. Speer
+Request for Comment: 2029 D. Hoffman
+Category: Standards Track Sun Microsystems, Inc.
+ October 1996
+
+
+ RTP Payload Format of Sun's CellB Video Encoding
+
+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.
+
+Abstract
+
+ This memo describes a packetization scheme for the CellB video
+ encoding. The scheme proposed allows applications to transport CellB
+ video flows over protocols used by RTP. This document is meant for
+ implementors of video applications that want to use RTP and CellB.
+
+1. Introduction
+
+ The Cell image compression algorithm is a variable bit-rate video
+ coding scheme. It provides "high" quality, low bit-rate image
+ compression at low computational cost. The bytestream that is
+ produced by the Cell encoder consists of instructional codes and
+ information about the compressed image.
+
+ For futher information on Cell compression technology, refer to [1].
+ Currently, there are two versions of the Cell compression technology:
+ CellA and CellB. CellA is primarily designed for the encoding of
+ stored video intended for local display, and will not be discussed in
+ this memo.
+
+ CellB, derived from CellA, has been optimized for network-based video
+ applications. It is computationally symmetric in both encode and
+ decode. CellB utilizes a fixed colormap and vector quantization
+ techniques in the YUV color space to achieve compression.
+
+
+
+
+
+
+
+
+
+
+Speer & Hoffman Standards Track [Page 1]
+
+RFC 2029 RTP Payload Format October 1996
+
+
+2. Network Packetization and Encapsulation
+
+2.1 RTP Usage
+
+ The RTP timestamp is in units of 90KHz. The same timestamp value is
+ used for all packet payloads of a frame. The RTP maker bit denotes
+ the end of a frame.
+
+2.2 CellB Header
+
+ The packetization of the CellB bytestream is designed to make the
+ resulting packet stream robust to packet loss. To achieve this goal,
+ an additional header is added to each RTP packet to uniquely identify
+ the location of the first cell of the packet within the current
+ frame. In addition, the width and height of the frame in pixels is
+ carried in each CellB packet header. Although the size can only
+ change between frames, it is carried in every packet to simplify the
+ packet encoding.
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Cell X Location | Cell Y Location |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Width of Image | Height of Image |
+ +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+ | Compressed CellB Data |
+ | .... |
+ +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+
+ All fields are 16-bit unsigned integers in network byte order, and
+ are placed at the beginning of the payload for each RTP packet. The
+ Cell X and the Cell Y Location coordinates are expressed as cell
+ coordinates, not pixel coordinates. Since cells represent 4x4 blocks
+ of pixels, the X or Y dimension of the cell coordinates range in
+ value from 0 through 1/4 of the of the same dimension in pixel
+ coordinates.
+
+2.3 Packetization Rules
+
+ A packet can be of any size chosen by the implementor, up to a full
+ frame. All multi-byte codes must be completely contained within a
+ packet. In general, the implementor should avoid packet sizes that
+ result in fragmentation by the network.
+
+
+
+
+
+
+
+Speer & Hoffman Standards Track [Page 2]
+
+RFC 2029 RTP Payload Format October 1996
+
+
+3. References
+
+ 1. "Cell Image Compression Byte Stream Description,"
+ ftp://playground.sun.com:/pub/multimedia/video/
+ cellbytestream.ps.Z
+
+ 2. Turletti, T., and C. Huitema, "RTP Payload Format
+ for H.261 Video Streams", RFC 2032, October 1996.
+
+ 3. Schulzrinne, H., Casner, S., Frederick, R., and
+ V. Jacobson, "RTP: A Transport Protocol for Real-Time
+ Applications", RFC 1889, January 1996.
+
+ 4. Schulzrinne, H., "RTP Profile for Audio and Video
+ Conferences with Minimal Control", RFC 1890,
+ January 1996.
+
+4 Authors' Addresses
+
+ Michael F. Speer
+ Sun Microsystems Computer Corporation
+ 2550 Garcia Ave MailStop UMPK14-305
+ Mountain View, CA 94043
+
+ Voice: +1 415 786 6368
+ Fax: +1 415 786 6445
+ EMail: michael.speer@eng.sun.com
+
+
+ Don Hoffman
+ Sun Microsystems Computer Corporation
+ 2550 Garcia Ave MailStop UMPK14-305
+ Mountain View, CA 94043
+
+ Voice: +1 415 786 6370
+ Fax: +1 415 786 6445
+ EMail: don.hoffman@eng.sun.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Speer & Hoffman Standards Track [Page 3]
+
+RFC 2029 RTP Payload Format October 1996
+
+
+Appendix A - Structure of the CellB Video Stream
+
+ The CellB bytestream consists of cell codes, skip codes and
+ quantization-table specific codes. These are now described.
+
+A.1 CellB Cell Code
+
+ Cell codes are 4 bytes in length, and describe a 4x4 pixel cell.
+ There are two possible luminance (Y) levels for each cell, but only
+ one pair of chrominance (UV) values. The CellB cell code is shown
+ below:
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |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|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ 4x4 Bitmask U/V Code Y/Y Code
+
+ The first two bytes of the cell code are a bitmask. Each bit in the
+ mask represents a pixel in a 16-pixel cell. Bit 0 represents the
+ value of the upper right-hand pixel of the cell, and subsequent bits
+ represent the pixels in row-major order. If a pixel's bit is set in
+ the 4x4 Bitmask, then the pixel will be rendered with the pixel value
+ <Y(1), U, V>. If the pixel's bit is not set in the bitmask, then the
+ pixel's value will be rendered with the value <Y(0), U, V>. The
+ bitmask for the cell is normalized so that the most significant bit
+ is always 0 (i.e., corresponding to <Y(0), U, V>).
+
+ The U/V field of the cell code represents the chrominance component.
+ This code is in index into a table of vectors that represents two
+ independent components of chrominance.
+
+ The Y/Y field of the cell code represents two luminance values (Y(0)
+ and Y(1)). This code is an index into a table of two-compoment
+ luminance vectors.
+
+ The derivation of the U/V and Y/Y tables is outside the scope of this
+ memo. A complete discussion can be found in [1].
+
+
+
+
+
+
+
+
+
+
+
+Speer & Hoffman Standards Track [Page 4]
+
+RFC 2029 RTP Payload Format October 1996
+
+
+A.2 CellB Skip Code
+
+ The single byte CellB skip code tells the CellB decoder to skip the
+ next S+1 cells in the current video frame being decoded. The maximum
+ number of cells that can be skipped is 32. The format of the skip
+ code is shown below.
+
+ 0 1 2 3 4 5 6 7
+ +-+-+-+-+-+-+-+-+
+ |1 0 0 S S S S S|
+ +-+-+-+-+-+-+-+-+
+
+A.3 CellB Y/Y Table Code
+
+ The single byte "new Y/Y table" code is used to tell the decoder that
+ the next 512 bytes are a new Y/Y quantization table. The code and
+ the representation of the table are shown below. The sample
+ encoder/decoder pair in this document do not implement this feature
+ of the CellB compression. However, future CellB codecs may implement
+ this feature.
+
+ 0 1 2 3 4 5 6 7
+ +-+-+-+-+-+-+-+-+
+ |1 1 1 1 1 1 1 0|
+ +-+-+-+-+-+-+-+-+
+
+ The format of the new Y/Y table is:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Y1_000 | Y2_000 | Y1_001 | Y2_001 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ .
+ .
+ .
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Y1_254 | Y2_254 | Y1_255 | Y2_255 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+
+
+
+
+
+Speer & Hoffman Standards Track [Page 5]
+
+RFC 2029 RTP Payload Format October 1996
+
+
+A.4 CellB U/V Table Code
+
+ The single byte "new U/V table" code is used to tell the decoder that
+ the next 512 bytes represent a new U/V quantization table. The code
+ is shown below. The sample encoder/decoder pair provided in this
+ document do not implement this feature of the CellB compression.
+ However, future CellB codecs may implement this feature.
+
+ 0 1 2 3 4 5 6 7
+ +-+-+-+-+-+-+-+-+
+ |1 1 1 1 1 1 1 1|
+ +-+-+-+-+-+-+-+-+
+
+ The bytes of the new U/V quantization table are arranged as:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | U_000 | V_000 | U_001 | V_001 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ .
+ .
+ .
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | U_254 | V_254 | U_255 | V_255 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+Appendix B - Availability of CellB
+
+ It is the viewpoint of Sun Microsystems, Inc, that CellB is
+ publically available for use without any license.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Speer & Hoffman Standards Track [Page 6]
+