<?xml version='1.0' encoding='US-ASCII'?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">


<!--
things should be this:
************************************************************************
wide.

todos:
issues:

-->

<?rfc toc="yes"?>
<?rfc rfcedstyle="yes"?>
<?rfc symrefs="yes"?>

<!--rfc ipr="full2026" -->
<rfc number="5372" category="std" >
	<!--
<rfc ipr="noDerivatives3978" > need to have IPR element
	<rfc ipr="full" docName="draft-ietf-avt-rtp-jpeg2000-beam" >
	ipr="full2026" docName="document name" 
	-->

	<front>
	<title abbrev="JPEG 2000 RTP EX">  
	Payload Format for JPEG 2000 Video:
	Extensions for Scalability and Main Header Recovery
	</title>

	<author 
	initials="A" 
	surname="Leung" 
	fullname= "Andrew Leung">
	<organization abbrev="Sony">
	Sony Corporation
	</organization>

	<address>
	<postal>
	<street>1-7-1 Konan</street>
	<street>Minato-ku</street>
	<city>Tokyo</city>
	<code>108-0075</code>
	<country>Japan</country>
	</postal>
	<phone>+81 3 6748-2111</phone>
<!--
	<street>6-7-35 Kitashinagawa</street>
	<street>Shinagawa-ku</street>
	<city>Tokyo</city>
	<code>141-0001</code>
	<country>Japan</country>
	</postal>
                <phone>+81 3 5448 2111</phone>
-->
	<email>andrew @ ualberta . net</email>
	<uri>http://www.sony.net/</uri>
	
	</address>
	</author>

	<author 
	initials="S" 
	surname="Futemma" 
	fullname= "Satoshi Futemma">
	<organization abbrev="Sony">
	Sony Corporation
	</organization>

	<address>
	<postal>
	<street>1-7-1 Konan</street>
	<street>Minato-ku</street>
	<city>Tokyo</city>
	<code>108-0075</code>
	<country>Japan</country>
	</postal>
	<phone>+81 3 6748-2111</phone>

<!--
	<street>6-7-35 Kitashinagawa</street>
	<street>Shinagawa-ku</street>
	<city>Tokyo</city>
	<code>141-0001</code>
	<country>Japan</country>
	</postal>
                <phone>+81 3 5448 2111</phone>
-->
	<email>satosi-f @ sm . sony . co . jp</email>
	<uri>http://www.sony.net/</uri>
	
	</address>
	</author>
	<author 
	initials="E" 
	surname="Itakura" 
	fullname= "Eisaburo Itakura" > 
	<organization abbrev="Sony">
	Sony Corporation
	</organization>

	<address>
	<postal>

	<street>1-7-1 Konan</street>
	<street>Minato-ku</street>
	<city>Tokyo</city>
	<code>108-0075</code>
	<country>Japan</country>
	</postal>
	<phone>+81 3 6748-2111</phone>
<!--
	<street>6-7-35 Kitashinagawa</street>
	<street>Shinagawa-ku</street>
	<city>Tokyo</city>
	<code>141-0001</code>
	<country>Japan</country>
	</postal>
                <phone>+81 3 5448 2111</phone>
-->
	<email>itakura @ sm . sony . co . jp</email>
	<uri>http://www.sony.net/</uri>
	
	</address>
	</author>

	<date 
	month="September" 
	year="2008" 
	/>
	<area>Transport</area>
	<workgroup> Audio Video Transport </workgroup>
	<keyword>JPEG 2000 video</keyword>
	<keyword>RTP</keyword>

	<abstract>
	
	<t>
	This memo describes extended uses for the payload header in "RTP Payload
	Format for JPEG 2000 Video Streams" as specified in RFC 5371, for
	better support of JPEG 2000 features such as scalability and main
	header recovery.
	</t>

	<t>
	This memo must be accompanied with a complete implementation of "RTP
	Payload Format for JPEG 2000 Video Streams".  That document is a
	complete description of the payload header and signaling, this
	document only describes additional processing for the payload
	header. There is an additional media type and Session Description Protocol (SDP) marker signaling
	for implementations of this document.
	</t>


	</abstract>

	</front>
	
	<middle>

	<section anchor="intro" title="Introduction">
	<t>
		This document is an extension of "RTP Payload Format for JPEG
		2000 Video Streams" <xref target="JP2RTP" />. These are additional
		mechanisms that can be used with certain parts of the header in
		<xref target="JP2RTP" /> to support JPEG 2000 features such as
		scalability and a main header compensation method. These
		mechanisms are described in detail in this document.
	</t>
	<t>

		These are optional extensions to RFC 5371 <xref
		target="JP2RTP" />, which one may use to make
		better use of JPEG 2000 features.
		These extensions are not required for any
		implementations of RFC 5371 <xref target="JP2RTP" />.
	</t>
	
	<!--
	<section anchor="history" title="History">

		
		<t>
		In the development of RFC 5371 <xref target="JP2RTP" />, there was
		an issue of IPR claims on certain mechanisms with main header
		compensation, priority table usage, etc. in RFC 5371 <xref
		target="JP2RTP" />. As these are not "essential" to the core RTP
		format of RFC 5371 <xref target="JP2RTP" /> and only describes a
		mechanism, it was decided that splitting these mechanisms from the
		core JPEG 2000 RTP format in to a separate document.  This is the
		document describing the IPR related mechanisms for main header
		recover and priority table usage.
		</t>
	
	</section> <!-- history -->
	-->


	<section anchor="description_of_mechanism" 
		title="Description of the Mechanisms">
		
		<section anchor="mhc" title="Main Header Compensation">

		
		<t>
			JPEG 2000 has a scalable coding scheme that allows for
			decompressing truncated or partial data streams but only when
			the main header is present.  If the header is lost, the data is
			useless.  With JPEG 2000 video coding, coding parameters between
			frames will rarely change and previous headers may be used in
			newly received data which the header have been lost.

<!--[rfced] Please clarify the above sentence.  -->
		</t>
		<t>
			Compensation of the main header that has been lost is very
			simple with this procedure. In the case of JPEG 2000 video, it
			is very common that encode parameters will not vary greatly
			between successive frames. Even if the RTP packet including the
			main header of a frame has been dropped, decoding may be
			performed by using the main header of a prior frame.
		</t>
		
		</section>
	
		<section anchor="priority_table_intro" title="Priority Table">
		
		<t>
			JPEG 2000 codestream has rich functionality built into it so
			decoders can easily handle scalable delivery or progressive
			transmission. Progressive transmission allows images to be
			reconstructed with increasing pixel accuracy or spatial
			resolution.
			
			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.
		</t>
		
		<t>
			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, and precinct (or position).
		</t>

		
		<t>
			Providing a priority field to indicate the importance of data
			contained in a given RTP packet can aid in usage of JPEG 2000
			progressive and scalable functions.
		</t>
		
		</section> <!-- priority table -->
	</section> <!-- description of mechanisms -->

	<section anchor="motivation" 
		title="Motivations for Priority Field Coding">

		<t>
		The JPEG 2000 coding scheme allows one to reorder the codestream in
		many ways. Even when the coding scheme is determined and arranged
		by the encoder, a decoder can still re-arrange the code stream on
		the fly to suit decode parameters such as re-arranging from
		resolution progressive to quality progressive.
		</t>

		<t>
		<!-- 
		On the network, full access to the codestream 
		may not be possible. 
		and depending on the scenario, 
		it could be very difficult.
		--> 
		Using the priority field coding, the decoder gains insight into
		the codestream without access to the full codestream and exposes
		features of JPEG 2000 to a higher level.
		</t>

		<t>
                The authors have thought of a few of the scenarios below to utilize this field.
	 The priority field allows more
		information about the image to be sent without more signaling
		between sender and receivers to leverage JPEG 2000 capabilities.
		</t>

		<section anchor="just_enough_resolution" 
		title="Scenario: Just Enough Resolution">
		
		<t>
			The scenario is when rapid scene access is more important than
			higher quality.  By using the priority field, the receiver can
			decode for its own quality level.  If the sender cannot
			determine the receiver's resolution, the receiver can select
			which parts of the codestream to decode/load by using the
			priority field.
		</t>
		</section> <!-- Scenario1: Just enough resolution -->

		<section anchor="multiple_clients_single_source" 
		title="Scenario: Multiple Clients, Single Source">
		
		<t>
			In a multicast environment, there are clients with better visual
			capability than others (i.e., TV conference versus Mobile).  The
			respective clients can use the priority field to determine which
			packets are vital for their own visual presentation.

			The sender will have to do work on the priority field to
			optimally serve all the clients while only managing a single
			visual stream.
		</t>
		</section> <!-- Scenario2: Serving multiple clients with single source -->
 
	</section> <!-- Motivations for priroiryt field coding in JPEG 2000 RTP BEAM -->

	
	<section anchor="conventions" 
		title="Conventions Used in This Document">
		
		<t>
		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 RFC 2119.
		<xref target='RFC2119'/>.
		</t>

		<!--
		<t>
		RFC-Editor Note: The RFC Editor is 
		requested to replace all occurences of
		RFC 5371 with the RFC number
		draft-ietf-avt-rtp-jpeg2000 receives. At
		that time, please remove this note.
		</t>
		-->

	</section> <!-- conventions -->
	</section>  <!-- introduction section -->

	
	<section anchor="enhanced_processing" 
	title="Payload Format Enhanced Processing">
	
	<section anchor="processing_markers " 
		title="Enhanced Processing Markers">
		<t>
		This section of the document describes additional usage in the
		values of mh_id and priority fields and interpretation that
		differ from RFC 5371 <xref target="JP2RTP" />.  Implementations of
		this document should follow RFC 5371 <xref target="JP2RTP" />
		first then add additional header processing as described in this
		document.  Implementations following this document are expected to
		interoperate with implementations of <xref target="JP2RTP" /> and
		this document as well.
		</t>
		
		<figure anchor="jp2payloadheader" 
		title="RTP Payload Header Format for JPEG 2000" >
		
		<preamble>
			The RTP payload header format for JPEG 2000 video stream is as
			follows:
		</preamble>
	
		<artwork> <![CDATA[
 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                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
			]]>

			
		</artwork>
		
		</figure>
		
		<t>
		mh_id (Main Header Identification): 3 bits
		</t>
		<list>
		<t>
			Main header identification value.  This is used for JPEG 2000
			main header recovery.
		</t>

		<t>
			The initial value of mh_id MUST be 1 at the beginning of the
			session.
		</t>

		<t>
			The same mh_id value is used as long as the coding parameters
			described in the main header remains unchanged between frames.
		</t>

		<t>
			The mh_id value MUST be incremented by 1 every time a new main
			header is transmitted. Once the mh_id value becomes greater than
			7, it SHOULD roll over to 1.
		</t>

		<t>
			When mh_id is 0, it has special usage for the receiver.  This
			special usage is described in <xref
			target="receiver_processing"/> of this document.
		</t>

		<t>
			Senders should follow <xref target="sender_processing"/> of this
			document for proper mh_id assignment and usage.
		</t>
		</list>
		
		<t>
		priority: 8 bits 
		</t>
		<list>
		<t>
			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.
		</t>

		<t>
			Special values of priority:
		</t>
		<list style="hanging">
			<t hangText="0:"> This is reserved for payloads that contain a
			header (main or tile part header). This is considered the most
			important.
			</t>

			<t hangText="1 to 255:"> These values decrease in importance as
			the values increase (i.e., 1 is more important than 2, etc.).
			Applying priority values should correlate directly to the JPEG 2000
			codestream in importance.  <!-- this is a bit confusing *** -->
			</t>
		</list>

		<t>
			The lower the priority value, the higher the importance.  A
			priority value of 0 is the highest importance and 255 is the
			lowest importance. We define the priority value 0 as a special
			priority value for the headers (the main header or tile-part
			header). If any headers (the main header or tile-part header)
			are packed into the RTP payload, the sender MUST set the
			priority value to 0.
		</t>

		<t>
			Assignment of the values is described in <xref
			target="priority_table"/>.
		</t>
		</list>

	</section> <!-- enhanced processing markers -->
	</section> <!-- enhanced processing -->

	<section anchor="priority_table" title="Priority Mapping Table">
	<t>
		For the progression order, the priority value for each JPEG 2000
		packet is given by the priority mapping table.
	</t>
	<!-- section 
		anchor="predefined_table" 
		title="Pre-Defined Priority Mapping" 
   -->
		<t>
		This document specify several commonly used priority mapping
		tables, pre-defined priority mapping tables: packet-number-based
		(default), progression-based, layer-based, resolution-based,
		position-based, and component-based.
		</t>

		<t>
		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.
		</t>

		<t>
		Rules that all implementations of this specification MUST follow
		in all priority modes:
		</t>
		
		<list style="symbols">
		<t>
			When there is a header in the packet with a JPEG 2000 packet,
			the sender MUST set the payload packet priority value to 0.
		</t>

		<t>
			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 JPEG 2000 packet (i.e., if JPEG 2000
			packets with priority: 5,6,7 are packed into a single payload,
			the priority value will be 5).
		</t>
		</list>

		
		<section anchor="packet_ordering" title="Packet-Number-Based Ordering">
	
		<t>
			Packet-number-based ordering assigns the payload packet priority
			value from the "JPEG 2000 packet value" (note: JPEG 2000
			codestreams are stored in units of packets and each packet has a
			value).
	
			This method is the default method for assigning priority value.
	
			All implementations of this specification MUST support this
			method.
		</t>

		<t>
			If the JPEG 2000 codestream packet value is greater than 255,
			the sender MUST set the payload priority value to 255.
		</t>
		</section> <!-- Packet Number Based Ordering -->

	
		<section anchor="progression_ordering" title="Progression-Based Ordering">

		<t>
			The sender will assign the payload packet priority value only
			based on layer, resolution, and component ordering of the
			codestream.
		</t>
	
		<t>
			The ordering can assign the different priority values in the
			same layer or the resolution level, which it cannot do in the layer-based ordering or resolution-based ordering.
		</t>

		<t>
			The difference from the packet-number-based ordering is that it
			does not assign the value in the position level, which saves the
			priority values usage.  The position-based priority signaling is
			not so important because a receiver could recognize the position
			by checking the tile number field. Therefore, the ordering would
			be useful.
		</t>

		<t>
			The general algorithm is that the ordering is based on the
			triple &lt;layer, resolution, component&gt; and the minimum
			priority is 1.  So, if the codestream is constructed of L layers
			(layer value ranges from 0 to L-1), R resolutions (resolution
			value ranges from 0 to R-1), and C components (component value
			ranges from 0 to C-1), then for a triple &lt;lval, rval,
			cval&gt;:

		<list>
			<t>
			the priority value of the codestream in LRCP order is calculated
			as:
			<list>
			<t>
			priority = 1 + cval + (C * rval) + (C * R * lval)
			</t>
			</list>
			</t>

			<t>
			the priority value of the codestream in RLCP order is calculated
			as:
			<list>
			<t>
			priority = 1 + cval + (C * lval) + (C * L * rval)
			</t>
			</list>
			</t>

			<t>
			the priority value of the codestream in RPCL order is calculated
			as:
			<list>
			<t>
			priority = 1 + lval + (L * cval) + (L * C * rval)
			</t>
			</list>
			</t>

			<t>
			the priority value of which codestream in PCRL order is
			calculated as:
			<list>
			<t>
			priority = 1 + lval + (L * rval) + (L * R * cval)
			</t>
			</list>
			</t>

			<t>
			the priority value of which codestream in CPRL order is
			calculated as:
			<list>
			<t>
			priority = 1 + lval + (L * rval) + (L * R * cval)
			</t>
			</list>
			</t>
		</list>
		</t>

		<!--
		<t>
			This is similar to the packet number 
			based assignment but will not take into 
			account the precinct number or position 
			in the JPEG 2000 codestream.
		</t>
		-->

		<t>
			For example:
		</t>
	
		<t>
			If the codestream is ordered in LRCP (Layer, Resolution,
			Component, Position) with 1 layer (L=1), 2 resolutions (R=2), 3
			components (C=3), and 2 positions, the priority value should be (1 +
			cval + 3*rval + 6*lval).

			Then an example would have packet numbering as so:
		</t>
		<list>
			<t>
			All the packets in:<vspace/>
	
			<list>
				<t>
				layer.........0
				<vspace/> 

				resolution....0
				<vspace/>

				component.....0
				<vspace/>

				position......0 or 1
				</t>
			</list>
			
			then the packet priority value : 1
			</t>

			
			<t>
			All the packets in:<vspace/>
	
			<list>
				<t>
				layer.........0
				<vspace/> 
	
				resolution....0
				<vspace/>

				component.....1
				<vspace/>

				position......0 or 1
				</t>
			</list>

			then the packet priority value : 2
			</t>


			<t>
			All the packets in:
			<vspace/>

			<list>
				<t>
				layer.........0
				<vspace/>
	
				resolution....0
				<vspace/>
	
				component.....2
				<vspace/>

				position......0 or 1
				</t>
			</list>
	
			then the packet priority value : 3
			</t>

			<t>
			All the packets in:
			<vspace/>

			<list>
				<t>
				layer.........0
				<vspace/>
	
				resolution....1
				<vspace/>
	
				component.....0
				<vspace/>

				position......0 or 1
				</t>
			</list>
	
			then the packet priority value : 4
			</t>

			<t>
			All the packets in:
			<vspace/>

			<list>
				<t>
				layer.........0
				<vspace/>
	
				resolution....1
				<vspace/>
	
				component.....1
				<vspace/>

				position......0 or 1
				</t>
			</list>
	
			then the packet priority value : 5
			</t>
	
		</list>
		</section> <!-- Progression Based Ordering -->
		
		<section 
		anchor="layer_ordering" 
		title="Layer-Based Ordering">
	
		<t>
			The layer-based priority mapping table 
			simplifies the default mapping
			to just matching JPEG 2000 packets 
			together from the same layer.
		</t>
	
		<t>
			For example:
		</t>

		<list>
			<t>
			All the packets in layer 0 
			: packet priority value : 1
			<vspace/>
			
			All the packets in layer 1 
			: packet priority value : 2
			<vspace/>
	
			All the packets in layer 2 
			: packet priority value : 3
			<vspace/>

			...
			<vspace/>
	
			All the packets in layer n 
			: packet priority value : 
			n+1
			<vspace/>
			All the packets in layer 255 
			: packet priority value : 
			255
			</t>
			<!--
			*** does this stuff look ok?!
			-->
		</list>
		</section> <!-- Layer-Based Ordering -->

		
		<section anchor="resolution_ordering" title="Resolution-Based Ordering">

		
		<t>
			Resolution-based priority mapping table is similar to the layer-based order but for JPEG 2000 packets of the same resolution.
		</t>

	
		<t>
			For example:
		</t>
	
		<list>
	
			<t>
			All the packets in 
			resolution 0 : packet 
			priority value : 1
			<vspace/>
	
			All the packets in 
			resolution 1 : packet 
			priority value : 2
			<vspace/>
	
			All the packets in 
			resolution 2 : packet 
			priority value : 3
			<vspace/>
	
			...
			<vspace/>
	
			All the packets in 
			resolution n : packet 
			priority value : n+1
			<vspace/>
			All the packets in resolution 255 
			: packet priority value : 
			255
			</t>
	
		</list>
		</section> <!-- Resolution Based Ordering -->
		
		<section anchor="component_ordering" title="Component-Based Ordering">
	
		<t>
			Component-based priority mapping table is mapping together JPEG
			2000 components of the same component.
		</t>
		<t>
			For example:
		</t>
		<list>
	
			<t>
			All the packets in 
			component 0 : packet 
			priority value : 1
			<vspace/>
	
			All the packets in 
			component 1 : packet 
			priority value : 2
			<vspace/>
	
			All the packets in 
			component 2 : packet 
			priority value : 3
			<vspace/>
	
			...
			<vspace/>
	
			All the packets in 
			component n : packet 
			priority value : n+1
			<vspace/>
			All the packets in component 255 
			: packet priority value : 
			255
			</t>
		</list>
		
		</section> <!-- component Based Ordering -->
	</section> <!-- Priority Mapping Table -->
	
	<section anchor="header_scheme" title="JPEG 2000 Main Header Compensation Scheme">
	<t>
		The mh_id field of the payload header is used to indicate 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 indicate whether or not the encode parameters of the previous
		frame are the same in the event of a lost header.
	</t>

	<t>
		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 MAY be used to
		decode the current frame, in case of a lost header in the current
		frame.
	</t>

	<t>
		The sender MUST increment mh_id when parameters in the header
		change and send a new main header accordingly.
	</t>
	<t>
		The receiver MAY use the mh_id and MAY retain the header for such
		compensation.
	</t>

	
	<section anchor="sender_processing" title="Sender Processing">
	
		<t>
		The sender MUST transmit RTP packets with the same mh_id value if
		the encoder parameters of the current frame are the same as the
		previous frame. The encoding parameters are the fixed information
		marker segment (SIZ marker) and functional marker segments (COD,
		COC, RGN, QCD, QCC, and POC) specified in JPEG 2000 Part 1, Annex A
		<xref target="JPEG2000Pt_1"/>.
		</t>

		<t>
		<!-- removed @ 6/23/2008
		An initial value of mh_id MUST be selected 
		randomly between 1 and 7 for security 
		reasons.
		-->
		</t>

		<t>
		If the encode parameters changes, the sender transmitting RTP
		packets MUST increment the mh_id value by one, but when the mh_id
		value becomes greater than 7, a sender MUST set the mh_id value back
		to 1.
		</t>
	</section> <!-- Sender Processing -->
	
	<section anchor="receiver_processing" title="Receiver Processing">
		<t>
		When the receiver receives the main header completely, the RTP
		sequence number, the mh_id, and the 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.
		</t>

		<t>
		When the main header is not received, the receiver may compare the
		current payload header's mh_id value with the previous saved mh_id
		value.  If the values match, decoding may be performed by using
		the previously saved main header.
		</t>

		<t>
		If the mh_id field is set to 0, the receiver MUST NOT save the
		main header and MUST NOT compensate for lost headers.
		</t>

		<t>
		If the mh_id value changes, receivers SHOULD save the current
		header and save the new mh_id value. The old saved header should
		be deleted from storage.
		</t>

		<t>
		Also, if the decoder detects an inconsistency between the header
		and payload, it is recommended to clear the saved mh_id and the
		saved main header.  Please see <xref target='security' /> for more
		explanation.
		</t>
	
	</section> <!-- Receiver Processing -->
	
	</section> <!-- JPEG 2000 Main Header Compensation Scheme -->
	

<!--
	<section anchor="iana0" title="IANA Consideration">
-->

	<section anchor="mime" title="Media Type Registration">
		
		<t>
		This document extends the associated media type "video/jpeg2000"
		from RFC 5371 <xref target='JP2RTP' />.  Here are additional
		optional parameters.
		</t>
		
	<!-- 
		<t>
		This registration uses the template defined in 
		<xref target='RFC4288' />  and follows 
		<xref target='RFC4855' />. 
		  </t>
		  <t>
		Type name: video
		  </t>
		  <t>
		Subtype name: jpeg2000
		  </t>
		  <t> 
		Required parameters: 
		  </t>	
		
		  <list>
		<list style="hanging">
			<t hangText="rate:"> 
			The RTP timestamp clock rate.
			The default rate is 90000,
			but other rates MAY be specified.
			Rates below 1000 Hz SHOULD NOT be used.
			</t>
		</list>

		<list style="hanging">
			<t hangText="sampling:"> 
			A list of values specifying the 
			color space of the payload data.
			</t>

		<t>	
			Acceptable values: 
		</t>	
		
		<list>
			
			<list style="hanging">
			<t hangText="RGB:">
				standard Red, Green, Blue 
				color space.
			</t>
			<t hangText="BGR:">
				standard Blue, Green, Red 
				color space.
			</t>
			<t hangText="RGBA:">
				standard Red, Green, Blue, 
				Alpha color space.
			</t>
			<t hangText="BGRA:">
				standard Blue, Green, Red, 
				Alpha color space.
			</t>
			<t hangText="YCbCr-4:4:4:">
				standard YCbCr color space, 
				no subsampling.
			</t>
			<t hangText="YCbCr-4:2:2:">
				standard YCbCr color space, 
				Cb and Cr are subsampled 
				horizontally by 1/2.
			</t>
		
			<t hangText="YCbCr-4:2:0:">
				standard YCbCr color space, 
				Cb and Cr are subsampled 
				horizontally and vertically 
				by 1/2.
			</t>
		
			<t hangText="YCbCr-4:1:1:">
				standard YCbCr color space, 
				Cb and Cr are subsampled 
				vertically by 1/4
			</t>
		  
			<t hangText="GRAYSCALE:">
				basically a single component 
				image of just multilevels of 
				grey.  
			</t>
			<t hangText="EXTENSION VALUE:">
				Additional color samplings 
				can be registered with and 
				current listing of 
				registered color samplings 
				at: Color Sampling 
				Registration Authority.  
				Please refer to RTP Format
				for Uncompressed Video.
				<xref target='RFC4175' />
			</t>
			</list>
		</list>
		</list>
		  </list>
		
		  <t> 
		Optional parameters: 
		  </t>
		  <list>
		  <list style="hanging">
			  <t hangText="interlace:"> 
			interlace scanning. If payload is in 
			interlace format, the acceptable 
			value is "1", otherwise, the value 
			should be "0". Each complete image 
			forms vertically half the display. 
			tp value MUST properly specify the 
			field the image represents odd(tp=1), 
			or even(tp=2). If this 
			option is not present, the payload 
			MUST be in progressive format and tp 
			MUST be set to 0.
			  </t>
			  <t hangText="width:"> 
			A parameter describing the maximum 
			width of the video stream. 
			This parameter MUST appear when 
			height is present.  Acceptable 
			values: - an integer value between 
			0 - 4,294,967,295.
			  </t>
			  <t hangText="height:"> 
			A parameter describing the maximum 
			height of the video stream. 
			This parameter MUST appear when 
			width is present.  Acceptable 
			values: - an integer value between 
			0 - 4,294,967,295.
			  </t>
		  </list>
		  </list>
		
		<t>
		The receiver MUST ignore any unspecified parameters 
		outside of this list and in 
		<xref target="JP2RTP"/> .
		</t>
	-->

	
		<t>
		Additional optional parameters:
		</t>

	
		<list>
		<list style="hanging">
	
		<t hangText="mhc">: Main Header Compensation.  This option is
			used when a sender and/or receiver is utilizing the Main Header
			Compensation technique as specified in this document. Acceptable
			values when using the Main Header Compensation technique is "1";
			otherwise, it should be "0".
		</t>
	
		<t>
			This is a list of options to be included when the sender or
			receiver is utilizing the priority table option as specified in
			this document.
		</t>
	
		<t hangText="pt:"> Priority Table.  This option is followed by a
			comma-separated list of pre-defined priority table definitions to
			be used by sender or receiver.
		</t>
	
		<t>
			The option appearing front most in the option line is the most
			important and the next are of decreasing importance.
		</t>
	
		<list>
			<t> 
			Acceptable values: 
			</t>
		
			<list>
			<t hangText="progression:"> this table follows the progression
				ordering of the codestream.
			</t>
		
			<t hangText="layer:"> this table follows the layer ordering of
				the codestream.
			</t>
		
			<t hangText="resolution:"> this table follows the resolution
				ordering of the codestream.
			</t>
		
			<t hangText="component:"> this table follows the component
				ordering of the codestream.
			</t>
		
			<t hangText="default:"> this table follows the ordering of the
				codestream.
			</t>
		
			</list>
		</list>
		</list>
		</list>

<!--
		<t>
		Encoding considerations: 
		</t>
		<list>
		<t>
			This media type is framed and binary, see 
			Section 4.8 in <xref target="RFC4288" /> 
		</t>
		</list>
		
		<t>
		Security considerations: 
		<list>
			<t>
			see security 
			considerations section 
			<xref target="security"/> 
			of this document.
			</t>
			<t>
			</t>
		</list>
		</t>
		
		<t>
		Interoperability considerations:
		</t>
		<list>
		<t>
			JPEG 2000 video stream is a sequence of 
			JPEG 2000 still images. An implementation 
			in compliant with 
			<xref target="JPEG2000Pt_1"/> can decode 
			and attempt to display the encoded JPEG 
			2000 video stream.
		</t> 
		</list>

		
		<t>
		Published specification: ISO/IEC 15444-1 | ITU-T 
		Rec. T.800
		</t>
		<t>
		Applications which use this media type:
		</t>
		<list>
	
		<t>
			video streaming and communication
		</t>
		</list>
		<t>
		Person and email address to contact for further 
		information: 
		</t>
		<list>
		<t>
			Eisaburo Itakura, Satoshi Futemma,
			Andrew Leung
			<vspace/>
			Email: {itakura|satosi-f} @ sm . sony . co . jp,
			andrew @ ualberta . net
		</t>
		</list>

		
		<t>
		Intended usage: Restriction
		</t>
		<list>
 		<t>
			Restrictions on Usage:
		</t>
		<list>
			<t>
			This media type depends on 
			RTP framing, and hence is 
			only defined for the transfer 
			via RTP 
			<xref target="RFC3550" />. 
			Transport within other 
			framing protocols is not 
			defined at the time.
			</t>
		</list>
		  </list> 
	
		<t>
		Author/Change Controller:
		</t>
		<list>
		<t>
			Author:
		</t>
		<list>
			<t>
			Eisaburo Itakura, Satoshi Futemma, 
			Andrew Leung<vspace/>
			Email: {itakura|satosi-f} @
			sm . sony . co . jp, andrew @ ualberta . net
			</t>
		</list>
		<t>
			Change controller:
		</t>
		<list>
			<t> 
			IETF Audio/Video Transport Working 
			Group delegated from the IESG 
			</t>
		</list>
		</list>
-->

	</section> <!-- MIME Registration -->

<!--	</section>--><!-- IANA Consideration -->


	<section anchor="SDP_parameters" title="SDP Parameters">

	<section anchor="SDP_mapping" title="Mapping of the Optional Parameters to SDP">

		<t> The new optional parameters mhc and pt, if presented, MUST be
		included in the "a=fmtp" line of SDP.  These parameters are
		expressed as a media type string, in the form of a semicolon-separated list of parameter=value pairs.  </t>

<!--
		<t>
		In addition to SDP Parameters section in 
		<xref target="JP2RTP" />:
		</t>
		<t>
		The media type video/jpeg2000 string is mapped 
		to fields in the Session Description Protocol (SDP) 
		<xref target="RFC4566"/> as follows: 
		</t> 
		<list style='symbols'>
		<t>
			The media name in the "m=" line of SDP MUST 
			be video.
		</t>
		<t>
			The encoding name in the "a=rtpmap" line of 
			SDP MUST be jpeg2000 (the MIME subtype).
		</t>
		<t>
		The clock rate in the "a=rtpmap" line is set 
		according to the "rate" parameter. 
		Senders that wish to use a non-90kHz rate SHOULD also 
		offer the same stream using a 90kHz timestamp rate 
		with a different RTP payload type
		allowing graceful fallback to 90kHz for compatibility.
		</t>
		<t>
		The REQUIRED parameter, "sampling", MUST be
		included in the "a=fmtp" line of SDP.
		</t>
		<t>
		The OPTIONAL parameters, if presented, 
		MUST be included in the "a=fmtp" line of SDP.
		</t>
		</list>
		<t>
		These parameters are expressed as a media type 
		string, in the form of a semicolon separated list 
		of parameter=value pairs.
		</t>
		<t>
		Therefore, an example of media representation in 
		SDP is as follows:
		</t>
		<list>
		<t>
			m=video 49170/2 RTP/AVP 98<vspace/>
			a=rtpmap:98 jpeg2000/90000<vspace/>
			a=fmtp:98 mhc=1;pt=default;
			sampling=YCbCr-4:2:0; width=128; height=128<vspace/>
		</t>
		</list>

		<t>
		An example for using non-90kHz timestamp is as follows: 
		</t>
		<list>
		<t>
			m=video 49170/2 RTP/AVP 98 99<vspace/>
			a=rtpmap:98 jpeg2000/27000000<vspace/>
			a=rtpmap:99 jpeg2000/90000<vspace/>
			a=fmtp:98 mhc=1;pt=default;
			sampling=YCbCr-4:2:0;
			width=128; height=128<vspace/>
			a=fmtp:99 mhc=1;pt=default;
			sampling=YCbCr-4:2:0; width=128; height=128<vspace/>
		</t>
		</list>
