⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc2435.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 4 页
字号:
   quantization table mapping is dynamic and can change on every frame.   Decoders MUST NOT depend on any previous version of the tables, and   need to reload these tables on every frame.  Packets MUST NOT contain   Q = 255 and Length = 0.3.1.9.  JPEG Payload   The data following the RTP/JPEG headers is an entropy-coded segment   consisting of a single scan.  The scan header is not present and is   inferred from the RTP/JPEG header.  The scan is terminated either   implicitly (i.e., the point at which the image is fully parsed), orBerc, et. al.               Standards Track                     [Page 7]RFC 2435              RTP Payload Format for JPEG           October 1998   explicitly with an EOI marker.  The scan may be padded to arbitrary   length with undefined bytes.  (Some existing hardware codecs generate   extra lines at the bottom of a video frame and removal of these lines   would require a Huffman-decoding pass over the data.)   The type code determines whether restart markers are present.  If a   type supports restart markers, the packet MUST contain a non-zero   Restart Interval value in a Restart Marker Header and restart markers   MUST appear on byte aligned boundaries beginning with an 0xFF between   MCUs at that interval.  Additional 0xFF bytes MAY appear between   restart intervals.  This can be used in the packetization process to   align data to something like a word boundary for more efficient   copying.  Restart markers MUST NOT appear anywhere else in the JPEG   payload.  Types which do not support restart makers MUST NOT contain   restart markers anywhere in the JPEG payload. All packets MUST   contain a "stuffed" 0x00 byte following any true 0xFF byte generated   by the entropy coder [1, Sec.  B.1.1.5].4.  Discussion4.1.  The Type Field   The Type field defines the abbreviated table-specification and   additional JFIF-style parameters not defined by JPEG, since they are   not present in the body of the transmitted JPEG data.   Three ranges of the type field are currently defined. Types 0-63 are   reserved as fixed, well-known mappings to be defined by this document   and future revisions of this document. Types 64-127 are the same as   types 0-63, except that restart markers are present in the JPEG data   and a Restart Marker header appears immediately following the main   JPEG header. Types 128-255 are free to be dynamically defined by a   session setup protocol (which is beyond the scope of this document).   Of the first group of fixed mappings, types 0 and 1 are currently   defined, along with the corresponding types 64 and 65 that indicate   the presence of restart markers.  They correspond to an abbreviated   table-specification indicating the "Baseline DCT sequential" mode,   8-bit samples, square pixels, three components in the YUV color   space, standard Huffman tables as defined in [1, Annex K.3], and a   single interleaved scan with a scan component selector indicating   components 1, 2, and 3 in that order.  The Y, U, and V color planes   correspond to component numbers 1, 2, and 3, respectively.  Component   1 (i.e., the luminance plane) uses Huffman table number 0 and   quantization table number 0 (defined below) and components 2 and 3   (i.e., the chrominance planes) use Huffman table number 1 and   quantization table number 1 (defined below).Berc, et. al.               Standards Track                     [Page 8]RFC 2435              RTP Payload Format for JPEG           October 1998   Type numbers 2-5 are reserved and SHOULD NOT be used.  Applications   based on previous versions of this document (RFC 2035) should be   updated to indicate the presence of restart markers with type 64 or   65 and the Restart Marker header.   The two RTP/JPEG types currently defined are described below:                            horizontal   vertical   Quantization           types  component samp. fact. samp. fact. table number         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         |       |  1 (Y)  |     2     |     1     |     0     |         | 0, 64 |  2 (U)  |     1     |     1     |     1     |         |       |  3 (V)  |     1     |     1     |     1     |         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         |       |  1 (Y)  |     2     |     2     |     0     |         | 1, 65 |  2 (U)  |     1     |     1     |     1     |         |       |  3 (V)  |     1     |     1     |     1     |         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   These sampling factors indicate that the chrominance components of   type 0 video is downsampled horizontally by 2 (often called 4:2:2)   while the chrominance components of type 1 video are downsampled both   horizontally and vertically by 2 (often called 4:2:0).   Types 0 and 1 can be used to carry both progressively scanned and   interlaced image data.  This is encoded using the Type-specific field   in the main JPEG header.  The following values are defined:      0 : Image is progressively scanned.  On a computer monitor, it can          be displayed as-is at the specified width and height.      1 : Image is an odd field of an interlaced video signal.  The          height specified in the main JPEG header is half of the height          of the entire displayed image.  This field should be de-          interlaced with the even field following it such that lines          from each of the images alternate.  Corresponding lines from          the even field should appear just above those same lines from          the odd field.      2 : Image is an even field of an interlaced video signal.      3 : Image is a single field from an interlaced video signal, but          it should be displayed full frame as if it were received as          both the odd & even fields of the frame.  On a computer          monitor, each line in the image should be displayed twice,          doubling the height of the image.Berc, et. al.               Standards Track                     [Page 9]RFC 2435              RTP Payload Format for JPEG           October 1998   Appendix B contains C source code for transforming the RTP/JPEG   header parameters into the JPEG frame and scan headers that are   absent from the data payload.4.2.  The Q Field   For JPEG types 0 and 1 (and their corresponding types 64 and 65), Q   values between 1 and 99 inclusive are defined as follows.  Other   values less than 128 are reserved.  Additional types are encouraged   to use this definition if applicable.   Both type 0 and type 1 JPEG require two quantization tables.  These   tables are calculated as follows.  For 1 <= Q <= 99, the Independent   JPEG Group's formula [5] is used to produce a scale factor S as:           S = 5000 / Q          for  1 <= Q <= 50             = 200 - 2 * Q       for 51 <= Q <= 99   This value is then used to scale Tables K.1 and K.2 from [1]   (saturating each value to 8 bits) to give quantization table numbers   0 and 1, respectively.  C source code is provided in Appendix A to   compute these tables.   For Q values 128-255, dynamically defined quantization tables are   used.  These tables may be specified either in-band or out of band by   something like a session setup protocol, but the Quantization Table   header MUST be present in the first packet of every frame. When the   tables are specified out of band, they may be omitted from the packet   by setting the Length field in this header to 0.   When the quantization tables are sent in-band, they need not be sent   with every frame.  Like the out of band case, frames which do not   contain tables will have a Quantization Table header with a Length   field of 0.  While this does decrease the overhead of including the   tables, new receivers will be unable to properly decode frames from   the time they start up until they receive the tables.4.3.  Fragmentation and Reassembly   Since JPEG frames can be large, they must often be fragmented.   Frames SHOULD be fragmented into packets in a manner avoiding   fragmentation at a lower level.  If support for partial frame   decoding is desired, frames SHOULD be fragmented such that each   packet contains an integral number of restart intervals (see below).   Each packet that makes up a single frame MUST have the same   timestamp, and the RTP marker bit MUST be set on the last packet in a   frame.  The fragment offset field of each packet is set to the byteBerc, et. al.               Standards Track                    [Page 10]RFC 2435              RTP Payload Format for JPEG           October 1998   offset of its payload data within the original frame.  Packets making   up a frame SHOULD be sent sequentially and the fragments they contain   MUST NOT overlap one another.   An entire frame can be identified as a sequence of packets beginning   with a packet having a zero fragment offset and ending with a packet   having the RTP marker bit set.  Missing packets can be detected   either with RTP sequence numbers or with the fragment offset and   lengths of each packet.  Reassembly could be carried out without the   offset field (i.e., using only the RTP marker bit and sequence   numbers), but an efficient single-copy implementation would not   otherwise be possible in the presence of misordered packets.   Moreover, if the last packet of the previous frame (containing the   marker bit) were dropped, then a receiver could not always detect   that the current frame is entirely intact.4.4.  Restart Markers   Restart markers indicate a point in the JPEG stream at which the   Huffman decoder and DC predictors are reset, allowing partial   decoding starting at that point.  To fully take advantage of this,   however, a decoder must know which MCUs of a frame a particular   restart interval encodes.  While the original JPEG specification does   provide a small sequence number field in the restart markers for this   purpose, it is not large enough to properly cope with the loss of an   entire packet's worth of data at a typical network MTU size.  The   RTP/JPEG Restart Marker header contains the additional information   needed to accomplish this.   The size of restart intervals SHOULD be chosen to always allow an   integral number of restart intervals to fit within a single packet.   This will guarantee that packets can be decoded independently from   one another.  If a restart interval ends up being larger than a   packet, the F and L bits in the Restart Marker header can be used to   fragment it, but the resulting set of packets must all be received by   a decoder for that restart interval to be decoded properly.   Once a decoder has received either a single packet with both the F   and L bits set on or a contiguous sequence of packets (based on the   RTP sequence number) which begin with an F bit and end with an L bit,   it can begin decoding.  The position of the MCU at the beginning of   the data can be determined by multiplying the Restart Count value by   the Restart Interval value.  A packet (or group of packets as   identified by the F and L bits) may contain any number of consecutive   restart intervals.   To accommodate encoders which generate frames with restart markers in   them but cannot fragment the data in this manner, the Restart CountBerc, et. al.               Standards Track                    [Page 11]RFC 2435              RTP Payload Format for JPEG           October 1998   field may be set to 0x3FFF with the F and L bits both set to 1.  This   indicates to decoders that the entire frame must be reassembled   before decoding it.5.  Security Considerations   RTP packets using the payload format defined in this specification   are subject to the security considerations discussed in the RTP   specification [6], and any appropriate RTP profile (for example [7]).   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 encodings using   compression techniques that have non-uniform receiver-end   computational load.  The attacker can inject pathological datagrams   into the stream which are complex to decode and cause the receiver to   be overloaded.  However, this encoding does not exhibit any   significant non-uniformity.   Another potential denial-of-service threat exists around the   fragmentation mechanism presented here.  Receivers should be prepared   to limit the total amount of data associated with assembling received   frames so as to avoid resource exhaustion.   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 will be implemented in a   future version of IGMP [8] and in multicast routing protocols to   allow a receiver to select which sources are allowed to reach it.   A security review of this payload format found no additional   considerations beyond those in the RTP specification.Berc, et. al.               Standards Track                    [Page 12]RFC 2435              RTP Payload Format for JPEG           October 19986.  Authors' Addresses   Lance M. Berc   Systems Research Center   Digital Equipment Corporation   130 Lytton Ave   Palo Alto CA 94301   Phone: +1 650 853 2100   EMail: berc@pa.dec.com   William C. Fenner   Xerox PARC   3333 Coyote Hill Road   Palo Alto, CA 94304   Phone: +1 650 812 4816   EMail: fenner@parc.xerox.com   Ron Frederick   Xerox PARC   3333 Coyote Hill Road   Palo Alto, CA 94304   Phone: +1 650 812 4459   EMail: frederick@parc.xerox.com   Steven McCanne   University of California at Berkeley   Electrical Engineering and Computer Science   633 Soda Hall   Berkeley, CA 94720   Phone: +1 510 642 0865   EMail: mccanne@cs.berkeley.edu   Paul Stewart   Xerox PARC   3333 Coyote Hill Road   Palo Alto, CA 94304   Phone: +1 650 812 4821   EMail: stewart@parc.xerox.comBerc, et. al.               Standards Track                    [Page 13]RFC 2435              RTP Payload Format for JPEG           October 19987.  References   [1]  ISO DIS 10918-1. Digital Compression and Coding of Continuous-        tone Still Images (JPEG), CCITT Recommendation T.81.   [2]  William B. Pennebaker, Joan L. Mitchell, JPEG: Still Image Data        Compression Standard, Van Nostrand Reinhold, 1993.   [3]  Gregory K. Wallace, The JPEG Sill Picture Compression Standard,        Communications of the ACM, April 1991, Vol 34, No. 1, pp. 31-44.   [4]  The JPEG File Interchange Format.  Maintained by C-Cube        Microsystems, Inc., and available in        ftp://ftp.uu.net/graphics/jpeg/jfif.ps.gz.   [5]  Tom Lane et. al., The Independent JPEG Group software JPEG        codec.  Source code available in        ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6a.tar.gz.   [6]  Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson,        "RTP: A Transport Protocol for Real-Time Applications", RFC        1889, January 1996.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -