INTERNET-DRAFT Satoshi Futemma draft-ietf-avt-rtp-jpeg2000-06.txt Andrew Leung Eisaburo Itakura Sony Corporation October 25, 2004 Expires: April 25, 2005 RTP Payload Format for JPEG 2000 Video Streams Status of this Memo By submitting this Internet-Draft, I certify that any applicable patent or other IPR claims of which I am aware have been disclosed, and any of which I become aware will be disclosed, in accordance with RFC 3668. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference materials or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Drafts Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract This memo describes an RTP payload format for the ISO/IEC International Standard 15444-1 | ITU-T Rec. T.800, JPEG 2000. JPEG 2000 features are considered and there are provisions in this payload format for scalability, prioritization of different parts of the codestream, and error recovery. JPEG 2000 is a truly scalable compression technology allowing applications to encode one way and decode many different ways. Extending from one image to a series of JPEG 2000 images, one has a JPEG 2000 video stream. Futemma, et al. [Page 1] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 Table of Contents 1. Introduction .............................................. 3 1.1 Conventions Used in this Document ..................... 6 2. JPEG 2000 Video Features .................................. 6 3. Payload Design ............................................ 6 4. Payload Format ............................................ 7 4.1 RTP fixed header usage ................................ 7 4.2 RTP Payload Header Format ............................. 7 5. RTP Packetization ......................................... 10 6. Scalable Delivery and Priority field ...................... 11 6.1 Priority Mapping Table ................................ 11 6.1.1 Pre-Defined Priority Mapping ........................ 11 6.1.1.1 Packet number based Ordering ...................... 12 6.1.1.2 Progression-based Ordering ........................ 12 6.1.1.3 Layer-based Ordering .............................. 13 6.1.1.4 Resolution-based Ordering ......................... 13 6.1.1.5 Component-based Ordering .......................... 13 6.1.2 Application Specific Priority Table ................. 13 6.2 Sender Action ......................................... 13 6.3 Receiver Action ....................................... 14 7. JPEG 2000 Main Header Compensation Scheme ................. 14 7.1 Sender Processing ..................................... 14 7.2 Receiver Processing ................................... 15 8. Security Consideration .................................... 15 9. IANA Consideration ........................................ 16 9.1 MIME Registration ..................................... 16 9.2 SDP Parameters ........................................ 18 10. Usage with the SDP Offer/Answer Model .................... 18 10.1 Examples ............................................ 19 11. Intellectual Property Right Statement .................... 19 12. Informative Appendix .................................... 20 12.1 Recommended Practices ................................ 20 12.2 Sample Headers in Detail ............................. 21 13. References .............................................. 27 14. Authors' Addresses ....................................... 28 15. Full Copyright Statement ................................. 28 Futemma, et al. [Page 2] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 1. Introduction This document specifies a payload formats for JPEG 2000 video streams over the Real-time Transport Protocol (RTP). JPEG 2000 is an ISO/IEC International Standard and ITU-T Recommendation developed for next generation still image compression. Its basic compression technology is described in detail in [1] & [7]. Part 3 of the JPEG 2000 standard defines Motion JPEG 2000 [7]. However, Motion JPEG 2000 focuses on the file format and it does not specify the transmission format on the the network. JPEG 2000 supports many powerful features that are not supported in the current JPEG standard [1][7]: o Higher compression efficiency than JPEG with less visual loss especially at extreme compression ratios. o A single codestream that offers both lossy and superior lossless compression. o Better error resiliency than JPEG. o Progressive transmission by pixel accuracy (SNR scalability) and resolution. o Random codestream access and processing. The JPEG 2000 algorithm is briefly explained below. Fig. 1 shows a block diagram of JPEG 2000 encoding method. +-----+ | ROI | +-----+ | V +----------+ +----------+ +------------+ |DC, comp. | | Wavelet | | | raw image ==> |transform-|==>|transform-|==>|Quantization|==+ | ation | | ation | | | | +----------+ +----------+ +------------+ | | +-----------+ +----------+ +------------+ | | | | | | | | JPEG 2000 <==| Data |<==| Rate |<==| EBCOT |<=+ codestream | Ordering | | Control | | | +-----------+ +----------+ +------------+ Fig. 1: Block diagram of the JPEG 2000 encoder The image is transformed into wavelet coefficients. The image is sampled into various levels usually vertically and horizontally from high frequencies (which contains all the sharp details) to the low frequencies (which contains all the flat areas.) Quantization Futemma, et al. [Page 3] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 is performed on the coefficients within each sub-band. After quantization, code blocks are formed from within the precincts within the tiles. Precincts are a finer separation than tiles and code blocks are the smallest separation of the image data. EBCOT coding is performed within each code block and arithmetically encoded by bit plane. Rate control is performed to achieve the highest quality image for the specified file size. As a result, for a given tile, data units called the JPEG 2000 packets are generated, which contain data from a specific layer, a specific component, a specific resolution, and a specific precinct. Finally, the JPEG 2000 packets are interleaved according to the progression along four axes: layer, resolution, component and precinct, and added the main header to be a JPEG 2000 codestream. To decompress a JPEG 2000 codestream, one would follow the reverse order of the encoding order, minus the quantization, rate control, and data ordering step. It is outside the scope of this document to describe in detail this procedure. Please refer to various JPEG 2000 texts for further details [1]. Figure 2 shows a JPEG 2000 codestream in detail. A JPEG 2000 codestream is structured from the main header beginning with the SOC marker, one or more tiles, and the EOC marker to indicate the end of the codestream. Each tile consists of a tile-part header that starts with the SOT marker and ends with a SOD marker, and bitstream (a series of JPEG 2000 packet.) +-- +------------+ Main | | SOC | Required as the first marker. header| +------------+ | | main | Main header marker segments +-- +------------+ | | SOT | Required at the beginning of each Tile- | +------------+ tile-part header. part | | T0,TP0 | Tile 0, tile-part 0 header marker header| +------------+ segments | | SOD | Required at the end of each tile-part +-- +------------+ header | bitstream | Tile-part bitstream +-- +------------+ | | SOT | Tile- | +------------+ part | | T1,TP0 | header| +------------+ | | SOD | +-- +------------+ | bit stream | +------------+ . Futemma, et al. [Page 4] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 . . +------------+ | EOC | Required as the last marker in the code +------------+ stream Fig. 2: Basic construction of the JPEG 2000 codestream 1.1 Conventions Used in this Document 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 RFC2119 [2]. 2. JPEG 2000 Video Features JPEG 2000 video streams are formed as a continuous series of JPEG 2000 still images. The previously described features of JPEG 2000 can be used effectively in streaming applications. A JPEG 2000 video stream has the following qualities: o At low bit rates, the SNR is improved dramatically over JPEG. o This is a full intra frame format - each frame is independently compressed - and therefore has a low encoding and decoding delay. o JPEG 2000 has flexible and accurate rate control. This is suitable for traffic control and congestion control during network transmission. o JPEG 2000 can provide its own codestream error resilience markers to aid in codestream recovery outside of this specification. 3. Payload Design To provide a payload format that maximizes JPEG 2000 features, the following are taken into consideration: o Provisions for packet loss On the Internet, 5% packet loss is common and this percentage may become to 20% or more. To split JPEG 2000 video streams into RTP packets, efficient packetization of the code stream is required to minimize problems in decoding due to missing packets. If the main header is lost in transmission, the image cannot be decoded. o A packetizing scheme that maximizes JPEG 2000 scalability A packetizing scheme so that an image can be progressively transmitted and reconstructed progressively by the receiver using JPEG 2000 functionality. It would allow for maximizing performance over various network conditions and variations in computing resources of clients. Futemma, et al. [Page 5] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 o A method to allow for header compensation JPEG 2000's scalable coding scheme allows for decompressing truncated or partial data streams but only when the main header is present. If the header is lost, the stream is useless. Also, with JPEG 2000 video coding, coding parameters between frames may rarely change and previous headers may be used in newly received data streams without headers. 4. Payload Format 4.1 RTP fixed header usage For each RTP packet, the RTP fixed header is followed by the JPEG 2000 RTP payload header (this specification), which is followed by the payload, a piece of a JPEG 2000 codestream. The RTP header fields that have a meaning specific to a JPEG 2000 video stream are described as follows: Marker bit (M): The marker bit of the RTP fixed header MUST be set to 1 on the last RTP packet of a video frame, otherwise, it MUST be 0. When transmission is performed by multiple RTP sessions, this bit is 1 in the last packet of the frame in each session. Payload type (PT): The payload type is dynamically assigned by means outside the scope of this document. A payload type in the dynamic range shall be chosen by means of an out of band signaling protocol (e.g., RTSP, SIP, etc.) Timestamp: The RTP timestamp are in units of 90 kHz. The same timestamp value MUST appear in each RTP packet carrying a fragment of a given frame. When a JPEG 2000 image is in interlace format, the odd field and the corresponding even field MUST have the same timestamp. The initial value of the timestamp is to be random to make known plaintext attacks on encryption more difficult. 4.2 RTP Payload Header Format The RTP payload header format for JPEG 2000 video stream is as follows: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |tp |MHF|mh_id|T| priority | tile number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |reserved | fragment offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. 3: RTP payload header format for JPEG 2000 Futemma, et al. [Page 6] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 tp (type) : 2 bits This field indicates how a JPEG 2000 image is scanned (meaning - progressive or interlace). 0: An image is progressively scanned. 1: An image is the odd field of an interlaced video signal. The height specified in the JPEG 2000 main header is half of the height of the entire displayed image. In a receiver, an odd field should be de-interlaced with the even field following it so that lines from each image are displayed alternately. 2: An image is the even field of an interlaced video signal. 3: An image is a single field from an interlaced video signal, intended to be displayed full frame as if it were received as both the odd & even field of the frame. On a computer monitor, each line in the image should be displayed twice, doubling the height of the image. MHF (Main Header Flag) : 2 bits MHF indicates whether a main header or piece of a main header is in the RTP packet. If there is no header, MHF has a value of 0. If there is just a part of a fragmented header, MHF has a value of 1. If there is the last part of a fragmented header, MHF has value of 2. If the whole header in the packet, MHF has a value of 3. +----+-------------------------------------------------------+ |MHF | Description | +----+-------------------------------------------------------+ | 0 | no main header in the payload | | 1 | piece of fragmented header | | 2 | last part of a fragmented header | | 3 | a whole main header | +----+-------------------------------------------------------+ Table 1: MHF usage values mh_id (Main Header Identification) : 3 bits Main header identification value. This is used for JPEG 2000 main header recovery. The same mh_id value is used as long as the coding parameters described in the main header remains unchanged. The initial value of mh_id is random, and may take any value between 1-7, but MUST NOT be 0. Futemma, et al. [Page 7] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 The mh_id value MUST increment by 1 every time a new main header is transmitted. Once the mh_id value is greater than 7, it rolls over to 1. When mh_id is 0, it has special usage for the receiver. This special usage is described in Section 7 of this document. T (Tile field invalidation flag) : 1 bit T bit indicates whether the tile number field is valid or invalid. A sender MUST set the T bit to 1 when the tile number field is invalid. There are two cases where the tile number field is invalid. (1) When an RTP packet holds only the main header. A sender cannot set any number in the tile number field as no JPEG 2000 tile-part bitstream is included in the RTP packet. (2) Multiple tile-parts are packed together in one payload. If there are multiple tiles packed into one payload, there is no meaning to assign a number to the tile number field. priority : 8 bits The priority field indicates the importance of the JPEG 2000 packet included in the payload. Typically, a higher priority is set in the packets containing JPEG 2000 packets containing the lower sub-bands. Special values of priority: 0 : This is reserved for payload which contain a header (main or tile part header.) This is considered the highest importance. 1 to 255 : These values decrease in importance as the values increase. (i.e. 1 is more important than 2, etc.) Hence applying priority values should correlate directly to JPEG 2000 codestream in importance in basic usage. tile number : 16 bits This field shows the tile number that a payload belongs to only when the T bit is 0. If T bit is set to 1, the receiver MUST ignore this field. R (Reserved) : 8 bits This bit is reserved for future use. This MUST be set to 0 by the sender. Receivers MUST ignore this field. fragment offset : 24 bits Futemma, et al. [Page 8] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 This value MUST be set to the byte offset of the current payload in relation to the very beginning of each JPEG 2000 codestream (JPEG 2000 frame). Byte offsets are calculated from the start of each JPEG 2000 codestream upto the current position where the current payload would fit into the complete JPEG 2000 image codestream. To perform scalable video delivery by using multiple RTP sessions, the offset value from the first byte of the same frame is set for fragment offset. It is possible, to scalably delivery video using multiple RTP sessions, the fragment offset may not start from 0 in some RTP sessions even if the packet is the first one received. 5. RTP Packetization The sender must packetize the JPEG 2000 appropriately according to initial MIME parameters and/or details from SDP offer/answer parameters. A "packetization unit" is defined as either a JPEG 2000 main header, a tile-part header, or a JPEG 2000 packet. First, a sender divides the JPEG 2000 codestream into packetization units by parsing the codestream or by getting information from the encoder, and packs the packetization units into RTP packets. A sender can put an arbitrary number of packetization units into an RTP packet, but it MUST preserve the codestream order. An example of this kind of RTP packet format is below: +------+-------+---------------+---------------+ |RTP |payload| packetization | packetization | |header|header | unit | unit | +------+-------+---------------+---------------+ Fig. 5 An Example of RTP packet format with multiple packetization units If a packetization unit with headers (IP header, RTP header and payload header) is larger than the MTU size, it MAY be fragmented. To pack a fragmented packetization unit, the fragmented unit MUST NOT be packed with the succeeding packetization unit within the same RTP packet. An example of this kind of RTP packet format is below: +------+-------+-------------------------------------------------+ |RTP |payload| packetization unit fragment | |header|header | | +------+-------+-------------------------------------------------+ +------+-------+-------------------------------------------------+ |RTP |payload| packetization unit fragment | |header|header | | Futemma, et al. [Page 9] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 +------+-------+-------------------------------------------------+ . . . +------+-------+--------------------------------------------+ |RTP |payload| end of packetization unit fragment | |header|header | | +------+-------+--------------------------------------------+ Fig. 6 An Example of RTP packet format with a fragmented packetization unit 6. Scalable Delivery and Priority field JPEG 2000 codestream has rich functionality built into it so decoders can easily handle scalable delivery or progressive transmission. Progressive transmission that allows images to be reconstructed with increasing pixel accuracy or spatial resolution is essential for new applications. This feature allows the reconstruction of images with different resolutions and pixel accuracy, for different target devices. A single image source can provide a codestream that is easily processed for smaller image display devices. JPEG 2000 packets contain all compressed image data from a specific: layer, component, resolution level, and/or precinct. The order in which these JPEG 2000 packets are found in the codestream is called the "progression order". The ordering of the JPEG 2000 packets can progress along four axes: layer, component, resolution level and precinct. Providing a priority field to indicate importance of data contained in a given RTP packet can aid in usage of JPEG 2000 progressive and scalable functions. The lower the priority value is the higher the priority. Simply, the priority value 0 is the highest priority and 255 is the lowest priority. We define the priority value 0 as a special priority value for the headers (the main header or tile-part header). When any headers (the main header or tile-part header) are packed into the RTP packet, the sender MUST set the priority value to 0. 6.1 Priority Mapping Table For the progression order, the priority value for each JPEG 2000 packet is given by the priority mapping table. In principle, the priority mapping table is negotiated between the sender and the receiver through SDP (Session Description Protocol). 6.1.1 Pre-Defined Priority Mapping This document specify several commonly-used several priority mapping table, pre-defined priority mapping tables: packet number based (default), progression-based, layer-based, resolution-based, Futemma, et al. [Page 10] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 component-based. Packet number priority mapping is REQUIRED to be supported by clients implementing this specification. Other priority mapping tables (progression, layer, resolution, and component based) are OPTIONAL to implementations of this specification. Rules that all implementations of this specification MUST follow in all priority modes: When there is a header in the packet with a JPEG 2000 packet, the sender MUST set the payload packet priority value to 0. When there are multiple JPEG 2000 packets in the same RTP payload packet, the sender MUST set the payload packet priority value to the lowest priority value of the lowest JPEG 2000 packet. 6.1.1.1 Packet number based Ordering This is the default mode for payload packet priority value and all implementation of this specification MUST support. The sender will have a one-to-one association between payload packet priority value and the payload, the JPEG 2000 codestream, packet value. The RTP packet value is equal to the JPEG 2000 packet value. If the packet value of JPEG 2000 codestream is greater than 255, the sender MUST set the payload priority value to 255. 6.1.1.2 Progression-based Ordering The sender will assign the payload packet priority value only based on layer, resolution, and component ordering the codestream is encoded. This is similar to the JPEG 2000 packet number based format but will not take into account the precinct number or position in the JPEG 2000 codestream. For example: If the codestream is ordered in LRCP (Layer, Resolution, Component, Position) All the packets in layer 0 resolution 0 component 0 : packet priority value : 1 All the packets in layer 0 resolution 0 component 1 : packet priority value : 2 All the packets in layer 0 resolution 0 Futemma, et al. [Page 11] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 component 2 : packet priority value : 3 6.1.1.3 Layer-based Ordering Layer-based priority mapping table simplifies the default mapping to just matching JPEG 2000 packets together from the same layer. For example: All the packets in layer 0 : packet priority value : 1 All the packets in layer 1 : packet priority value : 2 All the packets in layer 2 : packet priority value : 3 All the packets in layer 3 : packet priority value : 4 6.1.1.4 Resolution-based Ordering Resolution-based priority mapping table is similar to the layer based order but for JPEG 2000 packets of the same resolution For example: All the packets in resolution 0 : packet priority value : 1 All the packets in resolution 1 : packet priority value : 2 All the packets in resolution 2 : packet priority value : 3 All the packets in resolution 3 : packet priority value : 4 6.1.1.5 Component-based Ordering Component-based priority mapping table is mapping together JPEG 2000 components of the same component For example: All the packets in component 0 : packet priority value : 1 All the packets in component 1 : packet priority value : 2 All the packets in component 2 : packet priority value : 3 All the packets in component 3 : packet priority value : 4 6.1.2 Application Specific Priority Table The application specific priority table specification is intended for experimental use as new applications and new priority mapping tables are developed. A case sensitive 8 character ASCII code describing the application specific priority mapping name. The description of these application specific priority tables are outside the scope of this document. This extension may be used when codestream is divided into many layers and many resolutions. 6.2 Sender Action A priority value is given in accordance with the priority mapping table. If multiple JPEG 2000 packets are packed into the same RTP packet, the lowest priority value is set for the priority field. Futemma, et al. [Page 12] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 Accordingly, a sender can transmit each priority level packets using multiple RTP sessions. For example, in layered multicast a sender can transmit each priority through each multicast group. 6.3 Receiver Action The image architecture provides for the efficient delivery of image data in many applications such as client/server applications. The receiver should decode packets above a certain priority to obtain maximum performance depending on the receiver's platform. 7. JPEG 2000 Main Header Compensation Scheme The JPEG 2000 main header has various encoding parameters. A decoder decodes the JPEG 2000 codestream by using the parameters described in the JPEG 2000 main header. If an RTP packet is lost with the JPEG 2000 main header, the corresponding JPEG 2000 codestream cannot be decoded, even if all of the following JPEG 2000 packets are successfully received. A recovery of the main header that has been lost is very simple with this procedure. In the case of JPEG 2000 video, it is common that encode parameters will not vary greatly between each successive frame. Even if the RTP packet including the main header of a frame has been dropped, decoding may be performed by using the main header with the same mh_id as the current packet. The mh_id field of the payload header is used to recognize whether the encoding parameters of the main header are the same as the encoding parameters of the previous frame. The same value is set in mh_id of the RTP packet in the same frame. The mh_id and encode parameters are not associated with each other as 1:1 but they are used to recognize whether the encode parameters of the previous frame are the same or not in the event of lost headers. The mh_id field value SHOULD be saved from previous frames to be used to recover the current frame's main header. If the mh_id of the current frame has the same value as the mh_id value of the previous frame, the previous frame's main header SHOULD be used to decode the current frame, in case of a lost header. The sender MUST increment mh_id when parameters in the header change and send a new main header accordingly. The receiver MAY use the mh_id and MAY retain the header for such compensation. 7.1 Sender Processing The sender must transmit RTP packets with the same mh_id value unless the encoder parameters are different from the previous frame. The encoding parameters are the fixed information marker segment (SIZ marker) and functional marker segments (COD, COC, RGN, Futemma, et al. [Page 13] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 QCD, QCC, and POC) specified in JPEG 2000 Part 1 Annex A [1]. An initial value of mh_id MUST be selected randomly between 1 and 7. If the encode parameters changes, the sender transmitting RTP packets MUST increment the mh_id value by one, but when mh_id value is greater than 7, a sender MUST set mh_id value to 1. 7.2 Receiver Processing When the receiver receives the main header completely, the RTP sequence number, the mh_id and main header should be saved. Only the last main header that was received completely SHOULD be saved. When the mh_id value is 0, the receiver SHOULD NOT save the header. When the main header is not received, the receiver may compare the current payload header's mh_id value with the saved mh_id value. When the values are the same, decoding may be performed by using the saved main header. If the mh_id field is set to 0, the receiver MUST not save the main header and MUST NOT compensate for lost headers. 8. Security Consideration RTP packets using the payload format defined in this specification are subject to the security considerations discussed in the RTP specifications[3] and any applicable profile. This implies that confidentiality of the media streams is achieved by encryption. Data compression used with this payload format is applied end-to-end, encryption may be performed on the compressed data 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. The usage of authentication of at least the RTP packet is RECOMMENDED, for example with SRTP [4]. If QoS enhanced service is used, RTP receivers SHOULD monitor packet loss to ensure that the service that was requested is actually being delivered. If it is not, then they SHOULD assume that they are receiving best-effort service and behave accordingly. If best-effort service is being used, users of this payload format MUST monitor packet loss to ensure that the packet loss rate is within acceptable parameters. Packet loss is considered acceptable if a TCP flow across the same network path, experiencing the same network conditions, would achieve an average throughput, measured on a reasonable timescale, that is not less than the RTP flow is achieving. This condition can be satisfied by implementing congestion control mechanisms to adapt the transmission rate (or the number of layers subscribed for a layered multicast session), Futemma, et al. [Page 14] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 or by arranging for a receiver to leave the session if the loss rate is unacceptably high. As with any IP-based protocol, in some circumstances a receiver may be overloaded simply by receiving 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 [8] and in multicast routing protocols to allow a receiver to select which sources are allowed to reach it. 9. IANA Consideration 9.1 MIME Registration This document defines a new RTP payload name and associated MIME type, jpeg2000. The receiver MUST ignore any unspecified parameter. The MIME registration form for JPEG 2000 video stream is enclosed below: MIME media type name: video MIME subtype name: jpeg2000 REQUIRED parameters: color-space, scan-mode color-space: A list of values specifying the color space of the payload data. Acceptable values: - "RGB" - standard Red, Green, Blue color space. - "YUV/444" - standard YUV color space, no subsampling - "YUV/422" - standard YUV color space, U & V are subsampled horizontally by 1/2 - "YUV/420" - standard YUV color space, U & V are subsampled horizontally and vertically by 1/2 - "GRAYSCALE" - basically a single component image of just multilevels of grey. scan-mode: A parameter describing scanning mode of the payload data. Acceptable values: - "progressive" - progressive scanning. Each complete image forms a whole image on the display. tp value in the payload header MUST be 0. - "interlace" - interlace scanning. Each complete image forms vertically half the display. tp value MUST properly specify the field the image represents odd(tp=1), even(tp=2), or frame(tp=3). Futemma, et al. [Page 15] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 OPTIONAL parameters: priority-table: Indicates which kinds of priority mapping table definition is used in a RTP payload header. A parameter describing the priority ordering will be one of the acceptable values. Acceptable values: - "jp2-packet" - JPEG 2000 packet number based ordering - "progression" - progression-based ordering - "layer" - layer based ordering - "resolution" - resolution based ordering - "component" - component based ordering - "default" - default priority mapping. same as "jp2-packet" - a case sensitive 8 character ASCII code corresponding to set application specific priority table. When this parameter is omitted in an offer or answer, default priority mapping SHALL be used. In multicast scenarios, an offerer SHOULD use default priority mapping only. max-width: A parameter describing the maximum width of the video stream. This parameter MUST appear when max-height is present. Acceptable values: - an integer value between 0 - 4,294,967,295. max-height: A parameter describing the maximum height of the video stream. This parameter MUST appear when max-width is present. Acceptable values: - an integer value between 0 - 4,294,967,295. Encoding considerations: JPEG 2000 video stream may be transmitted with RTP as specified in this document. Security considerations: see section 9 of RFC XXXX. Interoperability considerations: JPEG 2000 video stream is a sequence of JPEG 2000 still images. An implementation in compliant with [1] can decode and attempt to display the encoded JPEG 2000 video stream. Published specification: ISO/IEC 15444-1 | ITU-T Rec. T.800 Applications which use this media type: video streaming and communication Additional information: none Magic number(s): none File extension(s): none Futemma, et al. [Page 16] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 Macintosh File Type Code(s): none Person & email address to contact for further information: Eisaburo Itakura, Satoshi Futemma Email: {itakura|satosi-f}@sm.sony.co.jp Intended usage: COMMON Author/Change controller: Eisaburo Itakura, Satoshi Futemma Email: {itakura|satosi-f}@sm.sony.co.jp 9.2 SDP Parameters The MIME media type video/jpeg2000 string is mapped to fields in the Session Description Protocol (SDP) [4] 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 jpeg2000 (the MIME subtype). o The clock rate in the "a=rtpmap" line MUST be 90000. o The REQUIRED parameters "color-space" and "scan-mode", MUST be included in the "a=fmtp" line of SDP. o The OPTIONAL parameters "priority-table-default", "priority-table-definition", "priority-table-protocol", "max-width", and "max-height", when present, MUST be included in the "a=fmtp" line of SDP. These parameters are expressed as a MIME media type string, in the form of a semicolon separated list of parameter=value pairs. Therefore, an example of media representation in SDP is as follows: m=video 49170/2 RTP/AVP 98 a=rtpmap:98 jpeg2000/90000 a=fmtp:98 color-space=YUV420;scan-mode=progressive;max-width=128; max-height=128 10. Usage with the SDP Offer/Answer Model When offering JPEG 2000 over RTP using SDP in an Offer/Answer model [5], the following rules and limitations apply: o All parameters MUST have an acceptable value for that parameter. o All parameters MUST correspond to the parameters of the payload. o The parameters "color-space" and "scan-mode" MUST appear in the Futemma, et al. [Page 17] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 offer and the answer o For optional parameters "max-width" and "max-height" the following applies: -if "max-width" appears in the offer or answer, "max-height" MUST be present. -if "max-height" appears in the offer or answer, "max-width" MUST be present. 10.1 Examples An example offer/answer exchanges are provided. Alice offers YUV 422 color space, interlace image with 720-pixel width and 480-pixel height and several priority-table options (jp2-packet, progression, layer, resolution, component) as below: v=0 o=alice 2890844526 2890844526 IN IP4 host.anywhere.com s= c=IN IP4 host.anywhere.com t=0 0 m=video 49170 RTP/AVP 98 a=rtpmap:98 jpeg2000/90000 a=fmtp:98 color-space=YUV/422; scan-mode=interlace a=fmtp:98 priority-table-definition=jp2-packet,progression,layer, resolution,component; max-width=720; max-height=480 Bob accepts YUV/422 color space, interlace image and jp2-packet based priority mapping (default mapping table) and replies: v=0 o=bob 2890844730 2890844731 IN IP4 host.example.com s= c=IN IP4 host.example.com t=0 0 m=video 49920 RTP/AVP 98 a=rtpmap:98 jpeg2000/90000 a=fmtp:98 color-space=YUV/422; scan-mode=interlace Note that "priority-table-definition" parameter in Bob's answer is omitted, so default priority mapping table (jp2-packet number based priority mapping) is used. 11. Intellectual Property Right Statement 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 Futemma, et al. [Page 18] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 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. 12. Informative Appendix 12.1 Recommended Practices As the JPEG 2000 coding standard is highly flexible, many different but compliant data streams can be produced and still be labeled as a JPEG 2000 data stream. The following is a set of recommendations set forth from our experience in developing JPEG 2000 and this payload specification. Implementations of this standard must handle all possibilities mentioned in this specification. The following is a listing of items an implementation could optimize. Error Resilience Markers The use of error resilience markers in the JPEG 2000 data stream is highly recommended in all situations. Error recovery with these markers is helpful to the decoder and save external resources. Markers such as: RESET, RESTART, and ERTERM. YUV/YCbCr Color space The YUV/YCbCr color space provides the greatest amount of compression in color with respect to the human visual system. When used with JPEG 2000, the usage of this color space can provide excellent visual results at extreme bit rates. Progression Ordering JPEG 2000 offers many different ways to order the final code stream to optimize the transfer with the presentation. The most useful ordering in our usage cases have been for layer progression and resolution progression ordering. Tiling and Packets Futemma, et al. [Page 19] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 JPEG 2000 packets are formed regardless of the encoding method. The encoder has little control over the size of these JPEG 2000 packets as they maybe large or small. Tiling splits the image up into smaller areas and each are encoded separately. With tiles, the JPEG 2000 packet sizes are also reduced. When using tiling, almost all JPEG 2000 packet sizes are an acceptable size (i.e. smaller than the MTU size of most networks.) Receiver Processing In general, the receiver should scan for headers in packets that have an MHF value > 0 to aid in main header recovery. Sender Processing There are no limitations as to how the sender should pack the payload. In general, the sender should pack headers separately from the rest of the codestream to make header recovery simple. Payloads should generally begin with an SOP marker and end with EPH marker for easier decoder processing. 12.2 Sample Headers in Detail This section has various sample headers in various configurations for reference. For reference, the payload 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |tp |MHF|mh_id|T| priority | tile number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |reserved | fragment offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ For the first packet with the main header, this is what it will look like. Note, for this example MTU will be taken as: 1500bytes (Ethernet) Sample 1: Progressive image with single tile, 3500bytes (i.e. thumbnail) First Packet: This packet will have the whole main header. 210bytes 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 0|1 1|1 0 1|1|0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| Futemma, et al. [Page 20] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |FF4FFF51002F000 .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Second Packet: This packet will have a tile header and the first tile part LLband 1500bytes 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 0|1 1|1 0 1|0|0 0 0 0 0 0 0 1|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |FF90 000A 0000 0000 2DB3 0001 FF93 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Third Packet: This packet will have the next part in the tile, no tile header 1500bytes 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 0|0 0|1 0 1|0|0 0 0 0 0 0 1 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E841 4526 4556 9850 C2EA .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fourth Packet: Last packet for the image 290bytes 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 0|0 0|1 0 1|0|0 0 0 0 0 0 1 1|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |A55D 8B73 3B25 25C7 B9EB .... 2FBEB153| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Smaple 2: Image with 4 tiles First Packet: This packet will have the whole main header. 210bytes Futemma, et al. [Page 21] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 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 0|1 1|0 0 1|1|0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |FF4FFF51002F000 .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Second Packet: This packet will have a first tile part (tile 0) 1400bytes 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 0|0 0|0 0 1|0|0 0 0 0 0 0 0 1|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |FF90 000A 0000 0000 0578 0001 FF93 .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Third Packet: This packet will have a second tile part (tile 1) 1423bytes 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 0|0 0|0 0 1|0|0 0 0 0 0 0 0 1|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |FF90 000A 0001 0000 058F 0001 FF93 .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fourth Packet: This packet will have a third tile part (tile 2) 1355bytes 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 0|0 0|0 0 1|0|0 0 0 0 0 0 0 1|0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 0 1| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |FF90 000A 0002 0000 054B 0001 FF93 .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fifth Packet: This packet will have a fourth tile part (tile 3) Futemma, et al. [Page 22] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 1290bytes 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 0|0 0|0 0 1|0|0 0 0 0 0 0 0 1|0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |FF90 000A 0003 0000 050A 0001 FF93 .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Sample 3: Packing multiple tiles in single payload, fragmented header No header compensation, progressive image First Packet: This packet will have the first part of the main header. 110bytes 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 0|0 1|0 0 0|1|0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |FF4FFF51002F000 .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Second Packet: This packet has the second part of the header. 1400bytes 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 0|1 0|0 0 0|1|0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |FF6400FF .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Third Packet: This packet has two tiles, tile 0 and tile 1 1400bytes 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 0|0 0|0 0 0|1|0 0 0 0 0 0 0 1|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 1 0| Futemma, et al. [Page 23] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |FF90 000A 0000 0000 02BC 0001 FF93 ... | |FF90 000A 0001 0000 02BC 0001 FF93 ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fourth Packet: This packet has one tile, tile 2 1395bytes 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 0|0 0|0 0 0|0|0 0 0 0 0 0 0 1|0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |FF90 000A 0002 0000 0573 0001 FF93 .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Sample 4: Interlace image, single tile First packet: This packet will have the whole main header for the odd field 210bytes 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 1|1 1|0 1 0|1|0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |FF4FFF51002F000 .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Second packet: This packet will have the first part of the odd field's tile 1400bytes 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 1|0 0|0 1 0|1|0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |FF90 000A 0000 0000 0578 0001 FF93 .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Third packet: This packet will have the second part of the odd field's tile 1400bytes 0 1 2 3 Futemma, et al. [Page 24] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 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 1|0 0|0 1 0|1|0 0 0 0 0 0 0 1|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |7F04 E708 27D9 D11D 22CB ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fourth packet: This packet will have the third part of the odd field's tile 1300bytes 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 1|0 0|0 1 0|1|0 0 0 0 0 0 0 1|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 1 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |98BD EC9B 2826 DC62 D4AB ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fifth packet: This packet will have the whole main header for the even field 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1 0|1 1|0 1 1|1|0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |FF4FFF51002F000 .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Sixth packet: This packet will have the first part of the odd field's tile 1400bytes 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1 0|0 0|0 1 0|1|0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |FF90 000A 0000 0000 0578 0001 FF93 .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Seventh packet: This packet will have the second part of the odd field's tile 1400bytes Futemma, et al. [Page 25] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1 0|0 0|0 1 0|1|0 0 0 0 0 0 0 1|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |626C 42F0 166B 6BD0 F8E1 ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Eighth packet: This packet will have the third part of the odd field's tile 1300bytes 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1 0|0 0|0 1 0|1|0 0 0 0 0 0 0 1|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 1 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |8114 41D5 18AB 4A1B ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 13. References Normative References [1] ISO/IEC JTC1/SC29, ISO/IEC 15444-1 | ITU-T Rec. T.800 "Information technology - JPEG 2000 image coding system - Part 1: Core coding system", December 2000. [2] S. Bradner, "Key words for use in RFCs to Indicate Requirement Levels", BCP14, RFC2119, March 1997. [3] H. Schulzrinne, S. Casner, R. Frederick, and V. Jacobson, "RTP: A Transport Protocol for Real Time Applications", STD 64, RFC 3550, July 2003. [4] M. Baugher, D. McGrew, M. Naslund, E. Carrara and K. Norrman, "The Secure Real-time Transport Protocol (SRTP)", RFC 3711, March 2004. [5] M. Handley and V. Jacobson, "SDP: Session Description Protocol", RFC 2327, April 1998. [6] J. Rosenberg and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002. Informative References [7] ISO/IEC JTC1/SC29, ISO/IEC 15444-3 "Information technology - JPEG 2000 image coding system - Part 3: Motion JPEG 2000", Futemma, et al. [Page 26] INTERNET-DRAFT draft-ietf-avt-rtp-jpeg2000-06.txt October 25, 2004 July 2002. [8] Deering, S., "Host Extensions for IP Multicasting", STD 5, RFC 1112, August 1989. 14. Authors' Addresses Satoshi Futemma/Eisaburo Itakura/Andrew Leung Sony Corporation 6-7-35 Kitashinagawa Shinagawa-ku Tokyo 141-0001 JAPAN Phone: +81 3 5448 2125 Fax: +81 3 5448 4560 Email: {satosi-f|itakura}@sm.sony.co.jp, andrew.leung@jp.sony.com 15. Full Copyright Statement Copyright (C) The Internet Society (2004). 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 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. Futemma, et al. [Page 27]