-->


	</section> <!-- SDP Mappings -->
	
	<section anchor="offer_answer" title="Usage with the SDP Offer/Answer Model">
	<t>
		In addition to the SDP Offer/Answer section in RFC 5371 <xref
		target="JP2RTP" />: </t>
	<t>
		When offering JPEG 2000 over RTP using SDP in an Offer/Answer
		model <xref target="RFC3264"/>, the following rules and
		limitations apply:
	</t>
	<list style='symbols'>
		<t>
		All parameters MUST have an acceptable value for that parameter.
		</t>

		<t>
		All parameters MUST correspond to the parameters of the payload.
		</t>

		<t>
		If the optional parameter "mhc" is used, it MUST appear in the
		offer with value "1", and if accepted, it SHOULD appear in the
		answer.
		</t>

		<t>
		If the optional parameter "pt" is used, it MUST appear in the
		offer containing a complete comma-separated list indicating which
		priority table definitions the sender supports. If accepted, it
		SHOULD appear in the answer containing a single priority table
		definition selected from the offer.
		</t>

		<t>
		If the optional parameter "mhc" is used, it MUST appear in the
		offer with value "1", and if accepted, it MUST appear in the
		answer.

		If the optional parameter "pt" is used, it MUST appear in the
		offer containing a complete comma-separated list indicating which
		priority table definitions the sender supports. If accepted, it
		MUST appear in the answer containing a single priority table
		definition selected from the offer.
		</t>

	<!--
		<t>
		The parameters "mhc" or "pt" 
		MUST appear in the offer and answer. 
		If the parameter "mhc" or 
		"pt" is not in the answer, 
		senders should not process the header according 
		to this document. 
		</t>
	-->

	<!--
		<t>
		For the "pt" option:
		<list>
			<t>
			Senders should send a complete list 
			indicating which option are 
			available to the receiver.
			The receiver should answer with 
			their preference from the offer 
			list.
			</t>
		</list>
		</t>
	-->

		<t>
		In a multicast environment:
		<list>
			<t>
			Senders should send out one option for a priority table definition
			for everyone in the group.
			</t>

			<t>
			Even if a single client in the group does not support the
			extensions outlined in this document, senders MAY use these
			mechanisms.  A receiver that doesn't support the mechanisms
			would safely ignore the values.in mh_id and priority field.

		<!--
			If a single client in the group 
			does not support the extensions 
			outlined in this document, 
			senders MAY use additional techniques
			outlined in this document.
		-->
			</t>

		</list>

	<!--
		This is highly recommended for multicast streams 
		where not all receivers are of the same type.
	-->
		</t>
	</list>
	
	<section anchor="examples" title="Examples">
		<t> 
		Offer/Answer example exchanges are provided.
		</t>
		<section anchor="example_1" title="Example 1">

		<t>
			Alice offers Main Header Compensation functionality, YCbCr 422
			color space, interlace image with 720-pixel width and 480-pixel
			height, and several priority table options (default, progression,
			layer, resolution, component) as below:
		</t>
	
		<list>
			<t>
			
			v=0 <vspace/>
			o=alice 2890844526 2890844526 IN 
			IP4 host.example<vspace/>
			s= <vspace/>
			c=IN IP4 host.example<vspace/>
			t=0 0<vspace/>
			m=video 49170 RTP/AVP 98<vspace/>
			a=rtpmap:98 jpeg2000/90000<vspace/>
			a=fmtp:98 mhc=1;
			sampling=YCbCr-4:2:2; interlace=1;
			pt=default,progression,layer,resolution,
			component; width=720;height=480
			</t>
	
		</list>

		<t>
			Bob accepts Main Header Compensation 
			functionality, YCbCr-4:2:2 color space,
			interlace image, default mapping table and 
			replies:
		</t> 
		
		<list>
			<t>
			v=0<vspace/>
			o=bob 2890844730 2890844731 IN IP4 
			host.example<vspace/>
			s= <vspace/>
			c=IN IP4 host.example<vspace/>
			t=0 0<vspace/>
			m=video 49920 RTP/AVP 98<vspace/>
			a=rtpmap:98 jpeg2000/90000<vspace/>
			a=fmtp:98 mhc=1;
			sampling=YCbCr-4:2:2;interlace=1;
			pt=default;width=720;height=480</t>
		</list>
		</section> <!-- Example 1 -->
		
		<section 
		anchor="example_2" 
		title="Example 2">

		
		<t>
			Alice offers Main Header Compensation, 
			YCbCr 420 color space, progressive image 
			with 320-pixel width and 240-pixel height, 
			and layer priority table options as below: 
		</t>

		<list>
	
			<t>
			v=0 <vspace/>
			o=alice 2890844526 2890844526 IN 
			IP4 host.example<vspace/>
			s= <vspace/>
			c=IN IP4 host.example<vspace/>
			t=0 0<vspace/>
			m=video 49170 RTP/AVP 98<vspace/>
			a=rtpmap:98 jpeg2000/90000<vspace/>
			a=fmtp:98 mhc=1;
			sampling=YCbCr-4:2:0;
			pt=layer;width=320;height=240
			</t>
		</list>

		
		<t>
			Bob does not accept Main Header 
			Compensation functionality but accepts 
			YCbCr-4:2:0 color space, layer-based 
			priority mapping and replies:
		</t>
		<list>
			<t>
			v=0<vspace/>
			o=bob 2890844730 2890844731 IN IP4 
			host.example<vspace/>
			s= <vspace/>
			c=IN IP4 host.example<vspace/>
			t=0 0<vspace/>
			m=video 49920 RTP/AVP 98<vspace/>
			a=rtpmap:98 jpeg2000/90000<vspace/>
			a=fmtp:98 mhc=0; sampling=YCbCr-4:2:0;
			pt=layer;width=320;height=240
			</t>
		</list>
		</section> <!-- Example 2 -->


		<section 
		anchor="example_3" 
		title="Example 3">

		
		<t>
			Alice offers 27 MHz timestamp, 
			Main Header Compensation, 
			YCbCr 420 color space, progressive image 
			with 320-pixel width and 240-pixel height, 
			and layer priority table options as below: 
		</t>

		<list>
	
			<t>
			v=0 <vspace/>
			o=alice 2890844526 2890844526 IN 
			IP4 host.example<vspace/>
			s= <vspace/>
			c=IN IP4 host.example<vspace/>
			t=0 0<vspace/>
			m=video 49170 RTP/AVP 98 99<vspace/>
			a=rtpmap:98 jpeg2000/27000000<vspace/>
			a=rtpmap:99 jpeg2000/90000<vspace/>
			a=fmtp:98 mhc=1;
			sampling=YCbCr-4:2:0;
			pt=layer;width=320;height=240<vspace/>
			a=fmtp:99 mhc=1;
			sampling=YCbCr-4:2:0;
			pt=layer;width=320;height=240<vspace/>
			</t>
		</list>

		
		<t>
			Bob can accept payload type with 27 MHz timestamp,
			and does not accept Main Header 
			Compensation functionality but accepts 
			YCbCr-4:2:0 color space, layer-based 
			priority mapping and replies:
		</t>
		<list>
			<t>
			v=0<vspace/>
			o=bob 2890844730 2890844731 IN IP4 
			host.example<vspace/>
			s= <vspace/>
			c=IN IP4 host.example<vspace/>
			t=0 0<vspace/>
			m=video 49920 RTP/AVP 98<vspace/>
			a=rtpmap:98 jpeg2000/27000000<vspace/>
			a=fmtp:98 mhc=0;
			sampling=YCbCr-4:2:0;
			pt=layer;width=320;height=240<vspace/>
			</t>
		</list>
		</section> <!-- Example 3 -->

	</section> <!-- Examples -->
	</section> <!-- Usage with the SDP Offer/Answer Model -->
	</section><!--- SDP parameters --->

	<section anchor="iana" title="IANA Considerations">

	<t>
	This document extends the associated media type "video/jpeg2000" from 5371
	<xref target='JP2RTP' />. Additional parameters are 
	specified in <xref target="mime" /> of this document.
	</t>

    </section>

	<section 
	anchor="security" 
	title="Security Considerations">
	<t>
		Please refer to Section 6 of RFC 5371 
		<xref target="JP2RTP" /> for Security 
		Considerations regarding this RTP format.
		The security issues regarding enhanced mechanisms 
		presented in this document are discussed in 
		that section. 
	</t>
	<t>
		The mh_id field can identify a maximum of 7 different main
		headers. If severe packet loss (either random or
		intentionally introduced by an attacker) causes 6
		successive updates to the main header to be lost,
		the decoder will attempt decompression using an
		incorrect main header. 
		Even if the incorrect main header is passed, the standard
		JPEG 2000 decoder could detect inconsistency of the codestream
		and process it properly. It is recommended to clear the saved
		mh_id and the saved main header if the decoder detects 
		such an inconsistency.
<!--
		Care should be taken to
		prevent implementation bugs with potential
		security consequences."
-->
	</t>

<!--
	<t>
		Once mh_id values are reused, a receiver
		    attempts decompression with wrong main
		    header. If the recipient stores only the most
		    recent main header, this would happen only if
		    there was sufficient packet loss to cause the
		    next 6 headers to be missed. But if the main
		    header changes oftern enough, an attacker might
		    intentionally introduce this packet loss.
	</t>
	<t>
		Also, the same number of initial value is easy for an impostor 
		to fake the value. A receiver has possibilities to use the wrong 
		main header if a main header is lost on the turn of mh_id value and 
		mh_id is faked. If a sender always use the same initial value, 
		an attacker might intentionally fake the value. 
	</t>
-->
	</section> <!-- security -->

	<section 
	anchor="congestion" 
	title="Congestion Control">
	<t>
		Please refer to Section 7 of RFC 5371 
		<xref target="JP2RTP" /> for Congestion Control
		regarding this RTP format.
	</t>
	</section> <!-- congestion control-->


	</middle>


	<back>

	<references title='Normative References'>

<reference anchor="JP2RTP">

<front>
<title>RTP Payload Format for JPEG 2000 Video Streams</title>

<author initials="S" surname="Futemma" fullname="Satoshi Futemma">
<organization/>
</author>
<date month="September" year="2008"/>

<abstract>

<t>
This memo describes an RTP payload format for the ISO/IEC International Standard 15444-1 | ITU-T Rec. T.800, otherwise better known as: JPEG 2000.  JPEG 2000 features are considered in the design of this payload format.  JPEG 2000 is a truly scalable compression technology allowing applications to encode once and decode many different ways.  JPEG 2000 video stream is formed by extending from a single image to a series of JPEG 2000 images.
</t>
</abstract>
</front>
<seriesInfo name="RFC" value="5371"/>
<format type="TXT" target="http://www.ietf.org/internet-drafts/draft-ietf-avt-rtp-jpeg2000-20.txt"/>
</reference>
<!--
	<seriesInfo name="RFC" value="5371" />
