<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" submissionType="IETF" category="std" ipr="trust200902" consensus="true" docName="draft-ietf-avtcore-rtp-j2k-scl-08" number="9828" updates="" obsoletes="" sortRefs="true" symRefs="true" xml:lang="en" prepTime="2025-08-29T16:28:26" indexInclude="true" scripts="Common,Latin" tocDepth="3" tocInclude="true">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-avtcore-rtp-j2k-scl-08" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9828" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="JPEG 2000 Streaming with Sub-Codestream Latency">RTP Payload Format for JPEG 2000 Streaming with Sub-Codestream Latency</title>
    <seriesInfo name="RFC" value="9828" stream="IETF"/>
    <author initials="P.-A." surname="Lemieux" fullname="Pierre-Anthony Lemieux" role="editor">
      <organization showOnFrontPage="true">Sandflow Consulting LLC</organization>
      <address>
        <postal>
          <city>San Mateo</city>
          <region>CA</region>
          <country>United States of America</country>
        </postal>
        <email>pal@sandflow.com</email>
      </address>
    </author>
    <author initials="D." surname="Taubman" fullname="David Scott Taubman">
      <organization abbrev="University of New South Wales" showOnFrontPage="true">University of New South Wales</organization>
      <address>
        <postal>
          <city>Sydney</city>
          <country>Australia</country>
        </postal>
        <email>d.taubman@unsw.edu.au</email>
      </address>
    </author>
    <date month="08" year="2025"/>
    <area>WIT</area>
    <workgroup>avtcore</workgroup>
    <keyword>JPEG 2000</keyword>
    <keyword>J2K</keyword>
    <keyword>HTJ2K</keyword>
    <keyword>low latency</keyword>
    <keyword>scalable</keyword>
    <keyword>streaming</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document defines the RTP payload format for the streaming of a video signal encoded
      as a sequence of JPEG 2000 codestreams. The format allows sub-codestream
      latency, such that the first RTP packet for a given image can be emitted
      before the entire image is available to or encoded by the sender.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9828" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2025 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-media-format-description">Media Format Description</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-video-signal-description">Video Signal Description</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-payload-format">Payload Format</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-general">General</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-rtp-fixed-header-usage">RTP Fixed Header Usage</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.3">
                <t indent="0" pn="section-toc.1-1.5.2.3.1"><xref derivedContent="5.3" format="counter" sectionFormat="of" target="section-5.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-main-packet-payload-header">Main Packet Payload Header</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.4">
                <t indent="0" pn="section-toc.1-1.5.2.4.1"><xref derivedContent="5.4" format="counter" sectionFormat="of" target="section-5.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-body-packet-payload-header">Body Packet Payload Header</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-jpeg-2000-codestream">JPEG 2000 Codestream</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sender">Sender</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-main-packet">Main Packet</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-rtp-packet-filtering">RTP Packet Filtering</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.3">
                <t indent="0" pn="section-toc.1-1.7.2.3.1"><xref derivedContent="7.3" format="counter" sectionFormat="of" target="section-7.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-resync-point">Resync Point</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.4">
                <t indent="0" pn="section-toc.1-1.7.2.4.1"><xref derivedContent="7.4" format="counter" sectionFormat="of" target="section-7.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ptstamp-field">PTSTAMP Field</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.5">
                <t indent="0" pn="section-toc.1-1.7.2.5.1"><xref derivedContent="7.5" format="counter" sectionFormat="of" target="section-7.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-res-field">RES Field</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.6">
                <t indent="0" pn="section-toc.1-1.7.2.6.1"><xref derivedContent="7.6" format="counter" sectionFormat="of" target="section-7.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-extra-information">Extra Information</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.7">
                <t indent="0" pn="section-toc.1-1.7.2.7.1"><xref derivedContent="7.7" format="counter" sectionFormat="of" target="section-7.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-unassigned-values">Unassigned Values</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.8">
                <t indent="0" pn="section-toc.1-1.7.2.8.1"><xref derivedContent="7.8" format="counter" sectionFormat="of" target="section-7.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-extension-values">Extension Values</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.9">
                <t indent="0" pn="section-toc.1-1.7.2.9.1"><xref derivedContent="7.9" format="counter" sectionFormat="of" target="section-7.9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-code-block-caching">Code-Block Caching</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-receiver">Receiver</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.8.2">
              <li pn="section-toc.1-1.8.2.1">
                <t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ptstamp">PTSTAMP</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.2">
                <t indent="0" pn="section-toc.1-1.8.2.2.1"><xref derivedContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-qual">QUAL</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.3">
                <t indent="0" pn="section-toc.1-1.8.2.3.1"><xref derivedContent="8.3" format="counter" sectionFormat="of" target="section-8.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-res">RES</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.4">
                <t indent="0" pn="section-toc.1-1.8.2.4.1"><xref derivedContent="8.4" format="counter" sectionFormat="of" target="section-8.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-extra-information-2">Extra Information</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.5">
                <t indent="0" pn="section-toc.1-1.8.2.5.1"><xref derivedContent="8.5" format="counter" sectionFormat="of" target="section-8.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-unassigned-values-2">Unassigned Values</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.6">
                <t indent="0" pn="section-toc.1-1.8.2.6.1"><xref derivedContent="8.6" format="counter" sectionFormat="of" target="section-8.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-extension-values-2">Extension Values</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.7">
                <t indent="0" pn="section-toc.1-1.8.2.7.1"><xref derivedContent="8.7" format="counter" sectionFormat="of" target="section-8.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-code-block-caching-2">Code-Block Caching</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-media-type">Media Type</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2">
              <li pn="section-toc.1-1.9.2.1">
                <t indent="0" pn="section-toc.1-1.9.2.1.1"><xref derivedContent="9.1" format="counter" sectionFormat="of" target="section-9.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-general-2">General</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.2">
                <t indent="0" pn="section-toc.1-1.9.2.2.1"><xref derivedContent="9.2" format="counter" sectionFormat="of" target="section-9.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-definition">Definition</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-mapping-to-the-session-desc">Mapping to the Session Description Protocol (SDP)</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-congestion-control">Congestion Control</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="12" format="counter" sectionFormat="of" target="section-12"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="13" format="counter" sectionFormat="of" target="section-13"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.14">
            <t indent="0" pn="section-toc.1-1.14.1"><xref derivedContent="14" format="counter" sectionFormat="of" target="section-14"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.14.2">
              <li pn="section-toc.1-1.14.2.1">
                <t indent="0" pn="section-toc.1-1.14.2.1.1"><xref derivedContent="14.1" format="counter" sectionFormat="of" target="section-14.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.14.2.2">
                <t indent="0" pn="section-toc.1-1.14.2.2.1"><xref derivedContent="14.2" format="counter" sectionFormat="of" target="section-14.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.15">
            <t indent="0" pn="section-toc.1-1.15.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-pixel-formats">Pixel Formats</xref></t>
          </li>
          <li pn="section-toc.1-1.16">
            <t indent="0" pn="section-toc.1-1.16.1"><xref derivedContent="Appendix B" format="default" sectionFormat="of" target="section-appendix.b"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-signal-formats">Signal Formats</xref></t>
          </li>
          <li pn="section-toc.1-1.17">
            <t indent="0" pn="section-toc.1-1.17.1"><xref derivedContent="Appendix C" format="default" sectionFormat="of" target="section-appendix.c"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sample-formats">Sample Formats</xref></t>
          </li>
          <li pn="section-toc.1-1.18">
            <t indent="0" pn="section-toc.1-1.18.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.d"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">The Real-time Transport Protocol (RTP), which is specified in <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/>, provides end-to-end network transport functions for
      transmitting real-time data but does not define the characteristics of
      the data itself (the payload), which varies across applications and is
      defined in companion RTP payload format documents.</t>
      <t indent="0" pn="section-1-2">This RTP payload format specifies the streaming of a video signal
      encoded as a sequence of JPEG 2000 codestreams (see <xref target="sec-media-description" format="default" sectionFormat="of" derivedContent="Section 3"/> for a primer on the structure of JPEG
      2000 codestreams). JPEG 2000 is a flexible image codec that supports
      resolution and quality scalability, lossy-to-lossless coding,
      non-iterative optimal rate control, and high dynamic range, multi-channel,
      and subsampled images. These features have made it a mainstay in
      high-performance applications, including medical, geospatial, archival,
      cinema, studio post-production, and TV production.</t>
      <t indent="0" pn="section-1-3">In addition to supporting a variety of frame-scanning techniques
      (progressive, interlaced, and progressive segmented frame) and image
      characteristics, the payload format supports real-time image transmission
      (live streaming), where image content is encoded, transmitted, and decoded
      continuously as it is being produced, with minimal latency. Target
      applications include real-time TV production over IP <xref target="OV2110-0" format="default" sectionFormat="of" derivedContent="OV2110-0"/>, remote presence, surveillance, etc.
      Specifically:</t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-1-4">
        <li pn="section-1-4.1">The payload format allows sub-codestream latency such that the first
        RTP packet of a given codestream can be emitted before the entire
        codestream is available. Specifically, the payload format does not rely
        on the JPEG 2000 PLM (Packet length, main header) and PLT (Packet length, tile-part header) marker segments for recovery after RTP
        packet loss since these markers can only be written after the codestream
        is complete and are thus incompatible with sub-codestream latency.
        Instead, the payload format includes payload header fields
        (<tt>ORDH</tt>, <tt>ORDB</tt>, <tt>POS</tt>, and <tt>PID</tt>) that
        indicate whether the RTP packet contains a resynchronization (resync)
        point and how a recipient can restart codestream processing from that
        resync point. This contrasts with <xref target="RFC5371" format="default" sectionFormat="of" derivedContent="RFC5371"/>, which also
        specifies an RTP payload format for JPEG 2000 but relies on codestream
        structures that cannot be emitted until the entire codestream is
        available.</li>
        <li pn="section-1-4.2">As in <xref target="RFC4175" format="default" sectionFormat="of" derivedContent="RFC4175"/>, the payload format defines an
        extended sequence number, which extends the standard (16-bit) sequence
        number of the RTP Fixed Header by storing additional (high-order) bits
        in the payload header (<tt>ESEQ</tt> field). This enables the payload
        format to accommodate high data rates without ambiguity, since the
        standard sequence number will roll over very quickly for high data rates
        likely to be encountered in this application. For example, the standard
        sequence number will roll over in 0.5 seconds with a 1 Gbps video stream
        with RTP packet sizes of at least 1000 octets, which can be a problem
        for detecting loss and out-of-order RTP packets, particularly in
        instances where the round-trip time is greater than the rollover period
        (0.5 seconds in this example).</li>
        <li pn="section-1-4.3">The payload header optionally contains a temporal offset
        (<tt>PTSTAMP</tt>) relative to the first RTP packet with the same value
        of RTP <tt>timestamp</tt> field (<xref target="def-timestamp" format="default" sectionFormat="of" derivedContent="Section 5.2"/>). The
        higher resolution of <tt>PTSTAMP</tt> compared to the <tt>timestamp</tt>
        allows receivers to recover the sender's clock more rapidly.</li>
      </ul>
      <t indent="0" pn="section-1-5">In addition to support for sub-codestream latency and high-precision
      sender clock recovery, the payload format improves on <xref target="RFC5371" format="default" sectionFormat="of" derivedContent="RFC5371"/> by supporting:</t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-1-6">
        <li pn="section-1-6.1">code-block caching for screen content (see <xref target="sec-send-block-caching" format="default" sectionFormat="of" derivedContent="Section 7.9"/>);</li>
        <li pn="section-1-6.2">progressive segmented frame (PsF) video support (see <xref target="sec-signal-fmts" format="default" sectionFormat="of" derivedContent="Appendix B"/>); and</li>
        <li pn="section-1-6.3">explicit colorspace signaling (see <xref target="def-S" format="default" sectionFormat="of" derivedContent="Section 5.3"/>).</li>
      </ul>
      <t indent="0" pn="section-1-7">Finally, the payload format also makes use of the unique scalability
      features of JPEG 2000 to allow an intermediate system or recipient to
      discard resolution levels and/or quality layers merely by inspecting RTP
      packet headers (<tt>QUAL</tt> and <tt>RES</tt> fields), without having to
      parse the underlying codestream (see <xref target="sec-filtering" format="default" sectionFormat="of" derivedContent="Section 7.2"/>).</t>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-requirements-language">Requirements Language</name>
      <t indent="0" pn="section-2-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
      </t>
      <t indent="0" pn="section-2-2">In case of conflict between the contents of a figure and the prose, the
      prose takes precedence.</t>
    </section>
    <section anchor="sec-media-description" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-media-format-description">Media Format Description</name>
      <t indent="0" pn="section-3-1">The following summarizes the structure of the JPEG 2000 codestream,
      which is specified in detail in <xref target="JPEG2000-1" format="default" sectionFormat="of" derivedContent="JPEG2000-1"/>.</t>
      <t indent="0" pn="section-3-2">NOTE: As described in <xref target="sec-codestream" format="default" sectionFormat="of" derivedContent="Section 6"/>, a JPEG 2000
      codestream allows capabilities defined in any part of the JPEG 2000 family
      of standards, including those specified in <xref target="JPEG2000-2" format="default" sectionFormat="of" derivedContent="JPEG2000-2"/> and
      <xref target="JPEG2000-15" format="default" sectionFormat="of" derivedContent="JPEG2000-15"/>.</t>
      <t indent="0" pn="section-3-3">JPEG 2000 represents an image as one or more components, each uniformly
      sampled on a common rectangular reference grid. For example, an image can
      consist of the customary Y (luma), C<sub>b</sub> (blue-difference chroma),
      and C<sub>r</sub> (red-difference chroma) components, with the
      C<sub>b</sub> and C<sub>r</sub> being subsampled by a factor of two
      compared to the Y component.</t>
      <t indent="0" pn="section-3-4">An image can be further divided into contiguous rectangular tiles that
      are each independently coded and decoded.</t>
      <t indent="0" pn="section-3-5">JPEG 2000 codes each image as a standalone codestream. A codestream
      consists of (i) marker segments, which contain coding parameters and
      metadata, and (ii) coded data.</t>
      <t indent="0" pn="section-3-6">For convenience to the reader, the following lists both the abbreviated
      and full names of marker segments that are mentioned in this specification
      (several other marker segments are defined by JPEG 2000 and can be present
      in a codestream):</t>
      <dl spacing="normal" newline="false" indent="7" pn="section-3-7">
        <dt pn="section-3-7.1">CAP:</dt>
        <dd pn="section-3-7.2">Extended Capabilities</dd>
        <dt pn="section-3-7.3">COC:</dt>
        <dd pn="section-3-7.4">Coding style component</dd>
        <dt pn="section-3-7.5">COD:</dt>
        <dd pn="section-3-7.6">Coding style default</dd>
        <dt pn="section-3-7.7">COM:</dt>
        <dd pn="section-3-7.8">Comment</dd>
        <dt pn="section-3-7.9">EOC:</dt>
        <dd pn="section-3-7.10">End of codestream</dd>
        <dt pn="section-3-7.11">PLM:</dt>
        <dd pn="section-3-7.12">Packet length, main header</dd>
        <dt pn="section-3-7.13">PLT:</dt>
        <dd pn="section-3-7.14">Packet length, tile-part header</dd>
        <dt pn="section-3-7.15">SOC:</dt>
        <dd pn="section-3-7.16">Start of codestream</dd>
        <dt pn="section-3-7.17">SOD:</dt>
        <dd pn="section-3-7.18">Start of data</dd>
        <dt pn="section-3-7.19">SOT:</dt>
        <dd pn="section-3-7.20">Start of tile-part</dd>
      </dl>
      <t indent="0" pn="section-3-8">The codestream starts with an SOC marker segment and ends with an EOC
      marker segment. The main header of the codestream consists of marker
      segments between the SOC and first SOT marker segment and contains
      information that applies to the codestream in its entirety. It is
      generally impossible to decode a codestream without its main header.</t>
      <t indent="0" pn="section-3-9">The rest of the codestream consists of additional marker segments
      (tile-part headers) interleaved with coded image data.</t>
      <t indent="0" pn="section-3-10">At the heart of JPEG 2000 coding is the wavelet transform, which
      decomposes the image into successive resolution levels, with each level
      related to the next one by a spatial factor of two, i.e., each
      successive resolution level has half the horizontal and half the vertical
      resolution of the previous one.</t>
      <t indent="0" pn="section-3-11">The coded image data ultimately consists of code-blocks, each
      containing coded samples belonging to a rectangular (spatial) region
      within one resolution level of one component. Code-blocks are further
      collected into precincts, which, accordingly, represent code-blocks
      belonging to a spatial region within one resolution level of one
      component.</t>
      <t indent="0" pn="section-3-12">The coded image data can be arranged into several progression orders,
      which dictates which aspect of the image appears first in the codestream
      (in terms of byte offset). The progression orders are parameterized
      according to:</t>
      <dl spacing="normal" newline="true" indent="3" pn="section-3-13">
        <dt pn="section-3-13.1">Position (P)</dt>
        <dd pn="section-3-13.2">The first lines of the image come before the last lines of the
        image.</dd>
        <dt pn="section-3-13.3">Component (C)</dt>
        <dd pn="section-3-13.4">The first component of the image comes before the last component of
        the image.</dd>
        <dt pn="section-3-13.5">Resolution Level (R)</dt>
        <dd pn="section-3-13.6">The information needed to reconstruct the lower spatial resolutions
        of the image come before the information needed to reconstruct the
        higher spatial resolutions of the image.</dd>
        <dt pn="section-3-13.7">Quality Layer (L)</dt>
        <dd pn="section-3-13.8">The information needed to reconstruct the most significant bits of
        each sample come before the information needed to reconstruct the
        least significant bit of each sample.</dd>
      </dl>
      <t indent="0" pn="section-3-14">For example, in the PRCL progression order, the information needed to
      reconstruct the first lines of the image come before that needed to
      reconstruct the last lines of the image, and within a collection of lines,
      the information needed to reconstruct the lower spatial resolutions of the
      image come before the information needed to reconstruct the higher spatial
      resolutions. This progression order is particularly useful for subframe
      latency operations.</t>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-video-signal-description">Video Signal Description</name>
      <t indent="0" pn="section-4-1">This RTP payload format supports three distinct techniques for scanning video frames:
      </t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-4-2">
        <li pn="section-4-2.1">Progressive frame</li>
        <li pn="section-4-2.2">Interlaced frame, where each frame consists of two fields. Field 1
        occurs earlier in time than Field 2. The height in lines of each field
        is half the height of the image.</li>
        <li pn="section-4-2.3">Progressive segmented frame (PsF), where each frame consists of two
        segments. Segment 1 contains the odd lines (1, 3, 5, 7, ...) of a frame,
        and Segment 2 contains the even lines (2, 4, 6, 8, ...) of the same
        frame, where lines from the top of the frame to the bottom of the frame
        are numbered sequentially starting at 1.</li>
      </ul>
      <t indent="0" pn="section-4-3">All frames are scanned left to right, top to bottom.</t>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-payload-format">Payload Format</name>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-5.1">
        <name slugifiedName="name-general">General</name>
        <figure anchor="fig-payload-header" align="left" suppress-title="false" pn="figure-1">
          <name slugifiedName="name-packetization-of-a-sequence">Packetization of a Sequence of JPEG 2000 Codestreams (Not to
          Scale)</name>
          <artwork align="left" pn="section-5.1-1.1">
&lt;--------------- Codestream (image) --------------&gt;
|                                                 |
&lt;----- Extended Header -----&gt;                     |
|                           |                     |
+-----+-//-+-----+-//-+-----+--------//-----+-----+-----+---------
| SOC | .. | SOT | .. | SOD | ............. | EOC |  P  | SOC  ...
+-----+-//-+-----+-//-+-----+--------//-----+-----+-----+---------
|          |                                            |
&lt;----------&gt; Main header                                |
|                                                       |
+------------------------------+------+--//-+-----------+---------
|             Main             | Body | ... |    Body   | Main ...
+------------------------------+------+--//-+-----------+---------
|                              |
&lt;--------- RTP Packet ---------&gt;
</artwork>
        </figure>
        <t indent="0" pn="section-5.1-2">In <xref target="fig-payload-header" format="default" sectionFormat="of" derivedContent="Figure 1"/>, P denotes (optional) padding
	bytes. See <xref target="sec-media-description" format="default" sectionFormat="of" derivedContent="Section 3"/> for expansions of
	SOC, SOD, SOT, and EOC.</t>
        <t indent="0" pn="section-5.1-3">Each RTP packet, as specified in <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/>, is either
        a Main Packet or a Body Packet.</t>
        <t indent="0" pn="section-5.1-4">A Main Packet consists of the following ordered sequence of
        structures concatenated without gaps:</t>
        <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-5.1-5">
          <li pn="section-5.1-5.1">the RTP Fixed Header;</li>
          <li pn="section-5.1-5.2">a Main Packet Payload Header, as specified in <xref target="sec-main-packet-header" format="default" sectionFormat="of" derivedContent="Section 5.3"/>; and</li>
          <li pn="section-5.1-5.3">the payload, which consists of a JPEG 2000 codestream
          fragment.</li>
        </ul>
        <t indent="0" pn="section-5.1-6">A Body Packet consists of the following ordered sequence of
          structures concatenated without gaps:</t>
        <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-5.1-7">
          <li pn="section-5.1-7.1">the RTP Fixed Header;</li>
          <li pn="section-5.1-7.2">a Body Packet Payload Header, as specified in <xref target="sec-body-packet-header" format="default" sectionFormat="of" derivedContent="Section 5.4"/>; and</li>
          <li pn="section-5.1-7.3">the payload, which consists of a JPEG 2000 codestream
          fragment.</li>
        </ul>
        <t indent="0" pn="section-5.1-8">When concatenated, the sequence of JPEG 2000 codestream fragments
        emitted by the sender <bcp14>MUST</bcp14> be a sequence of JPEG 2000 codestreams where
        two successive JPEG 2000 codestreams <bcp14>MAY</bcp14> be separated by one or more
        padding bytes (see <xref target="fig-payload-header" format="default" sectionFormat="of" derivedContent="Figure 1"/>).</t>
        <t indent="0" pn="section-5.1-9">The sender <bcp14>MUST</bcp14> set the value of each padding byte to zero.</t>
        <t indent="0" pn="section-5.1-10">The receiver <bcp14>MUST</bcp14> ignore the values of the padding bytes.</t>
        <t indent="0" pn="section-5.1-11">The JPEG 2000 codestreams <bcp14>MUST</bcp14> conform to <xref target="sec-codestream" format="default" sectionFormat="of" derivedContent="Section 6"/>.</t>
        <t indent="0" pn="section-5.1-12">NOTE 1: Padding bytes can be used to achieve constant bit rate
        transmission.</t>
        <t indent="0" pn="section-5.1-13">A JPEG 2000 codestream fragment, and thus an RTP packet, does not
        necessarily contain complete JPEG 2000 packets, as defined in <xref target="JPEG2000-1" format="default" sectionFormat="of" derivedContent="JPEG2000-1"/>.</t>
        <t indent="0" pn="section-5.1-14">A JPEG 2000 codestream Extended Header consists of the bytes between,
        and including, the SOC marker and the first SOD marker.</t>
        <t indent="0" pn="section-5.1-15">NOTE 2: The concept of the JPEG 2000 codestream Extended Header is
        specific to this document and is distinct from the JPEG 2000 codestream
        main header, which is defined in <xref target="JPEG2000-1" format="default" sectionFormat="of" derivedContent="JPEG2000-1"/>. The
        codestream main header consists of the bytes between, and including, the
        SOC marker and the first SOT marker. The codestream main header is a
        subset of the codestream Extended Header (see <xref target="fig-payload-header" format="default" sectionFormat="of" derivedContent="Figure 1"/>).</t>
        <t indent="0" pn="section-5.1-16">The payload of a Body Packet <bcp14>MUST NOT</bcp14> contain any bytes of the JPEG
        2000 codestream Extended Header.</t>
        <t indent="0" pn="section-5.1-17">The payload of a Main Packet <bcp14>MUST</bcp14> contain at least one byte of the
        JPEG 2000 codestream Extended Header and <bcp14>MAY</bcp14> contain bytes other than
        those of the JPEG 2000 codestream Extended Header.</t>
        <t indent="0" pn="section-5.1-18">A payload <bcp14>MUST NOT</bcp14> contain bytes from more than one JPEG 2000
        codestream.</t>
      </section>
      <section anchor="rtp-fixed-header-usage" numbered="true" removeInRFC="false" toc="include" pn="section-5.2">
        <name slugifiedName="name-rtp-fixed-header-usage">RTP Fixed Header Usage</name>
        <t indent="0" pn="section-5.2-1">The following RTP header fields have a specific meaning in the
        context of this payload format:</t>
        <dl newline="true" indent="3" spacing="normal" pn="section-5.2-2">
          <dt pn="section-5.2-2.1"><tt>marker</tt></dt>
          <dd pn="section-5.2-2.2">
            <dl indent="3" newline="false" spacing="normal" pn="section-5.2-2.2.1">
              <dt pn="section-5.2-2.2.1.1">1</dt>
              <dd pn="section-5.2-2.2.1.2">The payload contains an EOC marker.</dd>
              <dt pn="section-5.2-2.2.1.3">0</dt>
              <dd pn="section-5.2-2.2.1.4">Otherwise</dd>
            </dl>
          </dd>
          <dt anchor="def-timestamp" pn="section-5.2-2.3"><tt>timestamp</tt></dt>
          <dd pn="section-5.2-2.4">
            <t indent="0" pn="section-5.2-2.4.1">The <tt>timestamp</tt> is the presentation time of the image to
            which the payload belongs.</t>
            <t indent="0" pn="section-5.2-2.4.2">The <tt>timestamp</tt> clock rate is 90 kHz.</t>
            <t indent="0" pn="section-5.2-2.4.3">The <tt>timestamp</tt> of successive progressive frames <bcp14>MUST</bcp14>
            advance at regular increments based on the instantaneous video frame
            rate.</t>
            <t indent="0" pn="section-5.2-2.4.4">The <tt>timestamp</tt> of Field 1 of successive interlaced frames
            <bcp14>MUST</bcp14> advance at regular increments based on the instantaneous video
            frame rate, and the <tt>Timestamp</tt> of Field 2 <bcp14>MUST</bcp14> be offset
            from the <tt>timestamp</tt> of Field 1 by one half of the
            instantaneous frame period.</t>
            <t indent="0" pn="section-5.2-2.4.5">The <tt>timestamp</tt> of both segments of a progressive
            segmented frame <bcp14>MUST</bcp14> be equal.</t>
            <t indent="0" pn="section-5.2-2.4.6">The <tt>timestamp</tt> of all RTP packets of a given image <bcp14>MUST</bcp14> be
            equal.</t>
          </dd>
          <dt anchor="def-seq" pn="section-5.2-2.5"><tt>sequence number</tt></dt>
          <dd pn="section-5.2-2.6">
            <t indent="0" pn="section-5.2-2.6.1">The low-order bits of the extended sequence number.</t>
            <t indent="0" pn="section-5.2-2.6.2">The high-order bits of the extended sequence number are contained
          in the <tt>ESEQ</tt> field, which is specified in <xref target="sec-main-packet-header" format="default" sectionFormat="of" derivedContent="Section 5.3"/>.</t>
            <t indent="0" pn="section-5.2-2.6.3">The extended sequence number is calculated as follows:</t>
            <artwork align="left" pn="section-5.2-2.6.4">
&lt;extended sequence number&gt; = &lt;ESEQ field&gt; * 65536 + &lt;sequence
number field of the RTP Fixed Header&gt;
</artwork>
          </dd>
        </dl>
      </section>
      <section anchor="sec-main-packet-header" numbered="true" removeInRFC="false" toc="include" pn="section-5.3">
        <name slugifiedName="name-main-packet-payload-header">Main Packet Payload Header</name>
        <t indent="0" pn="section-5.3-1"><xref target="fig-main-payload-header" format="default" sectionFormat="of" derivedContent="Figure 2"/> specifies the structure of the
        payload header. Fields are interpreted as unsigned binary integers in
        network order.</t>
        <figure anchor="fig-main-payload-header" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-structure-of-the-main-packe">Structure of the Main Packet Payload Header</name>
          <artwork align="left" pn="section-5.3-2.1">
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|MH | TP  |ORDH |P|XTRAC|        PTSTAMP        |     ESEQ      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R|S|C| RSVD  |*|    PRIMS      |    TRANS      |      MAT      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              XTRAB                            |
|                               ...                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

* RANGE
</artwork>
        </figure>
        <dl newline="false" indent="3" spacing="normal" pn="section-5.3-3">
          <dt anchor="def-MH" pn="section-5.3-3.1">MH (Codestream Main Header Presence):</dt>
          <dd pn="section-5.3-3.2">
            <t indent="0" pn="section-5.3-3.2.1">2 bits</t>
            <dl newline="false" indent="3" spacing="normal" pn="section-5.3-3.2.2">
              <dt pn="section-5.3-3.2.2.1">0</dt>
              <dd pn="section-5.3-3.2.2.2">The RTP packet is a Body Packet.</dd>
              <dt pn="section-5.3-3.2.2.3">1</dt>
              <dd pn="section-5.3-3.2.2.4">The RTP packet is a Main Packet, and the codestream has more
              than one Main Packet. The next RTP packet is a Main Packet.</dd>
              <dt pn="section-5.3-3.2.2.5">2</dt>
              <dd pn="section-5.3-3.2.2.6">The RTP packet is a Main Packet, and the codestream has more
              than one Main Packet. The next RTP packet is a Body Packet.</dd>
              <dt pn="section-5.3-3.2.2.7">3</dt>
              <dd pn="section-5.3-3.2.2.8">The RTP packet is a Main Packet, and the codestream has exactly
              one Main Packet.</dd>
            </dl>
          </dd>
          <dt anchor="def-TP" pn="section-5.3-3.3">TP (Image Type):</dt>
          <dd pn="section-5.3-3.4">
            <t indent="0" pn="section-5.3-3.4.1">3 bits</t>
            <t indent="0" pn="section-5.3-3.4.2">Indicates the scanning structure of the image to which the
            payload belongs.</t>
            <dl newline="false" indent="3" spacing="normal" pn="section-5.3-3.4.3">
              <dt pn="section-5.3-3.4.3.1">0</dt>
              <dd pn="section-5.3-3.4.3.2">Progressive frame.</dd>
              <dt pn="section-5.3-3.4.3.3">1</dt>
              <dd pn="section-5.3-3.4.3.4">Field 1 of an interlaced frame, where the first line of the
              field is the first line of the frame.</dd>
              <dt pn="section-5.3-3.4.3.5">2</dt>
              <dd pn="section-5.3-3.4.3.6">Field 2 of an interlaced frame, where the first line of the
              field is the second line of the frame.</dd>
              <dt pn="section-5.3-3.4.3.7">3</dt>
              <dd pn="section-5.3-3.4.3.8">Field 1 of an interlaced frame, where the first line of the
              field is the second line of the frame.</dd>
              <dt pn="section-5.3-3.4.3.9">4</dt>
              <dd pn="section-5.3-3.4.3.10">Field 2 of an interlaced frame, where the first line of the
              field is the first line of the frame.</dd>
              <dt pn="section-5.3-3.4.3.11">5</dt>
              <dd pn="section-5.3-3.4.3.12">Segment 1 of a progressive segmented frame, where the
              first line of the image is the first line of the frame.</dd>
              <dt pn="section-5.3-3.4.3.13">6</dt>
              <dd pn="section-5.3-3.4.3.14">Segment 2 of a progressive segmented frame, where the
              first line of the image is the second line of the frame.</dd>
              <dt pn="section-5.3-3.4.3.15">7</dt>
              <dd pn="section-5.3-3.4.3.16">Extension value. See Sections <xref target="sec-receiver-ext" format="counter" sectionFormat="of" derivedContent="8.6"/> and
              <xref target="sec-sender-ext" format="counter" sectionFormat="of" derivedContent="7.8"/>.</dd>
            </dl>
          </dd>
          <dt anchor="def-ORDH" pn="section-5.3-3.5">ORDH (Progression Order Flag, Main Packet):</dt>
          <dd pn="section-5.3-3.6">
            <t indent="0" pn="section-5.3-3.6.1">3 bits</t>
            <t indent="0" pn="section-5.3-3.6.2">Specifies the progression order used by the codestream and
              whether resync points are signaled. See <xref target="sec-media-description" format="default" sectionFormat="of" derivedContent="Section 3"/> for details about progression orders.</t>
            <dl newline="false" indent="3" spacing="normal" pn="section-5.3-3.6.3">
              <dt pn="section-5.3-3.6.3.1">0</dt>
              <dd pn="section-5.3-3.6.3.2">Resync points are not necessarily signaled. The progression
                order can vary over the codestream.</dd>
              <dt pn="section-5.3-3.6.3.3">1</dt>
              <dd pn="section-5.3-3.6.3.4">The progression order is LRCP for the entire codestream. The
                first resync point is specified in every Body Packet that
                contains one or more resync points.</dd>
              <dt pn="section-5.3-3.6.3.5">2</dt>
              <dd pn="section-5.3-3.6.3.6">The progression order is RLCP for the entire codestream. The
                first resync point is specified in every Body Packet that
                contains one or more resync points.</dd>
              <dt pn="section-5.3-3.6.3.7">3</dt>
              <dd pn="section-5.3-3.6.3.8">The progression order is RPCL for the entire codestream. The
                first resync point is specified in every Body Packet that
                contains one or more resync points.</dd>
              <dt pn="section-5.3-3.6.3.9">4</dt>
              <dd pn="section-5.3-3.6.3.10">The progression order is PCRL for the entire codestream. The
                first resync point is specified in every Body Packet that
                contains one or more resync points.</dd>
              <dt pn="section-5.3-3.6.3.11">5</dt>
              <dd pn="section-5.3-3.6.3.12">The progression order is CPRL for the entire codestream. The
                first resync point is specified in every Body Packet that
                contains one or more resync points.</dd>
              <dt pn="section-5.3-3.6.3.13">6</dt>
              <dd pn="section-5.3-3.6.3.14">The progression order is PRCL for the entire codestream. The
                first resync point is specified in every Body Packet that
                contains one or more resync points.</dd>
              <dt pn="section-5.3-3.6.3.15">7</dt>
              <dd pn="section-5.3-3.6.3.16">The progression order can vary over the codestream. The
                first resync point is specified in every Body Packet that
                contains one or more resync points.</dd>
            </dl>
            <t indent="0" pn="section-5.3-3.6.4"><tt>ORDH</tt> <bcp14>MUST</bcp14> be 0 if the codestream consists of more than
              one tile.</t>
            <t indent="0" pn="section-5.3-3.6.5">NOTE 1: Only <tt>ORDH</tt> = 4 and <tt>ORDH</tt> = 6 allow
              sub-codestream latency streaming.</t>
            <t indent="0" pn="section-5.3-3.6.6">NOTE 2: Progression order PRCL is defined in <xref target="JPEG2000-2" format="default" sectionFormat="of" derivedContent="JPEG2000-2"/>. The other progression orders are specified
              in <xref target="JPEG2000-1" format="default" sectionFormat="of" derivedContent="JPEG2000-1"/>.</t>
          </dd>
          <dt anchor="def-P" pn="section-5.3-3.7">P (Precision Timestamp Presence):</dt>
          <dd pn="section-5.3-3.8">
            <t indent="0" pn="section-5.3-3.8.1">1 bit</t>
            <dl newline="false" indent="3" spacing="normal" pn="section-5.3-3.8.2">
              <dt pn="section-5.3-3.8.2.1">0</dt>
              <dd pn="section-5.3-3.8.2.2">
                <tt>PTSTAMP</tt> is not used.</dd>
              <dt pn="section-5.3-3.8.2.3">1</dt>
              <dd pn="section-5.3-3.8.2.4">
                <tt>PTSTAMP</tt> is used.</dd>
            </dl>
          </dd>
          <dt anchor="def-XTRAC" pn="section-5.3-3.9">XTRAC (Extension Payload Length):</dt>
          <dd pn="section-5.3-3.10">
            <t indent="0" pn="section-5.3-3.10.1">3 bits</t>
            <t indent="0" pn="section-5.3-3.10.2">Length, in multiples of 4 bytes, of the <tt>XTRAB</tt> field.</t>
          </dd>
          <dt anchor="def-PTSTAMP" pn="section-5.3-3.11">PTSTAMP (Precision Timestamp):</dt>
          <dd pn="section-5.3-3.12">
            <t indent="0" pn="section-5.3-3.12.1">12 bits</t>
            <t indent="0" pn="section-5.3-3.12.2">PTSTAMP = (<tt>timestamp</tt> + <tt>TOFF</tt>) mod 4096, if
            <tt>P</tt> = 1 in the Main Packet of this codestream.</t>
            <t indent="0" pn="section-5.3-3.12.3"><tt>TOFF</tt> is the transmission time of this RTP packet, in the
            timebase of the <tt>timestamp</tt> clock and relative to the first
            RTP packet with the same <tt>timestamp</tt> value.</t>
            <t indent="0" pn="section-5.3-3.12.4"><tt>TOFF</tt> = 0 in the first RTP packet with the same
            <tt>timestamp</tt> value.</t>
            <t indent="0" pn="section-5.3-3.12.5"><tt>PTSTAMP</tt> = 0, if <tt>P</tt> = 0 in the Main Packet of this
            codestream.</t>
            <t indent="0" pn="section-5.3-3.12.6">NOTE 3: As described in Sections <xref target="sec-sender-ptstamp" format="counter" sectionFormat="of" derivedContent="7.4"/> and
            <xref target="sec-recv-ptstamp" format="counter" sectionFormat="of" derivedContent="8.1"/>, <tt>PTSTAMP</tt> is intended to
            improve clock recovery at the receiver and only applies when the
            transmission time of two consecutive RTP packets with identical
            <tt>timestamp</tt> fields differ by no more than 45 ms
           (which is 4095/90,000). <xref target="RFC5450" format="default" sectionFormat="of" derivedContent="RFC5450"/> addresses the general
            case when an RTP packet is transmitted at a time other than its
            nominal transmission time.</t>
          </dd>
          <dt anchor="def-ESEQ" pn="section-5.3-3.13">ESEQ (Extended Sequence Number High-Order Bits):</dt>
          <dd pn="section-5.3-3.14">
            <t indent="0" pn="section-5.3-3.14.1">8 bits</t>
            <t indent="0" pn="section-5.3-3.14.2">The high-order bits of the extended sequence number.</t>
            <t indent="0" pn="section-5.3-3.14.3">NOTE 4: The low-order bits of the extended sequence number are
            stored in the <tt>sequence number</tt> field of the RTP Fixed
            Header.</t>
            <t indent="0" pn="section-5.3-3.14.4"><xref target="rtp-fixed-header-usage" format="default" sectionFormat="of" derivedContent="Section 5.2"/> specifies the formula to compute the
            extended sequence number.</t>
          </dd>
          <dt anchor="def-R" pn="section-5.3-3.15">R (Codestream Main Header Reuse):</dt>
          <dd pn="section-5.3-3.16">
            <t indent="0" pn="section-5.3-3.16.1">1 bit</t>
            <t indent="0" pn="section-5.3-3.16.2">Determines whether Main Packet and codestream main header
            information can be reused across codestreams.</t>
            <dl newline="false" indent="3" spacing="normal" pn="section-5.3-3.16.3">
              <dt pn="section-5.3-3.16.3.1">1</dt>
              <dd pn="section-5.3-3.16.3.2">
                <t indent="0" pn="section-5.3-3.16.3.2.1">All Main Packets in this stream, as identified by the value
                of the <tt>SSRC</tt> field in the RTP Fixed Header:</t>
                <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-5.3-3.16.3.2.2">
                  <li pn="section-5.3-3.16.3.2.2.1">
                    <bcp14>MUST</bcp14> have identical Main Packet Payload Headers, with the
                  exception of their <tt>TP</tt>, <tt>MH</tt>, <tt>ESEQ</tt>, and
                  <tt>PTSTAMP</tt> fields;</li>
                  <li pn="section-5.3-3.16.3.2.2.2">
                    <bcp14>MUST</bcp14> contain the same codestream main header information
                  (with the exception of the SOT and COM marker segments and any
                  pointer marker segments); and</li>
                  <li pn="section-5.3-3.16.3.2.2.3">
                    <bcp14>MUST NOT</bcp14> contain bytes other than Extended Header
                  bytes.</li>
                </ul>
              </dd>
              <dt pn="section-5.3-3.16.3.3">0</dt>
              <dd pn="section-5.3-3.16.3.4">Otherwise</dd>
            </dl>
          </dd>
          <dt anchor="def-S" pn="section-5.3-3.17">S (Parameterized Colorspace Presence):</dt>
          <dd pn="section-5.3-3.18">
            <t indent="0" pn="section-5.3-3.18.1">1 bit</t>
            <dl newline="false" indent="3" spacing="normal" pn="section-5.3-3.18.2">
              <dt pn="section-5.3-3.18.2.1">0</dt>
              <dd pn="section-5.3-3.18.2.2">
                <t indent="0" pn="section-5.3-3.18.2.2.1">Component colorimetry is not specified; it is left to the
              session or the application.</t>
                <t indent="0" pn="section-5.3-3.18.2.2.2"><tt>PRIMS</tt>, <tt>TRANS</tt>, <tt>MAT</tt>, and
              <tt>RANGE</tt>
                  <bcp14>MUST</bcp14> be zero.</t>
              </dd>
              <dt pn="section-5.3-3.18.2.3">1</dt>
              <dd pn="section-5.3-3.18.2.4">
                <t indent="0" pn="section-5.3-3.18.2.4.1">Component colorimetry is specified by the <tt>PRIMS</tt>,
                <tt>TRANS</tt>, <tt>MAT</tt>, and <tt>RANGE</tt> fields.</t>
                <t indent="0" pn="section-5.3-3.18.2.4.2">The codestream components <bcp14>MUST</bcp14> conform to one of the
                combinations in <xref target="t-color-map" format="default" sectionFormat="of" derivedContent="Table 1"/>. </t>
                <table anchor="t-color-map" align="center" pn="table-1">
                  <name slugifiedName="name-mapping-of-codestream-compo">Mapping of Codestream Components to Color
                  Channels</name>
                  <thead>
                    <tr>
                      <th rowspan="2" align="left" colspan="1">Combination Name</th>
                      <th colspan="4" align="left" rowspan="1">Component Index</th>
                    </tr>
                    <tr>
                      <th align="left" colspan="1" rowspan="1">0</th>
                      <th align="left" colspan="1" rowspan="1">1</th>
                      <th align="left" colspan="1" rowspan="1">2</th>
                      <th align="left" colspan="1" rowspan="1">3</th>
                    </tr>
                  </thead>
                  <tbody>
                    <tr>
                      <th align="left" colspan="1" rowspan="1">Y</th>
                      <td align="left" colspan="1" rowspan="1">Y</td>
                      <td align="left" colspan="1" rowspan="1"/>
                      <td align="left" colspan="1" rowspan="1"/>
                      <td align="left" colspan="1" rowspan="1"/>
                    </tr>
                    <tr>
                      <th align="left" colspan="1" rowspan="1">YA</th>
                      <td align="left" colspan="1" rowspan="1">Y</td>
                      <td align="left" colspan="1" rowspan="1">A</td>
                      <td align="left" colspan="1" rowspan="1"/>
                      <td align="left" colspan="1" rowspan="1"/>
                    </tr>
                    <tr>
                      <th align="left" colspan="1" rowspan="1">RGB</th>
                      <td align="left" colspan="1" rowspan="1">R</td>
                      <td align="left" colspan="1" rowspan="1">G</td>
                      <td align="left" colspan="1" rowspan="1">B</td>
                      <td align="left" colspan="1" rowspan="1"/>
                    </tr>
                    <tr>
                      <th align="left" colspan="1" rowspan="1">RGBA</th>
                      <td align="left" colspan="1" rowspan="1">R</td>
                      <td align="left" colspan="1" rowspan="1">G</td>
                      <td align="left" colspan="1" rowspan="1">B</td>
                      <td align="left" colspan="1" rowspan="1">A</td>
                    </tr>
                    <tr>
                      <th align="left" colspan="1" rowspan="1">YCbCr</th>
                      <td align="left" colspan="1" rowspan="1">Y</td>
                      <td align="left" colspan="1" rowspan="1">C<sub>B</sub></td>
                      <td align="left" colspan="1" rowspan="1">C<sub>R</sub></td>
                      <td align="left" colspan="1" rowspan="1"/>
                    </tr>
                    <tr>
                      <th align="left" colspan="1" rowspan="1">YCbCrA</th>
                      <td align="left" colspan="1" rowspan="1">Y</td>
                      <td align="left" colspan="1" rowspan="1">C<sub>B</sub></td>
                      <td align="left" colspan="1" rowspan="1">C<sub>R</sub></td>
                      <td align="left" colspan="1" rowspan="1">A</td>
                    </tr>
                  </tbody>
                </table>
                <t indent="0" pn="section-5.3-3.18.2.4.4">Channel <tt>A</tt> is an opacity channel. The minimum
		sample value (0) indicates a completely transparent sample,
		and the maximum sample value (as determined by the bit depth
		of the codestream component) indicates a completely opaque
		sample. The opacity channel <bcp14>MUST</bcp14> map to a
		component with unsigned samples.</t>
              </dd>
            </dl>
          </dd>
          <dt anchor="def-C" pn="section-5.3-3.19">C (Code-Block Caching Usage):</dt>
          <dd pn="section-5.3-3.20">
            <t indent="0" pn="section-5.3-3.20.1">1 bit</t>
            <dl newline="false" indent="3" spacing="normal" pn="section-5.3-3.20.2">
              <dt pn="section-5.3-3.20.2.1">0</dt>
              <dd pn="section-5.3-3.20.2.2">Code-block caching is not in use.</dd>
              <dt pn="section-5.3-3.20.2.3">1</dt>
              <dd pn="section-5.3-3.20.2.4">
                <t indent="0" pn="section-5.3-3.20.2.4.1">Code-block caching is in use.</t>
                <t indent="0" pn="section-5.3-3.20.2.4.2"><tt>R</tt> <bcp14>MUST</bcp14> be equal to 1.</t>
              </dd>
            </dl>
          </dd>
          <dt anchor="def-RSVD" pn="section-5.3-3.21">RSVD (Reserved):</dt>
          <dd pn="section-5.3-3.22">
            <t indent="0" pn="section-5.3-3.22.1">4 bits</t>
            <t indent="0" pn="section-5.3-3.22.2">Unassigned value. See Sections <xref target="sec-receiver-unassigned" format="counter" sectionFormat="of" derivedContent="8.5"/> and
          <xref target="sec-sender-unassigned" format="counter" sectionFormat="of" derivedContent="7.7"/>.</t>
          </dd>
          <dt anchor="def-F" pn="section-5.3-3.23">RANGE (Video Full Range Usage):</dt>
          <dd pn="section-5.3-3.24">
            <t indent="0" pn="section-5.3-3.24.1">1 bit</t>
            <t indent="0" pn="section-5.3-3.24.2">Value of the VideoFullRangeFlag specified in <xref target="REC-ITU-T-H273" format="default" sectionFormat="of" derivedContent="REC-ITU-T-H273"/>.</t>
          </dd>
          <dt anchor="def-PRIMS" pn="section-5.3-3.25">PRIMS (Color Primaries):</dt>
          <dd pn="section-5.3-3.26">
            <t indent="0" pn="section-5.3-3.26.1">8 bits</t>
            <t indent="0" pn="section-5.3-3.26.2">One of the ColourPrimaries values specified in <xref target="REC-ITU-T-H273" format="default" sectionFormat="of" derivedContent="REC-ITU-T-H273"/>.</t>
          </dd>
          <dt anchor="def-TRANS" pn="section-5.3-3.27">TRANS (Transfer Characteristics):</dt>
          <dd pn="section-5.3-3.28">
            <t indent="0" pn="section-5.3-3.28.1">8 bits</t>
            <t indent="0" pn="section-5.3-3.28.2">One of the TransferCharacteristics values specified in
          <xref target="REC-ITU-T-H273" format="default" sectionFormat="of" derivedContent="REC-ITU-T-H273"/>.</t>
          </dd>
          <dt anchor="def-MAT" pn="section-5.3-3.29">MAT (Color Matrix Coefficients):</dt>
          <dd pn="section-5.3-3.30">
            <t indent="0" pn="section-5.3-3.30.1">8 bits</t>
            <t indent="0" pn="section-5.3-3.30.2">One of the MatrixCoefficients values specified in <xref target="REC-ITU-T-H273" format="default" sectionFormat="of" derivedContent="REC-ITU-T-H273"/>.</t>
          </dd>
          <dt anchor="def-XTRAB" pn="section-5.3-3.31">XTRAB (Extension Payload):</dt>
          <dd pn="section-5.3-3.32">
            <t indent="0" pn="section-5.3-3.32.1">variable</t>
            <t indent="0" pn="section-5.3-3.32.2">Allows the contents of the Main Packet Payload Header to be
          extended in the future. The size of the field is determined by <xref target="sec-main-packet-header" format="default" sectionFormat="of" derivedContent="Section 5.3"/>. See also Sections <xref target="sec-receiver-xtrab" format="counter" sectionFormat="of" derivedContent="8.4"/> and
          <xref target="sec-sender-xtrab" format="counter" sectionFormat="of" derivedContent="7.6"/>.</t>
          </dd>
        </dl>
      </section>
      <section anchor="sec-body-packet-header" numbered="true" removeInRFC="false" toc="include" pn="section-5.4">
        <name slugifiedName="name-body-packet-payload-header">Body Packet Payload Header</name>
        <t indent="0" pn="section-5.4-1"><xref target="fig-body-payload-header" format="default" sectionFormat="of" derivedContent="Figure 3"/> specifies the structure of
        the Body Packet Payload Header. Fields are interpreted as unsigned
        binary integers in network order.</t>
        <figure anchor="fig-body-payload-header" align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-structure-of-the-body-packe">Structure of the Body Packet Payload Header</name>
          <artwork align="left" pn="section-5.4-2.1">
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|MH | TP  |RES  |*|QUAL |       PTSTAMP         |     ESEQ      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         POS           |                  PID                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

* ORDB
</artwork>
        </figure>
        <dl newline="false" indent="3" spacing="normal" pn="section-5.4-3">
          <dt pn="section-5.4-3.1">MH:</dt>
          <dd pn="section-5.4-3.2">See <xref target="sec-main-packet-header" format="default" sectionFormat="of" derivedContent="Section 5.3"/>.</dd>
          <dt pn="section-5.4-3.3">TP:</dt>
          <dd pn="section-5.4-3.4">See <xref target="sec-main-packet-header" format="default" sectionFormat="of" derivedContent="Section 5.3"/>.</dd>
          <dt anchor="def-RES" pn="section-5.4-3.5">RES (Resolution Levels):</dt>
          <dd pn="section-5.4-3.6">
            <t indent="0" pn="section-5.4-3.6.1">3 bits</t>
            <dl newline="false" indent="3" spacing="normal" pn="section-5.4-3.6.2">
              <dt pn="section-5.4-3.6.2.1">0</dt>
              <dd pn="section-5.4-3.6.2.2">The payload can contribute to all resolution levels.</dd>
              <dt pn="section-5.4-3.6.2.3">Otherwise</dt>
              <dd pn="section-5.4-3.6.2.4">The payload contains at least one byte of one JPEG 2000 packet
              belonging to resolution level (N<sub>L</sub> + RES - 7) but does
              not contain any byte of any JPEG 2000 packet belonging to lower
              resolution levels. N<sub>L</sub> is the number of decomposition
              levels of the codestream.</dd>
            </dl>
          </dd>
          <dt anchor="def-ORDB" pn="section-5.4-3.7">ORDB (Progression Order Flag, Body Packet):</dt>
          <dd pn="section-5.4-3.8">
            <t indent="0" pn="section-5.4-3.8.1">1
          bit</t>
            <dl newline="false" indent="3" spacing="normal" pn="section-5.4-3.8.2">
              <dt pn="section-5.4-3.8.2.1">0</dt>
              <dd pn="section-5.4-3.8.2.2">No resync point is specified for the payload.</dd>
              <dt pn="section-5.4-3.8.2.3">1</dt>
              <dd pn="section-5.4-3.8.2.4">The payload contains a resync point.</dd>
            </dl>
            <t indent="0" pn="section-5.4-3.8.3"><tt>ORDB</tt> <bcp14>MUST</bcp14> be 0 if the codestream consists of more than
              one tile.</t>
          </dd>
          <dt anchor="def-QUAL" pn="section-5.4-3.9">QUAL (Quality Layers):</dt>
          <dd pn="section-5.4-3.10">
            <t indent="0" pn="section-5.4-3.10.1">3 bits</t>
            <dl newline="false" indent="3" spacing="normal" pn="section-5.4-3.10.2">
              <dt pn="section-5.4-3.10.2.1">0</dt>
              <dd pn="section-5.4-3.10.2.2">The payload can contribute to all quality layers.</dd>
              <dt pn="section-5.4-3.10.2.3">Otherwise</dt>
              <dd pn="section-5.4-3.10.2.4">The payload contributes only to quality layer index
              <tt>QUAL</tt> or above.</dd>
            </dl>
          </dd>
          <dt pn="section-5.4-3.11">PTSTAMP:</dt>
          <dd pn="section-5.4-3.12">See <xref target="sec-main-packet-header" format="default" sectionFormat="of" derivedContent="Section 5.3"/>.</dd>
          <dt pn="section-5.4-3.13">ESEQ:</dt>
          <dd pn="section-5.4-3.14">See <xref target="sec-main-packet-header" format="default" sectionFormat="of" derivedContent="Section 5.3"/>.</dd>
          <dt anchor="def-POS" pn="section-5.4-3.15">POS (Resync Point Offset):</dt>
          <dd pn="section-5.4-3.16">
            <t indent="0" pn="section-5.4-3.16.1">12 bits</t>
            <t indent="0" pn="section-5.4-3.16.2">Byte offset from the start of the payload to the first byte of
            the resync point belonging to the precinct identified by PID.</t>
            <t indent="0" pn="section-5.4-3.16.3"><tt>POS</tt> <bcp14>MUST</bcp14> be 0 if <tt>ORDB</tt> = 0.</t>
          </dd>
          <dt anchor="def-PID" pn="section-5.4-3.17">PID (Precinct Identifier):</dt>
          <dd pn="section-5.4-3.18">
            <t indent="0" pn="section-5.4-3.18.1">20 bits</t>
            <t indent="0" pn="section-5.4-3.18.2">Unique identifier of the precinct of the resync point.</t>
            <artwork align="left" pn="section-5.4-3.18.3">PID = c + s * num_components</artwork>
            <t indent="0" pn="section-5.4-3.18.4">where:</t>
            <dl indent="3" newline="false" spacing="normal" pn="section-5.4-3.18.5">
              <dt pn="section-5.4-3.18.5.1">c:</dt>
              <dd pn="section-5.4-3.18.5.2">Index (starting from 0) of the image
              component to which the precinct belongs.</dd>
              <dt pn="section-5.4-3.18.5.3">s:</dt>
              <dd pn="section-5.4-3.18.5.4">Sequence number that identifies the precinct
              within its tile-component.</dd>
              <dt pn="section-5.4-3.18.5.5">num_components:</dt>
              <dd pn="section-5.4-3.18.5.6">Number of components of the
              codestream.</dd>
            </dl>
            <t indent="0" pn="section-5.4-3.18.6">If <tt>PID</tt> is present, the payload <bcp14>MUST NOT</bcp14> contain
            codestream bytes from more than one precinct.</t>
            <t indent="0" pn="section-5.4-3.18.7"><tt>PID</tt> <bcp14>MUST</bcp14> be 0 if <tt>ORDB</tt> = 0.</t>
            <t indent="0" pn="section-5.4-3.18.8">NOTE: <tt>PID</tt> is identical to precinct identifier I
            specified in <xref target="JPEG2000-9" format="default" sectionFormat="of" derivedContent="JPEG2000-9"/>.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="sec-codestream" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-jpeg-2000-codestream">JPEG 2000 Codestream</name>
      <t indent="0" pn="section-6-1"> A JPEG 2000 codestream consists of the bytes between, and including,
        the SOC and EOC markers, as defined in <xref target="JPEG2000-1" format="default" sectionFormat="of" derivedContent="JPEG2000-1"/>.</t>
      <t indent="0" pn="section-6-2">The JPEG 2000 codestream <bcp14>MAY</bcp14> include capabilities beyond those
        specified in <xref target="JPEG2000-1" format="default" sectionFormat="of" derivedContent="JPEG2000-1"/>, including those specified in
        <xref target="JPEG2000-2" format="default" sectionFormat="of" derivedContent="JPEG2000-2"/> and <xref target="JPEG2000-15" format="default" sectionFormat="of" derivedContent="JPEG2000-15"/>.</t>
      <t indent="0" pn="section-6-3">NOTE 1: The <tt>Rsiz</tt> parameter and <tt>CAP</tt> marker segments of
        each JPEG 2000 codestream contain detailed information on the
        capabilities necessary to decode the codestream.</t>
      <t indent="0" pn="section-6-4">NOTE 2: The <tt>caps</tt> media type parameter defined in
        <xref target="sec-media-type-def" format="default" sectionFormat="of" derivedContent="Section 9.2"/> allows applications to signal
        required device capabilities.</t>
      <t indent="0" pn="section-6-5">NOTE 3: The block coder specified in <xref target="JPEG2000-15" format="default" sectionFormat="of" derivedContent="JPEG2000-15"/>
        improves throughput and reduces latency compared to the original
        arithmetic block coder defined in <xref target="JPEG2000-1" format="default" sectionFormat="of" derivedContent="JPEG2000-1"/>.</t>
      <t indent="0" pn="section-6-6">For interlaced or progressive segmented frames, the height specified
        in the JPEG 2000 main header <bcp14>MUST</bcp14> be the height in lines of the field or
        the segment, respectively.</t>
      <t indent="0" pn="section-6-7">If any decomposition level involves only horizontal decomposition,
        then no decomposition level <bcp14>MUST</bcp14> involve only vertical decomposition;
        conversely, if any decomposition level involves only vertical
        decomposition, then no decomposition level <bcp14>MUST</bcp14> involve only horizontal
        decomposition.</t>
    </section>
    <section anchor="sec-sender" numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-sender">Sender</name>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-7.1">
        <name slugifiedName="name-main-packet">Main Packet</name>
        <t indent="0" pn="section-7.1-1">A Main Packet <bcp14>MAY</bcp14> contain zero or more bytes of the JPEG 2000
        codestream Extended Header.</t>
        <t indent="0" pn="section-7.1-2">The sender <bcp14>MUST</bcp14> emit either a single Main Packet with <tt>MH</tt> =
        3, or one or more Main Packets with <tt>MH</tt> = 1 followed by a
        single Main Packet with <tt>MH</tt> = 2.</t>
        <t indent="0" pn="section-7.1-3">The Main Packet Payload Headers fields <bcp14>MUST</bcp14> be identical in all Main
        Packets of a given codestream, with the exception of:</t>
        <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-7.1-4">
          <li pn="section-7.1-4.1">
            <tt>MH</tt>;</li>
          <li pn="section-7.1-4.2">
            <tt>ESEQ</tt>; and</li>
          <li pn="section-7.1-4.3">
            <tt>PTSTAMP</tt>.</li>
        </ul>
      </section>
      <section anchor="sec-filtering" numbered="true" removeInRFC="false" toc="include" pn="section-7.2">
        <name slugifiedName="name-rtp-packet-filtering">RTP Packet Filtering</name>
        <t indent="0" pn="section-7.2-1">An intermediate system <bcp14>MAY</bcp14> strip out RTP packets from a codestream
        that are of no interest to a particular client, e.g., based on a
        resolution or a spatial region of interest.</t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-7.3">
        <name slugifiedName="name-resync-point">Resync Point</name>
        <t indent="0" pn="section-7.3-1">A resync point is the first byte of JPEG 2000 packet header data for
        a precinct and for which PID &lt; 2<sup>24</sup>.</t>
        <t indent="0" pn="section-7.3-2">NOTE 1: Resync points cannot be specified if the codestream consists of
        more than one tile (<tt>ORDB</tt> and <tt>ORDH</tt> are both equal to
        zero).</t>
        <t indent="0" pn="section-7.3-3">NOTE 2: A resync point can be used by a receiver to process a
        codestream even if earlier RTP packets in the codestream have been
        corrupted, lost, or deliberately discarded by an intermediate system. As
        a corollary, resync points can be used by an intermediate system to
        discard RTP packets that are not relevant to a given rendering
        resolution or region of interest. Resync points play a role similar to
        pointer marker segments, albeit tailored for high-bandwidth, low-latency
        streaming applications.</t>
      </section>
      <section anchor="sec-sender-ptstamp" numbered="true" removeInRFC="false" toc="include" pn="section-7.4">
        <name slugifiedName="name-ptstamp-field">PTSTAMP Field</name>
        <t indent="0" pn="section-7.4-1">A sender <bcp14>SHOULD</bcp14> set <tt>P</tt> = 1, but only if it can generate
        <tt>PTSTAMP</tt> accurately.</t>
        <t indent="0" pn="section-7.4-2"><tt>PTSTAMP</tt> can be derived from the same clock that is used to
        produce the 32-bit <tt>timestamp</tt> field in the RTP Fixed Header.
        Specifically, a sender maintains, at least conceptually, a 32-bit
        counter that is incremented by a 90 kHz clock. The counter is sampled at
        the point in time when each RTP packet is transmitted and the 12 least significant bits of
        the sample are stored in the <tt>PTSTAMP</tt> field.</t>
        <t indent="0" pn="section-7.4-3">If <tt>P</tt> = 1, then the transmission time <tt>TOFF</tt> (as
        defined in <xref target="sec-main-packet-header" format="default" sectionFormat="of" derivedContent="Section 5.3"/>) for two consecutive RTP
        packets with identical <tt>timestamp</tt> fields <bcp14>MUST NOT</bcp14> differ by more
        than 4095.</t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-7.5">
        <name slugifiedName="name-res-field">RES Field</name>
        <t indent="0" pn="section-7.5-1">A sender <bcp14>SHOULD</bcp14> set <tt>RES</tt> &gt; 0 whenever possible.</t>
        <t indent="0" pn="section-7.5-2">NOTE: While a sender can always safely set <tt>RES</tt> = 0, this
        makes it more difficult to discard RTP packets based on resolution, as
        described in <xref target="recv-RES" format="default" sectionFormat="of" derivedContent="Section 8.3"/>.</t>
      </section>
      <section anchor="sec-sender-xtrab" numbered="true" removeInRFC="false" toc="include" pn="section-7.6">
        <name slugifiedName="name-extra-information">Extra Information</name>
        <t indent="0" pn="section-7.6-1">The sender <bcp14>MUST</bcp14> set the value of <tt>XTRAC</tt> to 0.</t>
        <t indent="0" pn="section-7.6-2">Future updates to this RTP payload format can permit other
        values.</t>
      </section>
      <section anchor="sec-sender-unassigned" numbered="true" removeInRFC="false" toc="include" pn="section-7.7">
        <name slugifiedName="name-unassigned-values">Unassigned Values</name>
        <t indent="0" pn="section-7.7-1">The sender <bcp14>MUST</bcp14> set unassigned values to 0.</t>
        <t indent="0" pn="section-7.7-2">Unassigned values are available for assignment by future updates to
        this RTP payload format. As specified in <xref target="sec-receiver-unassigned" format="default" sectionFormat="of" derivedContent="Section 8.5"/>, these future assigned values are
        ignored by receivers that conform to this specification. In contrast
        to extension values (see <xref target="sec-sender-ext" format="default" sectionFormat="of" derivedContent="Section 7.8"/>), this mechanism
        allows updates to this RTP payload format that remain compatible with
        receivers that conform to this specification.</t>
      </section>
      <section anchor="sec-sender-ext" numbered="true" removeInRFC="false" toc="include" pn="section-7.8">
        <name slugifiedName="name-extension-values">Extension Values</name>
        <t indent="0" pn="section-7.8-1">A sender <bcp14>MUST NOT</bcp14> use an extension value.</t>
      </section>
      <section anchor="sec-send-block-caching" numbered="true" removeInRFC="false" toc="include" pn="section-7.9">
        <name slugifiedName="name-code-block-caching">Code-Block Caching</name>
        <t indent="0" pn="section-7.9-1">This section only applies if <tt>C</tt> = 1.</t>
        <t indent="0" pn="section-7.9-2">A sender can improve bandwidth efficiency by only occasionally
        transmitting code-blocks corresponding to static portions of the video
        and otherwise transmitting empty code-blocks. When <tt>C</tt> = 1,
	a receiver
        maintains a simple cache of previously received code-blocks, which it
        uses to replace empty code-blocks (see <xref target="sec-rcv-block-caching" format="default" sectionFormat="of" derivedContent="Section 8.7"/>).</t>
        <t indent="0" pn="section-7.9-3">A sender alone determines which code-blocks are replaced
        with empty code-blocks and when the replacement occurs.</t>
        <t indent="0" pn="section-7.9-4">The sender cannot, however, determine with certainty the state of the
        receiver's cache; for example, some code-blocks might have been lost in transit, the
        sender doesn't know exactly when the receiver started processing the
        stream, etc.</t>
        <t indent="0" pn="section-7.9-5">A code-block is <em>empty</em> if:</t>
        <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-7.9-6">
          <li pn="section-7.9-6.1">it does not contribute code-bytes as specified in the parent JPEG
          2000 packet header; or</li>
          <li pn="section-7.9-6.2">it
          contains an HT cleanup segment and the first two bytes of the Magsgn
          byte-stream are between <tt>0xFF80</tt> and <tt>0xFF8F</tt> (if the code-block conforms to <xref target="JPEG2000-15" format="default" sectionFormat="of" derivedContent="JPEG2000-15"/>).</li>
        </ul>
        <t indent="0" pn="section-7.9-7">NOTE: The last condition allows the encoder to insert padding bytes
        to achieve a constant bit rate even when a code-block does not
        contribute code-bytes, as suggested in Annex F.4 of <xref target="JPEG2000-15" format="default" sectionFormat="of" derivedContent="JPEG2000-15"/>.
        </t>
      </section>
    </section>
    <section anchor="sec-receiver" numbered="true" removeInRFC="false" toc="include" pn="section-8">
      <name slugifiedName="name-receiver">Receiver</name>
      <section anchor="sec-recv-ptstamp" numbered="true" removeInRFC="false" toc="include" pn="section-8.1">
        <name slugifiedName="name-ptstamp">PTSTAMP</name>
        <t indent="0" pn="section-8.1-1">Receivers can use <tt>PTSTAMP</tt> values to accelerate sender clock
        recovery since <tt>PTSTAMP</tt> typically updates more regularly than
        <tt>timestamp</tt>.</t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-8.2">
        <name slugifiedName="name-qual">QUAL</name>
        <t indent="0" pn="section-8.2-1">A receiver can discard RTP packets where <tt>QUAL</tt> &gt; N if it
        is interested in reconstructing an image that only incorporates quality
        layers N and below.</t>
      </section>
      <section anchor="recv-RES" numbered="true" removeInRFC="false" toc="include" pn="section-8.3">
        <name slugifiedName="name-res">RES</name>
        <t indent="0" pn="section-8.3-1">The JPEG 2000 coding process decomposes an image using a sequence of
        discrete wavelet transform (DWT) stages.</t>
        <table anchor="t-res-ll-example" align="center" pn="table-2">
          <name slugifiedName="name-optional-discarding-of-body">Optional discarding of Body Packets based on the value of the
          <tt>RES</tt> field when decoding a reduced resolution image, in the
          case where N<sub>L</sub> = 5 and all DWT stages consist of both
          horizontal and vertical transforms. The image has nominal width and
          height of W x H.</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Decomposition Level</th>
              <th align="left" colspan="1" rowspan="1">Resolution Level</th>
              <th align="left" colspan="1" rowspan="1">Sub-bands</th>
              <th align="left" colspan="1" rowspan="1">Keep all Body Packets with <tt>RES</tt> equal to or less than
              this value...</th>
              <th align="left" colspan="1" rowspan="1">...to decode an image with at most these dimensions</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">HL1,LH1,HH1</td>
              <td align="left" colspan="1" rowspan="1">7</td>
              <td align="left" colspan="1" rowspan="1">W x H</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">HL2,LH2,HH2</td>
              <td align="left" colspan="1" rowspan="1">6</td>
              <td align="left" colspan="1" rowspan="1">(W/2) x (H/2)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">HL3,LH3,HH3</td>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">(W/4) x (H/4)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">HL4,LH4,HH4</td>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">(W/8) x (H/8)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">HL5,LH5,HH5</td>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">(W/16) x (H/16)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">LL5</td>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">(W/32) x (H/32)</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-8.3-3"><xref target="t-res-ll-example" format="default" sectionFormat="of" derivedContent="Table 2"/> illustrates the case where each DWT
        stage consists of both horizontal and vertical transforms, which is the
        only mode supported in <xref target="JPEG2000-1" format="default" sectionFormat="of" derivedContent="JPEG2000-1"/>. The first stage
        transforms the image into (i) the image at half-resolution (LL1
        sub-bands) and (ii) residual high-frequency data (HH1, LH1, HL1
        sub-bands). The second stage transforms the image at half-resolution
        (LL1 sub-bands) into the image at quarter resolution (LL2 sub-bands) and
        residual high-frequency data (HH2, LH2, HL2 sub-bands). This process is
        repeated N<sub>L</sub> times, where N<sub>L</sub> is the number of
        decomposition levels as defined in the COD and COC marker segments of
        the codestream.</t>
        <t indent="0" pn="section-8.3-4">The decoding process reconstructs the image by reversing the coding
        process, starting with the lowest resolution image stored in the
        codestream (LL<sub>N<sub>L</sub></sub>).</t>
        <t indent="0" pn="section-8.3-5">As a result, it is possible to reconstruct a lower resolution of the
        image by stopping the decoding process at a selected stage. For example,
        in order to reconstruct the image at quarter resolution (LL2), only
        sub-bands with index greater than 2 (e.g., HL3, LH3, HH3, HL4, LH4, HH4,
        etc.) are necessary. In other words, a receiver that wishes to
        reconstruct an image at quarter resolution could discard all RTP packets
        where <tt>RES</tt> &gt;= 6 since those RTP packets can only contribute
        to HL1, LH1, HH1, HL2, LH2, and HH2 sub-bands.</t>
        <t indent="0" pn="section-8.3-6">In the case where all DWT stages consist of both horizontal and
        vertical transforms, the maximum decodable resolution is reduced by a
        factor of 2<sup>7 - N</sup> if all Body Packets where <tt>RES</tt> &gt;
        N are discarded.</t>
        <table anchor="t-res-lx-example" align="center" pn="table-3">
          <name slugifiedName="name-optional-discarding-of-body-">Optional discarding of Body Packets based on the value of the
          <tt>RES</tt> field when decoding a reduced resolution image, in the
          case where N<sub>L</sub> = 5 and some DWT stages consist of only
          horizontal transforms. The image has nominal width and height of W x
          H.</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Decomposition Level</th>
              <th align="left" colspan="1" rowspan="1">Resolution Level</th>
              <th align="left" colspan="1" rowspan="1">Sub-bands</th>
              <th align="left" colspan="1" rowspan="1">Keep all Body Packets with RES equal to or less than this
              value...</th>
              <th align="left" colspan="1" rowspan="1">...to decode an image with at most these dimensions</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">HL1,LH1,HH1</td>
              <td align="left" colspan="1" rowspan="1">7</td>
              <td align="left" colspan="1" rowspan="1">W x H</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">HL2,LH2,HH2</td>
              <td align="left" colspan="1" rowspan="1">6</td>
              <td align="left" colspan="1" rowspan="1">(W/2) x (H/2)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">HX3</td>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">(W/4) x (H/2)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">HX4</td>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">(W/8) x (H/2)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">1</td>
              <td align="left" colspan="1" rowspan="1">HX5</td>
              <td align="left" colspan="1" rowspan="1">3</td>
              <td align="left" colspan="1" rowspan="1">(W/16) x (H/2)</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">5</td>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">LX5</td>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">(W/32) x (H/2)</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-8.3-8"><xref target="t-res-lx-example" format="default" sectionFormat="of" derivedContent="Table 3"/> illustrates the case where some DWT
        stages consist of only horizontal transforms, as specified in Annex F of
        <xref target="JPEG2000-2" format="default" sectionFormat="of" derivedContent="JPEG2000-2"/>.</t>
        <t indent="0" pn="section-8.3-9">A receiver can therefore discard all Body Packets where <tt>RES</tt> is
        greater than some threshold value if it is interested in decoding an
        image with its resolution reduced by a factor determined by the
        threshold value, as illustrated in Tables <xref target="t-res-ll-example" format="counter" sectionFormat="of" derivedContent="2"/> and
        <xref target="t-res-lx-example" format="counter" sectionFormat="of" derivedContent="3"/>.</t>
      </section>
      <section anchor="sec-receiver-xtrab" numbered="true" removeInRFC="false" toc="include" pn="section-8.4">
        <name slugifiedName="name-extra-information-2">Extra Information</name>
        <t indent="0" pn="section-8.4-1">The receiver <bcp14>MUST</bcp14> accept values of <tt>XTRAC</tt> other than 0 and <bcp14>MUST</bcp14>
        ignore the value of <tt>XTRAB</tt>, whose length is given by
        <tt>XTRAC</tt>.</t>
        <t indent="0" pn="section-8.4-2">Future updates to this RTP payload format can specify <tt>XTRAB</tt>
        contents such that this content can be ignored by receivers that conform
        to this specification.</t>
      </section>
      <section anchor="sec-receiver-unassigned" numbered="true" removeInRFC="false" toc="include" pn="section-8.5">
        <name slugifiedName="name-unassigned-values-2">Unassigned Values</name>
        <t indent="0" pn="section-8.5-1">The receiver <bcp14>MUST</bcp14> ignore unassigned values (see additional discussion
        in <xref target="sec-sender-unassigned" format="default" sectionFormat="of" derivedContent="Section 7.7"/>).</t>
      </section>
      <section anchor="sec-receiver-ext" numbered="true" removeInRFC="false" toc="include" pn="section-8.6">
        <name slugifiedName="name-extension-values-2">Extension Values</name>
        <t indent="0" pn="section-8.6-1">The receiver <bcp14>MUST</bcp14> discard an RTP packet that contains any extension
        value.</t>
      </section>
      <section anchor="sec-rcv-block-caching" numbered="true" removeInRFC="false" toc="include" pn="section-8.7">
        <name slugifiedName="name-code-block-caching-2">Code-Block Caching</name>
        <t indent="0" pn="section-8.7-1">This section only applies if <tt>C</tt> = 1.</t>
        <t indent="0" pn="section-8.7-2">When <tt>C</tt> = 1,
	the sender can improve bandwidth
        efficiency by only occasionally transmitting code-blocks corresponding
        to static portions of the video and otherwise transmitting empty
        code-blocks (see <xref target="sec-send-block-caching" format="default" sectionFormat="of" derivedContent="Section 7.9"/>).</t>
        <t indent="0" pn="section-8.7-3">When decoding a codestream, the following procedures apply for each
        code-block in the codestream:
        </t>
        <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-8.7-4">
          <li pn="section-8.7-4.1">
            If the code-block in the codestream is empty, the receiver <bcp14>MUST</bcp14>
            replace it with a matching code-block from the cache, if one exists.
          </li>
          <li pn="section-8.7-4.2">
            If the code-block in the codestream is not empty, the receiver <bcp14>MUST</bcp14>
            replace any matching code-block from the cache with the code-block
            in the codestream.
          </li>
        </ul>
        <t indent="0" pn="section-8.7-5">Two code-blocks are <em>matching</em> if the following
        characteristics are identical for both: spatial coordinates, resolution
        level, component, sub-band, and value of the <tt>TP</tt> field of the
        parent RTP packet.</t>
      </section>
    </section>
    <section anchor="sec-media-type" numbered="true" removeInRFC="false" toc="include" pn="section-9">
      <name slugifiedName="name-media-type">Media Type</name>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-9.1">
        <name slugifiedName="name-general-2">General</name>
        <t indent="0" pn="section-9.1-1">This RTP payload format is identified using the media type defined in
        <xref target="sec-media-type-def" format="default" sectionFormat="of" derivedContent="Section 9.2"/>. This media type has been registered in accordance
        with <xref target="RFC4855" format="default" sectionFormat="of" derivedContent="RFC4855"/> using the template in <xref target="RFC6838" format="default" sectionFormat="of" derivedContent="RFC6838"/>.</t>
      </section>
      <section anchor="sec-media-type-def" numbered="true" removeInRFC="false" toc="include" pn="section-9.2">
        <name slugifiedName="name-definition">Definition</name>
        <dl newline="false" spacing="normal" indent="3" pn="section-9.2-1">
          <dt pn="section-9.2-1.1">Type name:</dt>
          <dd pn="section-9.2-1.2">video</dd>
          <dt pn="section-9.2-1.3">Subtype name:</dt>
          <dd pn="section-9.2-1.4">jpeg2000-scl</dd>
          <dt pn="section-9.2-1.5">Required parameters:</dt>
          <dd pn="section-9.2-1.6">N/A</dd>
          <dt pn="section-9.2-1.7">Optional parameters:</dt>
          <dd pn="section-9.2-1.8">
            <t indent="0" pn="section-9.2-1.8.1"><br/></t>
            <dl newline="true" indent="3" spacing="normal" pn="section-9.2-1.8.2">
              <dt pn="section-9.2-1.8.2.1"><tt>pixel</tt>:</dt>
              <dd pn="section-9.2-1.8.2.2">
                <t indent="0" pn="section-9.2-1.8.2.2.1">Specifies the pixel format used by the video sequence.</t>
                <t indent="0" pn="section-9.2-1.8.2.2.2">The parameter <bcp14>MUST</bcp14> be a <tt>URI-reference</tt> as specified in
                <xref target="RFC3986" format="default" sectionFormat="of" derivedContent="RFC3986"/>.</t>
                <t indent="0" pn="section-9.2-1.8.2.2.3">If the parameter is a <tt>relative-ref</tt> as specified in
                <xref target="RFC3986" format="default" sectionFormat="of" derivedContent="RFC3986"/>, then it <bcp14>MUST</bcp14> be equal to one of the
                pixel formats specified in <xref target="t-pix-fmts" format="default" sectionFormat="of" derivedContent="Table 4"/>, and the
                RTP header and payload <bcp14>MUST</bcp14> conform to the characteristics of
                that pixel format.</t>
                <t indent="0" pn="section-9.2-1.8.2.2.4">If the parameter is not a <tt>relative-ref</tt>, the
                specification of the pixel format is left to the application that
                defined the URI.</t>
                <t indent="0" pn="section-9.2-1.8.2.2.5">If the parameter is not specified, the pixel format is
                unspecified.</t>
              </dd>
              <dt pn="section-9.2-1.8.2.3"><tt>sample</tt>:</dt>
              <dd pn="section-9.2-1.8.2.4">
                <t indent="0" pn="section-9.2-1.8.2.4.1">Specifies the format of the samples in each component of the
                codestream.</t>
                <t indent="0" pn="section-9.2-1.8.2.4.2">The parameter <bcp14>MUST</bcp14> be a <tt>URI-reference</tt> as specified in
                <xref target="RFC3986" format="default" sectionFormat="of" derivedContent="RFC3986"/>.</t>
                <t indent="0" pn="section-9.2-1.8.2.4.3">If the parameter is a <tt>relative-ref</tt> as specified in
                <xref target="RFC3986" format="default" sectionFormat="of" derivedContent="RFC3986"/>, then it <bcp14>MUST</bcp14> be equal to one of the
                formats specified in <xref target="sec-sample-fmts" format="default" sectionFormat="of" derivedContent="Appendix C"/>, and the
                stream <bcp14>MUST</bcp14> conform to the characteristics of that format.</t>
                <t indent="0" pn="section-9.2-1.8.2.4.4">If the parameter is not a <tt>relative-ref</tt>, the
                specification of the sample format is left to the application that
                defined the URI.</t>
                <t indent="0" pn="section-9.2-1.8.2.4.5">If the parameter is not specified, the sample format is
                unspecified.</t>
              </dd>
              <dt pn="section-9.2-1.8.2.5"><tt>width</tt>:</dt>
              <dd pn="section-9.2-1.8.2.6">
                <t indent="0" pn="section-9.2-1.8.2.6.1">Maximum width in pixels of each image. Integer between 0 and
                4,294,967,295.</t>
                <t indent="0" pn="section-9.2-1.8.2.6.2">The parameter <bcp14>MUST</bcp14> be a sequence of 1 or more digits.</t>
                <t indent="0" pn="section-9.2-1.8.2.6.3">If the parameter is not specified, the maximum width is
                unspecified.</t>
              </dd>
              <dt pn="section-9.2-1.8.2.7"><tt>height</tt>:</dt>
              <dd pn="section-9.2-1.8.2.8">
                <t indent="0" pn="section-9.2-1.8.2.8.1">Maximum height in pixels of each image. Integer between 0 and
                4,294,967,295.</t>
                <t indent="0" pn="section-9.2-1.8.2.8.2">The parameter <bcp14>MUST</bcp14> be a sequence of 1 or more digits.</t>
                <t indent="0" pn="section-9.2-1.8.2.8.3">If the parameter is not specified, the maximum height is
                unspecified.</t>
              </dd>
              <dt pn="section-9.2-1.8.2.9"><tt>signal</tt>:</dt>
              <dd pn="section-9.2-1.8.2.10">
                <t indent="0" pn="section-9.2-1.8.2.10.1">Specifies the sequence of image types.</t>
                <t indent="0" pn="section-9.2-1.8.2.10.2">The parameter <bcp14>MUST</bcp14> be a <tt>URI-reference</tt> as specified
                in <xref target="RFC3986" format="default" sectionFormat="of" derivedContent="RFC3986"/>.</t>
                <t indent="0" pn="section-9.2-1.8.2.10.3">If the parameter is a <tt>relative-ref</tt> as specified in
                <xref target="RFC3986" format="default" sectionFormat="of" derivedContent="RFC3986"/>, then it <bcp14>MUST</bcp14> be equal to one of the
                signal formats specified in <xref target="sec-signal-fmts" format="default" sectionFormat="of" derivedContent="Appendix B"/>, and
                the image sequence <bcp14>MUST</bcp14> conform to that signal format.</t>
                <t indent="0" pn="section-9.2-1.8.2.10.4">If the parameter is not a <tt>relative-ref</tt>, the
                specification of the pixel format is left to the application
                that defined the URI.</t>
                <t indent="0" pn="section-9.2-1.8.2.10.5">If the parameter is not specified, the stream consists of an
                arbitrary sequence of image types.</t>
              </dd>
              <dt pn="section-9.2-1.8.2.11"><tt>caps</tt>:</dt>
              <dd pn="section-9.2-1.8.2.12">
                <t indent="0" pn="section-9.2-1.8.2.12.1">The parameter contains a list of sets of constraints to
                which the stream conforms, with each set of constraints
                identified using an <tt>absolute-URI</tt> defined by an
                application.</t>
                <t indent="0" pn="section-9.2-1.8.2.12.2">The parameter <bcp14>MUST</bcp14> conform to the <tt>uri-list</tt> syntax
                expressed as follows using ABNF <xref target="RFC5234" format="default" sectionFormat="of" derivedContent="RFC5234"/>:</t>
                <sourcecode type="abnf" markers="false" pn="section-9.2-1.8.2.12.3">
  uri-list = absolute-URI *(";" absolute-URI)