-->

	

<reference anchor="RFC2119">

<front>

<title abbrev="RFC Key Words">
Key words for use in RFCs to Indicate Requirement Levels
</title>

<author initials="S." surname="Bradner" fullname="Scott Bradner">
<organization>Harvard University</organization>

<address>

<postal>
<street>1350 Mass. Ave.</street>
<street>Cambridge</street>
<street>MA 02138</street>
</postal>
<phone>- +1 617 495 3864</phone>
<email>sob@harvard.edu</email>
</address>
</author>
<date year="1997" month="March"/>
<area>General</area>
<keyword>keyword</keyword>

<abstract>

<t>

   In many standards track documents several words are used to signify
   the requirements in the specification.  These words are often
   capitalized.  This document defines these words as they should be
   interpreted in IETF documents.  Authors who follow these guidelines
   should incorporate this phrase near the beginning of their document:


<list>

<t>

      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
      RFC 2119.
</t>
</list>
</t>

<t>

   Note that the force of these words is modified by the requirement
   level of the document in which they are used.
</t>
</abstract>
</front>
<seriesInfo name="BCP" value="14"/>
<seriesInfo name="RFC" value="2119"/>
<format type="TXT" octets="4723" target="ftp://ftp.isi.edu/in-notes/rfc2119.txt"/>
<format type="HTML" octets="17491" target="http://xml.resource.org/public/rfc/html/rfc2119.html"/>
<format type="XML" octets="5777" target="http://xml.resource.org/public/rfc/xml/rfc2119.xml"/>
</reference>

	<reference anchor='JPEG2000Pt_1'>
	<front>
	<title abbrev="JPEG 2000 Part 1">
		Information Technology - JPEG 2000 Image Coding System - 
		Part 1: Core Coding System
	</title>

	<author initial="" surname="" fullname="">
	<organization>
	ISO/IEC JTC1/SC29, ISO/IEC 15444-1 | ITU-T Rec. T.800 
	</organization>
	</author>

	<date month="December" year="2000" />

	</front>
	</reference>

<!--
	<reference anchor='RFC3550'>
	<front>
	<title abbrev="RFC3550">
	RTP: A Transport Protocol for Real Time Applications
	</title>

	<author initial='H.' surname='Schulzrinne' />
	<author initial='S.' surname='Casner'/>
	<author initial='R.' surname='Frederick'/>
	<author initial='V.' surname='Jacobson'/>

	<date month="July" year="2003" />

	</front>
	<seriesInfo name="RFC" value="3550" />
	<seriesInfo name="STD" value="64" />
	</reference>


	<reference anchor='RFC4566'>
	<front>
	<title abbrev="RFC4566">
	SDP: Session Description Protocol
	</title>

	<author initial="M." surname="Handley" />
	<author initial="V." surname="Jacobson" />

	<date month="July" year="2006" />

	</front>
	<seriesInfo name="RFC" value="4566" />
	</reference>
-->

<reference anchor="RFC3264">

<front>

<title>
An Offer/Answer Model with Session Description Protocol (SDP)
</title>

<author initials="J." surname="Rosenberg" fullname="J. Rosenberg">
<organization/>
</author>

<author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne">
<organization/>
</author>
<date year="2002" month="June"/>

<abstract>

<t>
This document defines a mechanism by which two entities can make use of the Session Description Protocol (SDP) to arrive at a common view of a multimedia session between them.  In the model, one participant offers the other a description of the desired session from their perspective, and the other participant answers with the desired session from their perspective.  This offer/answer model is most useful in unicast sessions where information from both participants is needed for the complete view of the session.  The offer/answer model is used by protocols like the Session Initiation Protocol (SIP). [STANDARDS TRACK]
</t>
</abstract>
</front>
<seriesInfo name="RFC" value="3264"/>
<format type="TXT" octets="60854" target="ftp://ftp.isi.edu/in-notes/rfc3264.txt"/>
</reference>

<!--
	<reference anchor='RFC4288'>
	<front>
	<title abbrev="RFC4288">
		Media Type Specifications and Registration Procedures
	</title>

	<author initial="N" surname="Freed" />
	<author initial="J" surname="Klensin"/>

	<date month="December" year="2005" />

	</front>
	<seriesInfo name="RFC" value="4288" />

	</reference>

	<reference anchor='RFC4855'>
	<front>
	<title abbrev="RFC4855">
		Media Type Registration of RTP Payload Formats
	</title>

	<author initial="S" surname="Casner" />

	<date month="February" year="2007" />

	</front>
	<seriesInfo name="RFC" value="4855" />

	</reference>
-->	
	
	</references> <!-- normative references -->

<!--
	<references title='Informative References'>

	<reference anchor='RFC4175'>
	<front>
	<title abbrev="RFC4175">
		RTP Payload Format for Uncompressed Video
	</title>

	<author initial="C" surname="Perkins"> </author>
	<author initial="L" surname="Gharai"> </author>

	<date month="September" year="2005" />

	</front>
	<seriesInfo name="RFC" value="4175" />

	</reference>

	</references>
-->


<!-- ----------------------------------------------------------------------  -->
<!--                               Appendix                                  -->
<!-- ----------------------------------------------------------------------- -->
	<section anchor="sample_headers" title="Sample Headers in Detail">

<t>
	The following figures are sample RTP headers demonstrating
	values that should appear in the RTP header. The packet
	priority is Packet-Number-Based Priority.

<!-- 
	This section has various sample headers in various configurations for
	reference.
-->
</t>

<t>
	For reference, the payload header is as follows:
</t>

	<figure anchor="JPEG2000_header_sample"
	title="JPEG200 Payload Header">
          <artwork> <![CDATA[
 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                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          	]]>
          </artwork>
	</figure>


<section anchor="Sample1" title="Sample 1: Progressive Image with Single Tile, 3500 Bytes (i.e., thumbnail)">

For the first packet with the main header, this is what it will look like.
Note, for this example MTU will be taken as: 1500 bytes (Ethernet)

          <figure anchor="Sample1_1"
		title="Header Sample 1-1 (First Packet)">

          <preamble>
          	First Packet:
          	This packet will have the whole main header
          	210 bytes
          </preamble>
          <artwork> <![CDATA[
 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 | 3 |  1  |1|       0       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                       0                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FF4F FF51 002F 0000                   ....                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
</artwork>
	  </figure>

	  <figure anchor="Sample1_2"
		title="Header Sample 1-2 (Second Packet)">
<preamble>
	Second Packet:
	This packet will have a tile header and the first tile part LLband
	1500 bytes
</preamble>
<artwork> <![CDATA[
 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|       1       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                      210                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FF90 000A 0000 0000 2DB3  0001 FF93   ....                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
</artwork>
	</figure>

	<figure anchor="Sample1_3"
		title="Header Sample 1-3 (Third Packet)">
<preamble>
	Third Packet:
	This packet will have the next part in the tile, no tile header
	1500 bytes
</preamble>
<artwork> <![CDATA[
 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|       2       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                     1710                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|E841 4526 4556 9850 C2EA              ....                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
</artwork>
	</figure>


	<figure anchor="Sample1_4"
		title="Header Sample 1-4 (Fourth Packet)">
<preamble>
	Fourth Packet:
	Last packet for the image
	290 bytes
</preamble>
<artwork> <![CDATA[
 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|       3       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                     3210                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|A55D 8B73 3B25 25C7 B9EB ....                         2FBE B153|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
</artwork>
	</figure>
</section><!-- Sample 1 -->


<section anchor="Sample2" title="Sample 2: Image with 4 Tiles">

	<figure anchor="Sample2_1"
		title="Header Sample 2-1 (First Packet)">
<preamble>
	First Packet:
	This packet will have the whole main header
	210 bytes
</preamble>
<artwork> <![CDATA[
 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 | 3 |  1  |1|       0       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                       0                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FF4F FF51 002F 0000                   ....                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
</artwork>
	</figure>

	<figure anchor="Sample2_2"
		title="Header Sample 2-2 (Second Packet)">
<preamble>
	Second Packet:
	This packet will have a first tile part (tile 0)
	1400 bytes
</preamble>
<artwork> <![CDATA[
 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|       1       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                      210                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FF90 000A 0000 0000 0578  0001 FF93   ....                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
</artwork>
	</figure>

	<figure anchor="Sample2_3"
		title="Header Sample 2-3 (Third Packet)">
<preamble>
	Third Packet:
	This packet will have a second tile part (tile 1)
	1423 bytes
</preamble>
<artwork> <![CDATA[
 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|       1       |               1               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                     1610                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FF90 000A 0001 0000 058F 0001 FF93    ....                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
</artwork>
	</figure>

	<figure anchor="Sample2_4"
		title="Header Sample 2-4 (4th Packet)">
<preamble>
	Fourth Packet:
	This packet will have a third tile part (tile 2)
	1355 bytes
</preamble>
<artwork> <![CDATA[
 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|       1       |               2               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                     3033                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FF90 000A 0002 0000 054B 0001 FF93    ....                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
</artwork>
	</figure>

	<figure anchor="Sample2_5"
		title="Header Sample 2-5 (5th Packet)">
<preamble>
	Fifth Packet:
	This packet will have a fourth tile part (tile 3)
	1290 bytes
</preamble>
<artwork> <![CDATA[
 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|       1       |               3               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                     4388                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FF90 000A 0003 0000 050A 0001 FF93    ....                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
</artwork>
	</figure>
</section><!-- Sample 2 -->

<section anchor="Sample3" title="Sample 3: Packing Multiple Tiles in Single Payload, Fragmented Header.  No Header Compensation, Progressive Image">

	<figure anchor="Sample3_1"
		title="Header Sample 3-1 (First Packet)">
<preamble>
	First Packet:
	This packet will have the first part of the main header
	110 bytes
</preamble>
<artwork> <![CDATA[
 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  |1|       0       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                       0                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FF4F FF51 002F 0000 ....                                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
</artwork>
	</figure>

	<figure anchor="Sample3_2"
		title="Header Sample 3-2 (Second Packet)">
<preamble>
	Second Packet:
	This packet has the second part of the main header.
	1400 bytes
</preamble>
<artwork> <![CDATA[
 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 | 2 |  0  |1|       0       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                      110                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FF64 00FF ....                                                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
	</artwork>
	</figure>

	<figure anchor="Sample3_3"
		title="Header Sample 3-3 (Third Packet)">

	<preamble>
	Third Packet:
	This packet has two tiles, tile 0 and tile 1
	1400 bytes
	</preamble>
	<artwork> <![CDATA[
 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|       1       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                     1510                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FF90 000A 0000 0000 02BC 0001 FF93 ...                         |
//                                    .                        //
|FF90 000A 0001 0000 02BC 0001 FF93 ...                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
	</artwork>
	</figure>

	<figure anchor="Sample3_4"
		title="Header Sample 3-4 (4th Packet)">
	<preamble>
	Fourth Packet:
	This packet has one tile, tile 2
	1395 bytes
	</preamble>
	<artwork> <![CDATA[
 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       |               2               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                     2910                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FF90 000A 0002 0000 0573 0001 FF93    ....                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
	</artwork>
	</figure>
</section><!-- Sample 3 -->

<section anchor="Sample4" title="Sample 4: Interlace Image, Single Tile">

<t>
The codestream of each image is ordered in LRCP (Layer, Resolution, Component, 
Position) with 1 layer, 3 resolutions, 3 components and 1 position. 
</t>

	<figure anchor="Sample4_1"
		title="Header Sample 4-1 (First Packet)">
	<preamble>
	First packet:
	This packet will have the whole main header for the odd field
	210 bytes
	</preamble>
	<artwork> <![CDATA[
 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 | 3 |  1  |1|       0       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                       0                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FF4F FF51 002F 0000 ....                                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
	</artwork>
	</figure>


	<figure anchor="Sample4_2"
		title="Header Sample 4-2 (Second Packet)">
	<preamble>
	Second packet:
	This packet will have the first part of the odd field's tile
	where three jp2-packets are included
	1400 bytes
	</preamble>
	<artwork> <![CDATA[
 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|       1       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                      210                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FF90 000A 0000 0000 0578  0001 FF93  ....                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
	</artwork>
	</figure>


	<figure anchor="Sample4_3"
		title="Header Sample 4-3 (Third Packet)">
	<preamble>
	Third packet:
	This packet will have the second part of the odd field's tile
	1400 bytes
	</preamble>
	<artwork> <![CDATA[
 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|       4       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                     1610                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|7F04 E708 27D9 D11D 22CB ...                                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
	</artwork>
	</figure>


	<figure anchor="Sample4_4"
		title="Header Sample 4 (4th Packet)">
	<preamble>
	Fourth packet:
	This packet will have the third part of the odd field's tile
	1300 bytes
	</preamble>
	<artwork> <![CDATA[
 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|       7       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                     3010                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|98BD EC9B 2826 DC62 D4AB ...                                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
	</artwork>
	</figure>


	<figure anchor="Sample4_5"
		title="Header Sample 4 (5th Packet)">
	<preamble>
	Fifth packet:
	This packet will have the whole main header for the even field
<!--[rfced] No bytes? -->
	</preamble>
	<artwork> <![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 2 | 3 |  1  |1|       0       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                       0                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FF4F FF51 002F 0000 ....                                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
	</artwork>
	</figure>


	<figure anchor="Sample4_6"
		title="Header Sample 4 (6th Packet)">
	<preamble>
	Sixth packet:
	This packet will have the first part of the odd field's tile
	1400 bytes
	</preamble>
	<artwork> <![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 2 | 0 |  1  |1|       1       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                     1610                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|FF90 000A 0000 0000 0578  0001 FF93  ....                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
	</artwork>
	</figure>


	<figure anchor="Sample4_7"
		title="Header Sample 4 (7th Packet)">
	<preamble>
	Seventh packet:
	This packet will have the second part of the odd field's tile
	1400 bytes
	</preamble>

	<artwork> <![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 2 | 0 |  1  |1|       4       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                     3010                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|626C 42F0 166B 6BD0 F8E1 ...                                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
	</artwork>
	</figure>


	<figure anchor="Sample4_8"
		title="Header Sample 4 (8th Packet)">
	<preamble>
	Eighth packet:
	This packet will have the third part of the odd field's tile
	1300 bytes
	</preamble>

	<artwork> <![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 2 | 0 |  1  |1|       7       |               0               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       0       |                     4410                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|8114 41D5 18AB 4A1B ...                                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	]]>
	</artwork>
	</figure>
</section><!-- Sample 4 -->


	</section> <!-- Sample Headers in Detail -->

	</back>


</rfc>