</sourcecode>
                <t indent="0" pn="section-9.2-1.8.2.12.4">The application that defines the <tt>absolute-URI</tt> <bcp14>MUST</bcp14>
                ensure that it does not contain any <tt>";"</tt> character and
                <bcp14>MUST</bcp14> associate it with a set of constraints to which the stream
                conforms. Such constraints can, for example, include the maximum
                height and width of images.</t>
                <t indent="0" pn="section-9.2-1.8.2.12.5">If the parameter is not specified, constraints beyond those
                specified in this document are unspecified.</t>
              </dd>
              <dt pn="section-9.2-1.8.2.13"><tt>cache</tt>:</dt>
              <dd pn="section-9.2-1.8.2.14">
                <t indent="0" pn="section-9.2-1.8.2.14.1">The value of the parameter <bcp14>MUST</bcp14> be either <tt>false</tt> or
                <tt>true</tt>.</t>
                <t indent="0" pn="section-9.2-1.8.2.14.2">If the parameter is <tt>true</tt>, the field <tt>C</tt> <bcp14>MAY</bcp14>
                be 0 or 1; otherwise, the field <tt>C</tt> <bcp14>MUST</bcp14> be 0.</t>
                <t indent="0" pn="section-9.2-1.8.2.14.3">If the parameter is not specified, then the parameter is
                equal to <tt>false</tt>.</t>
              </dd>
            </dl>
          </dd>
          <dt pn="section-9.2-1.9">Encoding considerations:</dt>
          <dd pn="section-9.2-1.10">This media type is framed and binary. See <xref target="RFC6838" section="4.8" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc6838#section-4.8" derivedContent="RFC6838"/>.</dd>
          <dt pn="section-9.2-1.11">Security considerations:</dt>
          <dd pn="section-9.2-1.12">
            <t indent="0" pn="section-9.2-1.12.1">JPEG 2000 is a flexible image format. As a result, the size of
            the memory structures required to process JPEG 2000 images can vary
            greatly depending on the characteristics of the image and the
            encoding parameters. For example, the JPEG 2000 syntax allows image
            height and width up to 2<sup>32</sup> - 1 pixels, which is also
            captured in the syntax of the <tt>height</tt> and <tt>width</tt>
            parameters of this media type.
            Therefore, implementations <bcp14>SHOULD</bcp14> take
            care when processing input that influences the size of memory
            structures and <bcp14>SHOULD</bcp14> fail gracefully when resource constraints are
            exceeded.</t>
            <t indent="0" pn="section-9.2-1.12.2">See also <xref target="sec-sec" format="default" sectionFormat="of" derivedContent="Section 13"/>.</t>
          </dd>
          <dt pn="section-9.2-1.13">Interoperability considerations:</dt>
          <dd pn="section-9.2-1.14">The RTP stream is a sequence of JPEG 2000 images. An
          implementation that conforms to the family of JPEG 2000 standards can
          decode and attempt to display each image.</dd>
          <dt pn="section-9.2-1.15">Published specification:</dt>
          <dd pn="section-9.2-1.16">RFC 9828</dd>
          <dt pn="section-9.2-1.17">Applications that use this media type:</dt>
          <dd pn="section-9.2-1.18">video streaming and communication</dd>
          <dt pn="section-9.2-1.19">Fragment identifier considerations:</dt>
          <dd pn="section-9.2-1.20">N/A</dd>
          <dt pn="section-9.2-1.21">Additional information:</dt>
          <dd pn="section-9.2-1.22">N/A</dd>
          <dt pn="section-9.2-1.23">Person &amp; email address to contact for further information:</dt>
          <dd pn="section-9.2-1.24">Pierre-Anthony Lemieux &lt;pal@sandflow.com&gt;</dd>
          <dt pn="section-9.2-1.25">Intended usage:</dt>
          <dd pn="section-9.2-1.26">COMMON</dd>
          <dt pn="section-9.2-1.27">Restrictions on Usage:</dt>
          <dd pn="section-9.2-1.28">This media type depends on RTP framing and hence is only defined
          for use with RTP as specified in <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/>. Transport
          within other framing protocols is not defined at the time.</dd>
          <dt pn="section-9.2-1.29">Author:</dt>
          <dd pn="section-9.2-1.30">Pierre-Anthony Lemieux &lt;pal@sandflow.com&gt;
          </dd>
          <dt pn="section-9.2-1.31">Change controller:</dt>
          <dd pn="section-9.2-1.32">IETF</dd>
        </dl>
      </section>
    </section>
    <section anchor="sec-sdp" numbered="true" removeInRFC="false" toc="include" pn="section-10">
      <name slugifiedName="name-mapping-to-the-session-desc">Mapping to the Session Description Protocol (SDP)</name>
      <t indent="0" pn="section-10-1">The mapping of the payload format media type and its parameters to
      SDP, as specified in <xref target="RFC8866" format="default" sectionFormat="of" derivedContent="RFC8866"/>, <bcp14>MUST</bcp14> be done according to
      <xref target="RFC4855" section="3" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc4855#section-3" derivedContent="RFC4855"/>.</t>
    </section>
    <section anchor="sec-congestion-control" numbered="true" removeInRFC="false" toc="include" pn="section-11">
      <name slugifiedName="name-congestion-control">Congestion Control</name>
      <t indent="0" pn="section-11-1">Since this RTP payload format can be used in a variety of applications
      across many different contexts, there is no single congestion control
      mechanism that will work for all. Below is a non-exhaustive list of example
      mechanisms that can be used:</t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-11-2">
        <li pn="section-11-2.1">a sender can offer several alternative streams for a given video
        signal, each with a different data rate corresponding to a different
        compression ratio;</li>
        <li pn="section-11-2.2">a sender can modulate the data rate within a stream by modulating
        the resolution, frame rate, or compression ratio of the underlying video
        signal; or</li>
        <li pn="section-11-2.3">an intermediate system can lower the data rate of a stream by
        discarding resolution levels and/or quality layers, as specified in
        <xref target="sec-filtering" format="default" sectionFormat="of" derivedContent="Section 7.2"/>.</li>
      </ul>
      <t indent="0" pn="section-11-3">As suggested in <xref target="RFC3550" sectionFormat="of" section="10" format="default" derivedLink="https://rfc-editor.org/rfc/rfc3550#section-10" derivedContent="RFC3550"/>, RTCP feedback can
      be used in the data rate adaptation process.</t>
    </section>
    <section anchor="sec-iana" numbered="true" removeInRFC="false" toc="include" pn="section-12">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-12-1">IANA has registered the media type specified in
        <xref target="sec-media-type" format="default" sectionFormat="of" derivedContent="Section 9"/>.</t>
    </section>
    <section anchor="sec-sec" numbered="true" removeInRFC="false" toc="include" pn="section-13">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-13-1">RTP packets using the payload format specified in this document are
      subject to the security considerations discussed in <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/> and in any applicable RTP profile such as <xref target="RFC3551" format="default" sectionFormat="of" derivedContent="RFC3551"/>, <xref target="RFC4585" format="default" sectionFormat="of" derivedContent="RFC4585"/>, <xref target="RFC3711" format="default" sectionFormat="of" derivedContent="RFC3711"/>, and
      <xref target="RFC5124" format="default" sectionFormat="of" derivedContent="RFC5124"/>.  However, as <xref target="RFC7202" format="default" sectionFormat="of" derivedContent="RFC7202"/> discusses,
      it is not an RTP payload format's responsibility to discuss or mandate
      what solutions are used to meet the basic security goals like
      confidentiality, integrity, and source authenticity for RTP in general.
      This responsibility lies with anyone using RTP in an application. They can
      find guidance on available security mechanisms and important
      considerations in <xref target="RFC7201" format="default" sectionFormat="of" derivedContent="RFC7201"/>. Applications <bcp14>SHOULD</bcp14> use one or
      more appropriate strong security mechanisms.  The rest of this
      section discusses the security impacting properties of the
      payload format itself.</t>
      <t indent="0" pn="section-13-2">This RTP payload format and its media decoder do not exhibit any
      significant non-uniformity in the receiver-side computational complexity
      for RTP packet processing and thus are unlikely to pose a
      denial-of-service threat due to the receipt of pathological data. In addition, 
      the RTP payload format does not contain any active content.</t>
      <t indent="0" pn="section-13-3">Security considerations related to the JPEG 2000 codestream contained
      in the payload are discussed in <xref target="RFC3745" section="3" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc3745#section-3" derivedContent="RFC3745"/>.</t>
    </section>
  </middle>
  <back>
    <references pn="section-14">
      <name slugifiedName="name-references">References</name>
      <references pn="section-14.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="JPEG2000-1" target="https://www.itu.int/rec/T-REC-T.800/" quoteTitle="true" derivedAnchor="JPEG2000-1">
          <front>
            <title abbrev="Rec. ITU-T T.800">Information technology - JPEG 2000 image coding system: Core coding system</title>
            <author>
              <organization showOnFrontPage="true">ITU-T</organization>
            </author>
            <date year="2024" month="07"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="T.800"/>
        </reference>
        <reference anchor="JPEG2000-15" target="https://www.itu.int/rec/T-REC-T.814/" quoteTitle="true" derivedAnchor="JPEG2000-15">
          <front>
            <title abbrev="Rec. ITU-T T.814">Information technology - JPEG 2000 image coding system: High-throughput JPEG 2000</title>
            <author>
              <organization showOnFrontPage="true">ITU-T</organization>
            </author>
            <date year="2019" month="06"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="T.814"/>
        </reference>
        <reference anchor="JPEG2000-2" target="https://www.itu.int/rec/T-REC-T.801" quoteTitle="true" derivedAnchor="JPEG2000-2">
          <front>
            <title abbrev="Rec. ITU-T T.801">Information Technology - JPEG 2000 image coding system - Extensions</title>
            <author>
              <organization showOnFrontPage="true">ITU-T</organization>
            </author>
            <date year="2023" month="08"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="T.801"/>
        </reference>
        <reference anchor="JPEG2000-9" target="https://www.itu.int/rec/T-REC-T.808" quoteTitle="true" derivedAnchor="JPEG2000-9">
          <front>
            <title abbrev="Rec. ITU-T T.808">Information technology - JPEG 2000 image coding system: Interactivity tools, APIs and protocols</title>
            <author>
              <organization showOnFrontPage="true">ITU-T</organization>
            </author>
            <date year="2022" month="12"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="T.808"/>
        </reference>
        <reference anchor="REC-ITU-T-H273" target="https://www.itu.int/rec/T-REC-H.273" quoteTitle="true" derivedAnchor="REC-ITU-T-H273">
          <front>
            <title abbrev="Rec. ITU-T H.273">Coding-independent code points for video signal type identification</title>
            <author>
              <organization showOnFrontPage="true">ITU-T</organization>
            </author>
            <date year="2024" month="07"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="H.273"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">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. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC3550" target="https://www.rfc-editor.org/info/rfc3550" quoteTitle="true" derivedAnchor="RFC3550">
          <front>
            <title>RTP: A Transport Protocol for Real-Time Applications</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <author fullname="R. Frederick" initials="R." surname="Frederick"/>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson"/>
            <date month="July" year="2003"/>
            <abstract>
              <t indent="0">This memorandum describes RTP, the real-time transport protocol. RTP provides end-to-end network transport functions suitable for applications transmitting real-time data, such as audio, video or simulation data, over multicast or unicast network services. RTP does not address resource reservation and does not guarantee quality-of- service for real-time services. The data transport is augmented by a control protocol (RTCP) to allow monitoring of the data delivery in a manner scalable to large multicast networks, and to provide minimal control and identification functionality. RTP and RTCP are designed to be independent of the underlying transport and network layers. The protocol supports the use of RTP-level translators and mixers. Most of the text in this memorandum is identical to RFC 1889 which it obsoletes. There are no changes in the packet formats on the wire, only changes to the rules and algorithms governing how the protocol is used. The biggest change is an enhancement to the scalable timer algorithm for calculating when to send RTCP packets in order to minimize transmission in excess of the intended rate when many participants join a session simultaneously. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="64"/>
          <seriesInfo name="RFC" value="3550"/>
          <seriesInfo name="DOI" value="10.17487/RFC3550"/>
        </reference>
        <reference anchor="RFC3986" target="https://www.rfc-editor.org/info/rfc3986" quoteTitle="true" derivedAnchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t indent="0">A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC4855" target="https://www.rfc-editor.org/info/rfc4855" quoteTitle="true" derivedAnchor="RFC4855">
          <front>
            <title>Media Type Registration of RTP Payload Formats</title>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <date month="February" year="2007"/>
            <abstract>
              <t indent="0">This document specifies the procedure to register RTP payload formats as audio, video, or other media subtype names. This is useful in a text-based format description or control protocol to identify the type of an RTP transmission. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4855"/>
          <seriesInfo name="DOI" value="10.17487/RFC4855"/>
        </reference>
        <reference anchor="RFC5234" target="https://www.rfc-editor.org/info/rfc5234" quoteTitle="true" derivedAnchor="RFC5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t indent="0">Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8866" target="https://www.rfc-editor.org/info/rfc8866" quoteTitle="true" derivedAnchor="RFC8866">
          <front>
            <title>SDP: Session Description Protocol</title>
            <author fullname="A. Begen" initials="A." surname="Begen"/>
            <author fullname="P. Kyzivat" initials="P." surname="Kyzivat"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="M. Handley" initials="M." surname="Handley"/>
            <date month="January" year="2021"/>
            <abstract>
              <t indent="0">This memo defines the Session Description Protocol (SDP). SDP is intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. This document obsoletes RFC 4566.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8866"/>
          <seriesInfo name="DOI" value="10.17487/RFC8866"/>
        </reference>
      </references>
      <references pn="section-14.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="OV2110-0" target="https://pub.smpte.org/doc/ov2110-0/20181204-pub/" quoteTitle="true" derivedAnchor="OV2110-0">
          <front>
            <title abbrev="SMPTE OV 2110-0">Professional Media Over Managed IP Networks, Roadmap for the 2110 Document Suite</title>
            <author>
              <organization showOnFrontPage="true">SMPTE</organization>
            </author>
            <date year="2018" month="12" day="04"/>
          </front>
        </reference>
        <reference anchor="RFC3551" target="https://www.rfc-editor.org/info/rfc3551" quoteTitle="true" derivedAnchor="RFC3551">
          <front>
            <title>RTP Profile for Audio and Video Conferences with Minimal Control</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <date month="July" year="2003"/>
            <abstract>
              <t indent="0">This document describes a profile called "RTP/AVP" for the use of the real-time transport protocol (RTP), version 2, and the associated control protocol, RTCP, within audio and video multiparticipant conferences with minimal control. It provides interpretations of generic fields within the RTP specification suitable for audio and video conferences. In particular, this document defines a set of default mappings from payload type numbers to encodings. This document also describes how audio and video data may be carried within RTP. It defines a set of standard encodings and their names when used within RTP. The descriptions provide pointers to reference implementations and the detailed standards. This document is meant as an aid for implementors of audio, video and other real-time multimedia applications. This memorandum obsoletes RFC 1890. It is mostly backwards-compatible except for functions removed because two interoperable implementations were not found. The additions to RFC 1890 codify existing practice in the use of payload formats under this profile and include new payload formats defined since RFC 1890 was published. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="65"/>
          <seriesInfo name="RFC" value="3551"/>
          <seriesInfo name="DOI" value="10.17487/RFC3551"/>
        </reference>
        <reference anchor="RFC3711" target="https://www.rfc-editor.org/info/rfc3711" quoteTitle="true" derivedAnchor="RFC3711">
          <front>
            <title>The Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="M. Baugher" initials="M." surname="Baugher"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="M. Naslund" initials="M." surname="Naslund"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <author fullname="K. Norrman" initials="K." surname="Norrman"/>
            <date month="March" year="2004"/>
            <abstract>
              <t indent="0">This document describes the Secure Real-time Transport Protocol (SRTP), a profile of the Real-time Transport Protocol (RTP), which can provide confidentiality, message authentication, and replay protection to the RTP traffic and to the control traffic for RTP, the Real-time Transport Control Protocol (RTCP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3711"/>
          <seriesInfo name="DOI" value="10.17487/RFC3711"/>
        </reference>
        <reference anchor="RFC3745" target="https://www.rfc-editor.org/info/rfc3745" quoteTitle="true" derivedAnchor="RFC3745">
          <front>
            <title>MIME Type Registrations for JPEG 2000 (ISO/IEC 15444)</title>
            <author fullname="D. Singer" initials="D." surname="Singer"/>
            <author fullname="R. Clark" initials="R." surname="Clark"/>
            <author fullname="D. Lee" initials="D." surname="Lee"/>
            <date month="April" year="2004"/>
            <abstract>
              <t indent="0">This document serves to register and document the standard MIME types associated with the ISO/IEC 15444 standards, commonly known as JPEG 2000 (Joint Photographic Experts Group). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3745"/>
          <seriesInfo name="DOI" value="10.17487/RFC3745"/>
        </reference>
        <reference anchor="RFC4175" target="https://www.rfc-editor.org/info/rfc4175" quoteTitle="true" derivedAnchor="RFC4175">
          <front>
            <title>RTP Payload Format for Uncompressed Video</title>
            <author fullname="L. Gharai" initials="L." surname="Gharai"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <date month="September" year="2005"/>
            <abstract>
              <t indent="0">This memo specifies a packetization scheme for encapsulating uncompressed video into a payload format for the Real-time Transport Protocol, RTP. It supports a range of standard- and high-definition video formats, including common television formats such as ITU BT.601, and standards from the Society of Motion Picture and Television Engineers (SMPTE), such as SMPTE 274M and SMPTE 296M. The format is designed to be applicable and extensible to new video formats as they are developed. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4175"/>
          <seriesInfo name="DOI" value="10.17487/RFC4175"/>
        </reference>
        <reference anchor="RFC4585" target="https://www.rfc-editor.org/info/rfc4585" quoteTitle="true" derivedAnchor="RFC4585">
          <front>
            <title>Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/AVPF)</title>
            <author fullname="J. Ott" initials="J." surname="Ott"/>
            <author fullname="S. Wenger" initials="S." surname="Wenger"/>
            <author fullname="N. Sato" initials="N." surname="Sato"/>
            <author fullname="C. Burmeister" initials="C." surname="Burmeister"/>
            <author fullname="J. Rey" initials="J." surname="Rey"/>
            <date month="July" year="2006"/>
            <abstract>
              <t indent="0">Real-time media streams that use RTP are, to some degree, resilient against packet losses. Receivers may use the base mechanisms of the Real-time Transport Control Protocol (RTCP) to report packet reception statistics and thus allow a sender to adapt its transmission behavior in the mid-term. This is the sole means for feedback and feedback-based error repair (besides a few codec-specific mechanisms). This document defines an extension to the Audio-visual Profile (AVP) that enables receivers to provide, statistically, more immediate feedback to the senders and thus allows for short-term adaptation and efficient feedback-based repair mechanisms to be implemented. This early feedback profile (AVPF) maintains the AVP bandwidth constraints for RTCP and preserves scalability to large groups. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4585"/>
          <seriesInfo name="DOI" value="10.17487/RFC4585"/>
        </reference>
        <reference anchor="RFC5124" target="https://www.rfc-editor.org/info/rfc5124" quoteTitle="true" derivedAnchor="RFC5124">
          <front>
            <title>Extended Secure RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/SAVPF)</title>
            <author fullname="J. Ott" initials="J." surname="Ott"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <date month="February" year="2008"/>
            <abstract>
              <t indent="0">An RTP profile (SAVP) for secure real-time communications and another profile (AVPF) to provide timely feedback from the receivers to a sender are defined in RFC 3711 and RFC 4585, respectively. This memo specifies the combination of both profiles to enable secure RTP communications with feedback. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5124"/>
          <seriesInfo name="DOI" value="10.17487/RFC5124"/>
        </reference>
        <reference anchor="RFC5371" target="https://www.rfc-editor.org/info/rfc5371" quoteTitle="true" derivedAnchor="RFC5371">
          <front>
            <title>RTP Payload Format for JPEG 2000 Video Streams</title>
            <author fullname="S. Futemma" initials="S." surname="Futemma"/>
            <author fullname="E. Itakura" initials="E." surname="Itakura"/>
            <author fullname="A. Leung" initials="A." surname="Leung"/>
            <date month="October" year="2008"/>
            <abstract>
              <t indent="0">This memo describes an RTP payload format for the ISO/IEC International Standard 15444-1 | ITU-T Rec. T.800, 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. The JPEG 2000 video stream is formed by extending from a single image to a series of JPEG 2000 images. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5371"/>
          <seriesInfo name="DOI" value="10.17487/RFC5371"/>
        </reference>
        <reference anchor="RFC5450" target="https://www.rfc-editor.org/info/rfc5450" quoteTitle="true" derivedAnchor="RFC5450">
          <front>
            <title>Transmission Time Offsets in RTP Streams</title>
            <author fullname="D. Singer" initials="D." surname="Singer"/>
            <author fullname="H. Desineni" initials="H." surname="Desineni"/>
            <date month="March" year="2009"/>
            <abstract>
              <t indent="0">This document describes a method to inform Real-time Transport Protocol (RTP) clients when RTP packets are transmitted at a time other than their 'nominal' transmission time. It also provides a mechanism to provide improved inter-arrival jitter reports from the clients, that take into account the reported transmission times. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5450"/>
          <seriesInfo name="DOI" value="10.17487/RFC5450"/>
        </reference>
        <reference anchor="RFC6838" target="https://www.rfc-editor.org/info/rfc6838" quoteTitle="true" derivedAnchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t indent="0">This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC7201" target="https://www.rfc-editor.org/info/rfc7201" quoteTitle="true" derivedAnchor="RFC7201">
          <front>
            <title>Options for Securing RTP Sessions</title>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <date month="April" year="2014"/>
            <abstract>
              <t indent="0">The Real-time Transport Protocol (RTP) is used in a large number of different application domains and environments. This heterogeneity implies that different security mechanisms are needed to provide services such as confidentiality, integrity, and source authentication of RTP and RTP Control Protocol (RTCP) packets suitable for the various environments. The range of solutions makes it difficult for RTP-based application developers to pick the most suitable mechanism. This document provides an overview of a number of security solutions for RTP and gives guidance for developers on how to choose the appropriate security mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7201"/>
          <seriesInfo name="DOI" value="10.17487/RFC7201"/>
        </reference>
        <reference anchor="RFC7202" target="https://www.rfc-editor.org/info/rfc7202" quoteTitle="true" derivedAnchor="RFC7202">
          <front>
            <title>Securing the RTP Framework: Why RTP Does Not Mandate a Single Media Security Solution</title>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <date month="April" year="2014"/>
            <abstract>
              <t indent="0">This memo discusses the problem of securing real-time multimedia sessions. It also explains why the Real-time Transport Protocol (RTP) and the associated RTP Control Protocol (RTCP) do not mandate a single media security mechanism. This is relevant for designers and reviewers of future RTP extensions to ensure that appropriate security mechanisms are mandated and that any such mechanisms are specified in a manner that conforms with the RTP architecture.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7202"/>
          <seriesInfo name="DOI" value="10.17487/RFC7202"/>
        </reference>
      </references>
    </references>
    <section anchor="sec-pixel-fmts" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-pixel-formats">Pixel Formats</name>
      <t indent="0" pn="section-appendix.a-1"><xref target="t-pix-fmts" format="default" sectionFormat="of" derivedContent="Table 4"/> defines pixel formats.</t>
      <table anchor="t-pix-fmts" align="center" pn="table-4">
        <name slugifiedName="name-defined-pixel-formats">Defined Pixel Formats</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">NAME</th>
            <th align="left" colspan="1" rowspan="1">SAMP</th>
            <th align="left" colspan="1" rowspan="1">COMPS</th>
            <th align="left" colspan="1" rowspan="1">TRANS</th>
            <th align="left" colspan="1" rowspan="1">PRIMS</th>
            <th align="left" colspan="1" rowspan="1">MAT</th>
            <th align="left" colspan="1" rowspan="1">VFR</th>
            <th align="left" colspan="1" rowspan="1">Mapping in <xref target="t-color-map" format="default" sectionFormat="of" derivedContent="Table 1"/></th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">rgb444sdr</td>
            <td align="left" colspan="1" rowspan="1">4:4:4</td>
            <td align="left" colspan="1" rowspan="1">RGB</td>
            <td align="left" colspan="1" rowspan="1">1</td>
            <td align="left" colspan="1" rowspan="1">1</td>
            <td align="left" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">0, 1</td>
            <td align="left" colspan="1" rowspan="1">RGB</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">rgb444wcg</td>
            <td align="left" colspan="1" rowspan="1">4:4:4</td>
            <td align="left" colspan="1" rowspan="1">RGB</td>
            <td align="left" colspan="1" rowspan="1">1</td>
            <td align="left" colspan="1" rowspan="1">9</td>
            <td align="left" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">0, 1</td>
            <td align="left" colspan="1" rowspan="1">RGB</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">rgb444pq</td>
            <td align="left" colspan="1" rowspan="1">4:4:4</td>
            <td align="left" colspan="1" rowspan="1">RGB</td>
            <td align="left" colspan="1" rowspan="1">16</td>
            <td align="left" colspan="1" rowspan="1">9</td>
            <td align="left" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">0, 1</td>
            <td align="left" colspan="1" rowspan="1">RGB</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">rgb444hlg</td>
            <td align="left" colspan="1" rowspan="1">4:4:4</td>
            <td align="left" colspan="1" rowspan="1">RGB</td>
            <td align="left" colspan="1" rowspan="1">18</td>
            <td align="left" colspan="1" rowspan="1">9</td>
            <td align="left" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">0, 1</td>
            <td align="left" colspan="1" rowspan="1">RGB</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">ycbcr420sdr</td>
            <td align="left" colspan="1" rowspan="1">4:2:0</td>
            <td align="left" colspan="1" rowspan="1">YCbCr</td>
            <td align="left" colspan="1" rowspan="1">1</td>
            <td align="left" colspan="1" rowspan="1">1</td>
            <td align="left" colspan="1" rowspan="1">1</td>
            <td align="left" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">YCbCr</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">ycbcr422sdr</td>
            <td align="left" colspan="1" rowspan="1">4:2:2</td>
            <td align="left" colspan="1" rowspan="1">YCbCr</td>
            <td align="left" colspan="1" rowspan="1">1</td>
            <td align="left" colspan="1" rowspan="1">1</td>
            <td align="left" colspan="1" rowspan="1">1</td>
            <td align="left" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">YCbCr</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">ycbcr422wcg</td>
            <td align="left" colspan="1" rowspan="1">4:2:2</td>
            <td align="left" colspan="1" rowspan="1">YCbCr</td>
            <td align="left" colspan="1" rowspan="1">1</td>
            <td align="left" colspan="1" rowspan="1">9</td>
            <td align="left" colspan="1" rowspan="1">9</td>
            <td align="left" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">YCbCr</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">ycbcr422pq</td>
            <td align="left" colspan="1" rowspan="1">4:2:2</td>
            <td align="left" colspan="1" rowspan="1">YCbCr</td>
            <td align="left" colspan="1" rowspan="1">16</td>
            <td align="left" colspan="1" rowspan="1">9</td>
            <td align="left" colspan="1" rowspan="1">9</td>
            <td align="left" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">YCbCr</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">ycbcr422hlg</td>
            <td align="left" colspan="1" rowspan="1">4:2:2</td>
            <td align="left" colspan="1" rowspan="1">YCbCr</td>
            <td align="left" colspan="1" rowspan="1">18</td>
            <td align="left" colspan="1" rowspan="1">9</td>
            <td align="left" colspan="1" rowspan="1">9</td>
            <td align="left" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">YCbCr</td>
          </tr>
        </tbody>
      </table>
      <t indent="0" pn="section-appendix.a-3">Each pixel format is characterized by the following:</t>
      <dl newline="false" spacing="normal" indent="3" pn="section-appendix.a-4">
        <dt pn="section-appendix.a-4.1"><tt>NAME</tt>:</dt>
        <dd pn="section-appendix.a-4.2">Identifies the pixel format</dd>
        <dt pn="section-appendix.a-4.3"><tt>SAMP</tt>:</dt>
        <dd pn="section-appendix.a-4.4">
          <t indent="0" pn="section-appendix.a-4.4.1"><br/></t>
          <dl newline="false" indent="8" spacing="normal" pn="section-appendix.a-4.4.2">
            <dt pn="section-appendix.a-4.4.2.1">4:2:0</dt>
            <dd pn="section-appendix.a-4.4.2.2">The C<sub>b</sub> and C<sub>r</sub> color channels are
            subsampled horizontally and vertically by 1/2.</dd>
            <dt pn="section-appendix.a-4.4.2.3">4:2:2</dt>
            <dd pn="section-appendix.a-4.4.2.4">The C<sub>b</sub> and C<sub>r</sub> color channels are
            subsampled horizontally by 1/2.</dd>
            <dt pn="section-appendix.a-4.4.2.5">4:4:4</dt>
            <dd pn="section-appendix.a-4.4.2.6">No color channels are subsampled.</dd>
          </dl>
        </dd>
        <dt pn="section-appendix.a-4.5"><tt>COMPS</tt>:</dt>
        <dd pn="section-appendix.a-4.6">
          <t indent="0" pn="section-appendix.a-4.6.1"><br/></t>
          <dl newline="false" indent="9" spacing="normal" pn="section-appendix.a-4.6.2">
            <dt pn="section-appendix.a-4.6.2.1">RGB:</dt>
            <dd pn="section-appendix.a-4.6.2.2">Each codestream contains exactly three components, associated
            with the R, G, and B color channels, in order.</dd>
            <dt pn="section-appendix.a-4.6.2.3">YCbCr:</dt>
            <dd pn="section-appendix.a-4.6.2.4">Each codestream contains exactly three components, associated
            with the Y, C<sub>b</sub>, and C<sub>r</sub> color channels, in
            order.</dd>
          </dl>
        </dd>
        <dt pn="section-appendix.a-4.7"><tt>TRANS</tt>:</dt>
        <dd pn="section-appendix.a-4.8">
          <t indent="0" pn="section-appendix.a-4.8.1">Identifies the transfer characteristics allowed by the pixel
          format, as defined in <xref target="REC-ITU-T-H273" format="default" sectionFormat="of" derivedContent="REC-ITU-T-H273"/>.</t>
        </dd>
        <dt pn="section-appendix.a-4.9"><tt>PRIMS</tt>:</dt>
        <dd pn="section-appendix.a-4.10">
          <t indent="0" pn="section-appendix.a-4.10.1">Identifies the color primaries allowed by the pixel
          format, as defined in <xref target="REC-ITU-T-H273" format="default" sectionFormat="of" derivedContent="REC-ITU-T-H273"/>.</t>
        </dd>
        <dt pn="section-appendix.a-4.11"><tt>MAT</tt>:</dt>
        <dd pn="section-appendix.a-4.12">
          <t indent="0" pn="section-appendix.a-4.12.1">Identifies the matrix coefficients allowed by the pixel
          format, as defined in <xref target="REC-ITU-T-H273" format="default" sectionFormat="of" derivedContent="REC-ITU-T-H273"/>.</t>
        </dd>
        <dt pn="section-appendix.a-4.13"><tt>VFR</tt>:</dt>
        <dd pn="section-appendix.a-4.14">
          <t indent="0" pn="section-appendix.a-4.14.1">Allows values of the VideoFullRangeFlag defined in <xref target="REC-ITU-T-H273" format="default" sectionFormat="of" derivedContent="REC-ITU-T-H273"/>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="sec-signal-fmts" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-signal-formats">Signal Formats</name>
      <dl newline="false" indent="3" spacing="normal" pn="section-appendix.b-1">
        <dt pn="section-appendix.b-1.1"><tt>prog</tt>:</dt>
        <dd pn="section-appendix.b-1.2">The stream <bcp14>MUST</bcp14> only consist of a sequence of progressive
        frames.</dd>
        <dt pn="section-appendix.b-1.3"><tt>psf</tt>:</dt>
        <dd pn="section-appendix.b-1.4">Progressive segmented frame (PsF) stream. The stream <bcp14>MUST</bcp14> only
        consist of an alternating sequence of first segment and second
        segment.</dd>
        <dt pn="section-appendix.b-1.5"><tt>tff</tt>:</dt>
        <dd pn="section-appendix.b-1.6">Interlaced stream. The stream <bcp14>MUST</bcp14> only consist of an alternating
        sequence of first field and second field, where the first line of the
        first field is the first line of the frame.</dd>
        <dt pn="section-appendix.b-1.7"><tt>bff</tt>:</dt>
        <dd pn="section-appendix.b-1.8">Interlaced stream. The stream <bcp14>MUST</bcp14> only consist of an alternating
        sequence of first field and second field, where the first line of the
        first field is the second line of the frame.</dd>
      </dl>
    </section>
    <section anchor="sec-sample-fmts" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-sample-formats">Sample Formats</name>
      <dl newline="false" indent="6" spacing="normal" pn="section-appendix.c-1">
        <dt pn="section-appendix.c-1.1"><tt>8</tt></dt>
        <dd pn="section-appendix.c-1.2">All components consist of unsigned 8-bit integer samples.</dd>
        <dt pn="section-appendix.c-1.3"><tt>10</tt></dt>
        <dd pn="section-appendix.c-1.4">All components consist of unsigned 10-bit integer samples.</dd>
        <dt pn="section-appendix.c-1.5"><tt>12</tt></dt>
        <dd pn="section-appendix.c-1.6">All components consist of unsigned 12-bit integer samples.</dd>
        <dt pn="section-appendix.c-1.7"><tt>16</tt></dt>
        <dd pn="section-appendix.c-1.8">All components consist of unsigned 16-bit integer samples.</dd>
      </dl>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.d">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="P.-A." surname="Lemieux" fullname="Pierre-Anthony Lemieux" role="editor">
        <organization showOnFrontPage="true">Sandflow Consulting LLC</organization>
        <address>
          <postal>
            <city>San Mateo</city>
            <region>CA</region>
            <country>United States of America</country>
          </postal>
          <email>pal@sandflow.com</email>
        </address>
      </author>
      <author initials="D." surname="Taubman" fullname="David Scott Taubman">
        <organization abbrev="University of New South Wales" showOnFrontPage="true">University of New South Wales</organization>
        <address>
          <postal>
            <city>Sydney</city>
            <country>Australia</country>
          </postal>
          <email>d.taubman@unsw.edu.au</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
