<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. --> encoding="UTF-8"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
    There has to be one entity for each item to be referenced.
    An alternate method (rfc include) is described in the references. -->

<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC3264 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3264.xml">
<!ENTITY RFC3550 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3550.xml">
<!ENTITY RFC3551 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3551.xml">
<!ENTITY RFC3711 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3711.xml">
  <!ENTITY RFC4175 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4175.xml"> nbsp    "&#160;">
  <!ENTITY RFC4585 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4585.xml"> zwsp   "&#8203;">
  <!ENTITY RFC4855 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4855.xml"> nbhy   "&#8209;">
  <!ENTITY RFC5124 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5124.xml">
<!ENTITY RFC6838 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6838.xml">
<!ENTITY RFC7201 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7201.xml">
<!ENTITY RFC7202 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7202.xml">
<!ENTITY RFC8083 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8083.xml">
<!ENTITY RFC8085 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8085.xml">
<!ENTITY RFC8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8866 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8866.xml">
<!ENTITY RFC8888 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8888.xml"> wj     "&#8288;">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
    please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
    (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
    (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->

<rfc category="std" xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-payload-rtp-jpegxs-18" ipr="trust200902">
 <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
       or pre5378Trust200902
    you can add the attributes updates="NNNN" and obsoletes="NNNN"
    they will automatically be output with "(if approved)" -->

 <!-- ***** FRONT MATTER ***** --> number="9134" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" category="std" consensus="true" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">

 <front>
    <title abbrev="RTP Payload Format for JPEG XS">
     RTP Payload Format for ISO/IEC 21122 (JPEG XS)
    </title>
    <seriesInfo name="RFC" value="9134"/>
    <author fullname="S&eacute;bastien Lugan" initials="S.L."
           surname="Lugan"> fullname="Tim Bruylants" initials="T" surname="Bruylants">
      <organization abbrev="intoPIX">intoPIX S.A.</organization>
      <address>
        <postal>
          <street>Rue Emile Francqui, 9</street>
         <city>1435 Mont-Saint-Guibert</city>
          <city>Mont-Saint-Guibert</city>
          <code>1435</code>
          <country>Belgium</country>
        </postal>
        <phone>+32 10 23 84 70</phone>
       <email>rtp@intopix.com</email>
        <email>t.bruylants@intopix.com</email>
        <uri>https://www.intopix.com/</uri>
      </address>
    </author>
    <author fullname="Antonin Descampe" initials="A.D." initials="A" surname="Descampe">
      <organization abbrev="UCL">Universit&eacute; abbrev="UCLouvain">Université catholique de Louvain</organization>
      <address>
        <postal>
         <street>Place du Levant, 3 - bte L5.03.02</street>
         <city>1348 Louvain-la-Neuve</city>
          <extaddr>bte L2.03.02</extaddr>
          <street>Ruelle de la Lanterne Magique, 14</street>
          <city>Louvain-la-Neuve</city>
          <code>1348</code>
          <country>Belgium</country>
        </postal>
        <phone>+32 10 47 25 97</phone> 27 87</phone>
        <email>antonin.descampe@uclouvain.be</email>
       <uri>https://uclouvain.be/en/research-institutes/icteam</uri>
        <uri>https://uclouvain.be/antonin.descampe</uri>
      </address>
    </author>
    <author fullname="Corentin Damman" initials="C.D." initials="C" surname="Damman">
      <organization abbrev="intoPIX">intoPIX S.A.</organization>
      <address>
        <postal>
          <street>Rue Emile Francqui, 9</street>
         <city>1435 Mont-Saint-Guibert</city>
          <city>Mont-Saint-Guibert</city>
          <code>1435</code>
          <country>Belgium</country>
        </postal>
        <phone>+32 10 23 84 70</phone>
        <email>c.damman@intopix.com</email>
        <uri>https://www.intopix.com/</uri>
      </address>
    </author>
    <author fullname="Thomas Richter" initials="T.R." initials="T" surname="Richter">
      <organization abbrev="IIS">Fraunhofer abbrev="Fraunhofer IIS">Fraunhofer IIS</organization>
      <address>
        <postal>
          <street>Am Wolfsmantel 33</street>
         <city>91048 Erlangen</city>
          <city>Erlangen</city>
          <code>91048</code>
          <country>Germany</country>
        </postal>
        <phone>+49 9131 776 5126</phone>
        <email>thomas.richter@iis.fraunhofer.de</email>
        <uri>https://www.iis.fraunhofer.de/</uri>
      </address>
    </author>

   <author fullname="Tim Bruylants" initials="T.B."
           surname="Bruylants">
     <organization abbrev="intoPIX">intoPIX S.A.</organization>
     <address>
       <postal>
         <street>Rue Emile Francqui, 9</street>
         <city>1435 Mont-Saint-Guibert</city>
         <country>Belgium</country>
       </postal>
       <phone>+32 10 23 84 70</phone>
       <email>t.bruylants@intopix.com</email>
       <uri>https://www.intopix.com/</uri>
     </address>
   </author>
    <date year="2021" month="October" />

   <!-- If the month and year are both specified and are the current ones, xml2rfc will fill
        in the current day for you. If only the current year is specified, xml2rfc will fill
        in the current day and month for you. If the year is not the current one, it is
        necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the
        purpose of calculating the expiry date). With drafts it is normally sufficient to
        specify just the year. -->

   <!-- Meta-data Declarations -->

   <area>General</area>
    <workgroup>avtcore</workgroup>
<!--
   <workgroup>Internet Engineering Task Force</workgroup>
-->

   <!-- WG name at the upperleft corner of the doc,
        IETF is fine for individual submissions.
        If this element is not present, the default is "Network Working Group",
        which is used by the RFC Editor as a nod to the history of the IETF. -->

   <keyword>template</keyword>

   <!-- Keywords will be incorporated into HTML output
        files in a meta tag but they have no effect on text or nroff
        output. If you submit your draft to the RFC Editor, the
        keywords will be used for the search engine. -->

    <keyword>video</keyword>
    <keyword>transport</keyword>
    <keyword>protocol</keyword>
    <keyword>Joint</keyword>
    <keyword>Photographic</keyword>
    <keyword>Experts</keyword>
    <keyword>Group</keyword>
    <keyword>real-time</keyword>
    <keyword>stream</keyword>
   <abstract>

      <t>
       This document specifies a Real-Time Transport Protocol (RTP) payload
       format to be used for transporting video encoded with JPEG XS (ISO/IEC 21122) encoded video. 21122).
       JPEG XS is a low-latency, lightweight image coding system. Compared to an
       uncompressed video use case, it allows higher resolutions and video frame
       rates,
       rates while offering visually lossless quality, reduced power
       consumption, and encoding-decoding latency confined to a fraction of a video frame.
      </t>
   </abstract>
 </front>
  <middle>
    <section title="Introduction"> numbered="true" toc="default">
      <name>Introduction</name>
      <t>
       This document specifies a payload format for packetization of
       <xref target="ISO21122-1">JPEG XS</xref> encoded video
       signals encoded with <xref target="ISO21122-1" format="default">JPEG
       XS</xref> into the <xref target="RFC3550">Real-time target="RFC3550" format="default">Real-time
       Transport Protocol (RTP)</xref>.
      </t>
      <t>
       The JPEG XS coding system offers compression and recompression of image
       sequences with very moderate computational resources while remaining
       robust under multiple compression and decompression cycles and as well as mixing of
       content sources, e.g. e.g., embedding of subtitles, overlays overlays, or logos. Typical
       target compression ratios ensuring visually lossless quality are in the
       range of 2:1 to 10:1, 10:1 depending on the nature of the source material. The
       latency that is introduced by the encoding-decoding process can be confined
       to a fraction of a video frame, typically between a small number of lines
       down to below a single line.
      </t>
    </section>
    <section title="Conventions, numbered="true" toc="default">
      <name>Conventions, Definitions, and Abbreviations"> Abbreviations</name>
      <t>
         The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
         "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", "<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 "OPTIONAL" "<bcp14>OPTIONAL</bcp14>" in this document
         are to be interpreted as described in BCP 14 BCP&nbsp;14 <xref target="RFC2119" />
         format="default"/> <xref target="RFC8174" /> format="default"/> when,
         and only when, they appear in all capitals, as shown here.
      </t>
       <t>
       <list style="hanging">
         <t hangText="Application

      <dl newline="true" spacing="normal">
        <dt>Application Data Unit (ADU)"><vspace /> (ADU):</dt>
        <dd>
           The unit of source data provided as payload to the transport layer,
           and corresponding, in layer.
           In this RTP payload definition, it corresponds to a single JPEG
           XS video frame.
         </t>

         <t hangText="Color specification box (CS box)"><vspace />
        </dd>
        <dt>Color Specification (CS) box:</dt>
        <dd>
           An ISO color specification box defined in <xref
           target="ISO21122-3">JPEG target="ISO21122-3"
           format="default"/> (JPEG XS Part 3</xref> 3) that includes
           color related color-related
           metadata required to correctly display JPEG XS video frames, such
           as color primaries, transfer characteristics characteristics, and matrix
           coefficients.
         </t>

         <t hangText="EOC marker"><vspace />
        </dd>
        <dt>End of Codestream (EOC) marker:</dt>
        <dd>
	    A marker that consists of the two bytes 0xff11 indicating the end of
	      a JPEG XS codestream.
         </t>

         <t hangText="JPEG
        </dd>
        <dt>JPEG XS codestream"><vspace /> codestream:</dt>
        <dd>
           A sequence of bytes representing a compressed image formatted
           according to <xref target="ISO21122-1">JPEG target="ISO21122-1" format="default"/> (JPEG XS Part 1</xref>.
         </t>

         <t hangText="JPEG 1).
        </dd>
        <dt>JPEG XS codestream header"><vspace /> header:</dt>
        <dd>
           A sequence of bytes, starting with a an SOC marker, at the beginning of
           each JPEG XS codestream encoded in multiple markers and marker
           segments that does not carry entropy coded data, but metadata such as
           the video frame dimension and component precision.
         </t>

         <t hangText="JPEG
        </dd>
        <dt>JPEG XS frame"><vspace /> frame:</dt>
        <dd>
           In the case of progressive video, a single JPEG XS picture segment. In
           the case of interlaced video, the concatenation of two JPEG XS
           picture segments.
         </t>

         <t hangText="JPEG
        </dd>
        <dt>JPEG XS header segment"><vspace /> segment:</dt>
        <dd>
           The concatenation of a <xref target="ISO21122-3">video target="ISO21122-3"
           format="default">video support box</xref>, a <xref target="ISO21122-3">color
           target="ISO21122-3" format="default">color specification
           box</xref>, and a JPEG XS codestream header.
         </t>

         <t hangText="JPEG
        </dd>
        <dt>JPEG XS picture segment"><vspace /> segment:</dt>
        <dd>
           The concatenation of a <xref target="ISO21122-3">video target="ISO21122-3"
           format="default">video support box</xref>, a <xref target="ISO21122-3">color
           target="ISO21122-3" format="default">color specification
           box</xref>, and a JPEG XS codestream.
         </t>

         <t hangText="JPEG
        </dd>
        <dt>JPEG XS stream"><vspace /> stream:</dt>
        <dd>
           A sequence of JPEG XS frames.
         </t>

         <t hangText="Marker"><vspace />
        </dd>
        <dt>Marker:</dt>
        <dd>
           A two-byte functional sequence that is part of a JPEG XS
           codestream starting with a 0xff byte and a subsequent byte
           defining its function.
         </t>

         <t hangText="Marker segment"><vspace />
        </dd>
        <dt>Marker segment:</dt>
        <dd>
           A marker along with a 16-bit marker size and payload data
           following the size.
         </t>

         <t hangText="Packetization unit"><vspace />
        </dd>
        <dt>Packetization unit:</dt>
        <dd>
           A portion of an Application Data Unit ADU whose boundaries coincide
           with boundaries of RTP packet payloads (excluding payload header),
           i.e.
           i.e., the first (resp. (or respectively, last) byte of a packetization unit is the
           first (resp. (or respectively, last) byte of an RTP packet payload (excluding its
           payload header).
         </t>

         <t hangText="SLH marker"><vspace />
        </dd>
         <dt>SLH (SLice Header) marker:</dt>

        <dd>
           A marker that represents a slice header, as defined in <xref
           target="ISO21122-1" />.
         </t>

         <t hangText="Slice"><vspace /> format="default"/>.
        </dd>
        <dt>Slice:</dt>
        <dd>
           The smallest independently decodable unit of a JPEG XS codestream,
           bearing in mind that it decodes to wavelet coefficients coefficients, which
           still require inverse wavelet filtering to give an image.
         </t>

         <t hangText="SOC marker"><vspace />
        </dd>
        <dt>Start of a Codestream (SOC) marker:</dt>
        <dd>
           A marker that consists of the two bytes 0xff10 indicating the
           start of a JPEG XS codestream. The SOC marker is considered an
           integral part of the JPEG XS codestream header.
         </t>

         <t hangText="Video support box (VS box)"><vspace />
        </dd>
        <dt>Video Support (VS) box:</dt>
        <dd>
           An ISO video support box, as defined in <xref target="ISO21122-3" />, format="default"/>,
           that includes metadata required to play back a JPEG XS
           stream,
           stream; such as metadata could include its maximum bitrate, bit rate, its subsampling structure, its
           buffer model model, and its frame rate.
         </t>

       </list>
       </t>
        </dd>
      </dl>
    </section>
    <section title="Media numbered="true" toc="default">
      <name>Media Format Description"> Description</name>
      <t>
       This section explains the terminology and concepts used in this memo that are specific to JPEG XS
       as specified in <xref target="ISO21122-1" />, format="default"/>, <xref target="ISO21122-2" />, format="default"/>, and <xref target="ISO21122-3" />. format="default"/>.
      </t>
      <section title="Image numbered="true" toc="default">
        <name>Image Data Structures">
       <!-- FIXME --> Structures</name>

       <t>
         JPEG XS is a low-latency low-latency, lightweight image coding system for coding
         continuous-tone grayscale or continuous-tone color digital images.
       </t>
        <t>
         This coding system provides an efficient representation of image
         signals through the mathematical tool of wavelet analysis. The wavelet
         filter process separates each component into multiple bands, where
         each band consists of multiple coefficients describing the image
         signal of a given component within a frequency domain specific to the
         wavelet filter type, i.e. i.e., the particular filter corresponding to the
         band.
        </t>
        <t>
         Wavelet coefficients are grouped into precincts, where each precinct
         includes all coefficients over all bands that contribute to a spatial
         region of the image.
        </t>
        <t>
         One or multiple precincts are furthermore combined into slices
         consisting of an integer number of precincts. Precincts do not
         cross slice boundaries, and wavelet coefficients in precincts that
         are part of different slices can be decoded independently of each
         other. Note, however, However, note that the wavelet transformation runs across
         slice boundaries. A slice always extends over the full width of the
         image,
         image but may only cover parts of its height.
        </t>
      </section>
      <section title="Codestream"> numbered="true" toc="default">
        <name>Codestream</name>
        <t>
         A JPEG XS codestream is formed by (in the given order):
         <list style="symbols">
           <t>a
        </t>
        <ul spacing="normal">
          <li>a JPEG XS codestream header, which starts with an SOC marker,</t>
           <t>one a Start of Codestream (SOC) marker,</li>
          <li>one or more slices,</t>
           <t>an slices,</li>
          <li>an EOC marker to signal the end of the codestream.</t>
         </list>
       </t> codestream.</li>
        </ul>
        <t>
         The JPEG XS codestream format, including the definition of all
         markers, is further defined in <xref target="ISO21122-1" />. format="default"/>.
         It represents sample values of a single image, without any interpretation
         relative to a color space.
        </t>
      </section>
      <section title="Video support box numbered="true" toc="default">
        <name>Video Support Box and color specification box"> Color Specification Box</name>
        <t>
         While the information defined in the codestream is sufficient to
         reconstruct the sample values of one image, the interpretation of
         the samples remains undefined by the codestream itself. This
         interpretation is given by the video support box and the color
         specification box box, which contain significant information to correctly
         play the JPEG XS stream. The layout and syntax of these boxes, together
         with their content, are defined in <xref target="ISO21122-3" />. format="default"/>.
        </t>
        <t>
         The video support box provides information on the maximum bitrate, bit rate,
         the frame rate, the interlaced mode (progressive or interlaced), the
         subsampling image format, the informative timecode of the current
         JPEG XS frame, the profile, the level/sublevel used, and optionally on
         the buffer model and the mastering display metadata.
        </t>
        <t>
         Note that the profile and level/sublevel, specified by respectively by
         the <xref target="ISO21122-2">Ppih target="ISO21122-2" format="default">Ppih and Plev
         fields</xref>, specify limits on the capabilities needed to decode
         the codestream and handle the output. Profiles represent a limit on
         the required algorithmic features and parameter ranges used in the
         codestream.  The combination of level and sublevel defines a lower
         bound on the required throughput for a decoder in respectively the
         image (or decoded) domain and the codestream (or coded) domain. domain, respectively. The
         actual defined profiles and levels/sublevels, along with the
         associated values for the Ppih and Plev fields, are defined in <xref
         target="ISO21122-2" />. format="default"/>.
        </t>
        <t>
         The color specification box indicates the color primaries, transfer
         characteristics, matrix coefficients coefficients, and video full range flag needed
         to specify the color space of the video stream.
        </t>
      </section>
      <section title="JPEG numbered="true" toc="default">
        <name>JPEG XS Frame"> Frame</name>
        <t>
         The concatenation of a video support box, a color specification box,
         and a JPEG XS codestream forms a JPEG XS picture segment.
        </t>
        <t>
	   In the case of a progressive video stream, each JPEG XS frame consists of one single
         JPEG XS picture segment.
        </t>
        <t>
         In the case of an interlaced video stream, each JPEG XS frame is made
         of two concatenated JPEG XS picture segments. The codestream of each
         picture segment corresponds exclusively to one of the two fields of
         the interlaced frame. Both picture segments
         SHALL <bcp14>SHALL</bcp14>
         contain identical boxes (i.e. (i.e., the byte sequence that contains the
         concatenation of the video support box and the color specification
         box is byte exact exactly the same for in both picture segments of the frame).
        </t>

        <t>
         Note that the interlaced mode, as signaled by the <xref target="ISO21122-3">frat target="ISO21122-3" format="default">frat field</xref>
         in the video support box, indicates either progressive, progressive interlaced top-field first, top-field-first or
         interlaced bottom-field first bottom-field-first mode. Thus, in the case of interlaced content, its value
         SHALL
         <bcp14>SHALL</bcp14> also be identical in both picture segments.
        </t>
      </section>
    </section>

    <section title="RTP numbered="true" toc="default">
      <name>RTP Payload Format"> Format</name>
      <t>
       This section specifies the payload format for JPEG XS streams over the
       <xref target="RFC3550">Real-time target="RFC3550" format="default">Real-time Transport Protocol
       (RTP)</xref>.
      </t>
      <t>
       In order to be transported over RTP, each JPEG XS stream is
       transported in a distinct RTP stream, identified by a distinct <xref target="RFC3550">Synchronization target="RFC3550" format="default">synchronization source (SSRC)</xref>.
      </t>
      <t>
       A JPEG XS stream is divided into Application Data Units (ADUs), each ADU
       corresponding to a single JPEG XS frame.
      </t>
      <section title="RTP packetization" anchor="rtp_packet"> anchor="rtp_packet" numbered="true" toc="default">
        <name>RTP Packetization</name>

        <t>
        An ADU is made of several packetization units. If a packetization unit
        is bigger than the maximum size of an RTP packet payload, the unit is
        split into multiple RTP packet payloads, as illustrated in <xref
        target="rtp_packetization" />. format="default"/>. As seen there, each
        packet SHALL <bcp14>SHALL</bcp14> contain (part of) one one, and only one one,
        packetization unit. A packetization unit may extend over multiple
        packets. The payload of every packet
        SHALL <bcp14>SHALL</bcp14> have the
        same size (based e.g. (based, e.g., on the Maximum Transfer Unit of the network), except (possibly) network)
        with the possible exception of the last packet of a packetization unit. The
        boundaries of a packetization unit SHALL <bcp14>SHALL</bcp14> coincide with
        the boundaries of the payload of a packet (excluding the payload
        header),
        i.e. i.e., the first (resp. (or, respectively, last) byte of the
        packetization unit SHALL <bcp14>SHALL</bcp14> be the first (resp. (or, respectively,
        last) byte of the payload (excluding its header).
        </t>

        <figure anchor="rtp_packetization" title="Example anchor="rtp_packetization">
          <name>Example of ADU packetization">
       <artwork><![CDATA[ Packetization</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
RTP        +-----+------------------------+
Packet #1  | Hdr | Packetization unit #1  |
           +-----+------------------------+
RTP        +-----+--------------------------------------+
Packet #2  | Hdr | Packetization unit #2                |
           +-----+--------------------------------------+
RTP        +-----+--------------------------------------------------+
Packet #3  | Hdr | Packetization unit #3  (part 1/3)                |
           +-----+--------------------------------------------------+
RTP        +-----+--------------------------------------------------+
Packet #4  | Hdr | Packetization unit #3  (part 2/3)                |
           +-----+--------------------------------------------------+
RTP        +-----+----------------------------------------------+
Packet #5  | Hdr | Packetization unit #3  (part 3/3)            |
           +-----+----------------------------------------------+
             ...
RTP        +-----+-----------------------------------------+
Packet #P  | Hdr | Packetization unit #N  (part q/q)       |
           +-----+-----------------------------------------+
       ]]></artwork>
        </figure>
        <t>
        There are two different packetization modes defined for this RTP payload format.
        <list style="numbers">
          <t>Codestream
        </t>

<dl newline="true">
<dt>Codestream packetization mode: in
</dt>
<dd>In this mode, the packetization unit
          SHALL <bcp14>SHALL</bcp14> be the entire
JPEG XS picture segment (i.e. (i.e., codestream preceded by boxes). This means that
a progressive frame will have a single packetization unit, while an interlaced
frame will have two. The progressive case is illustrated in <xref
target="cs_packetization" />.
          </t>

          <t>Slice format="default"/>.
</dd>

<dt>Slice packetization mode: in
</dt>
<dd>In this mode, the packetization unit
          SHALL <bcp14>SHALL</bcp14> be the slice, i.e.
i.e., there SHALL <bcp14>SHALL</bcp14> be data from no more than one slice per RTP
packet. The first packetization unit SHALL <bcp14>SHALL</bcp14> be made of the JPEG
XS header segment (i.e. (i.e., the concatenation of the VS box, the CS box box, and the
JPEG XS codestream header). This first unit is then followed by successive
units, each containing one and only one slice.  The packetization unit
containing the last slice of a JPEG XS codestream SHALL <bcp14>SHALL</bcp14> also
contain the EOC marker immediately following this last slice. This is
illustrated in <xref target="slice_packetization" />. format="default"/>. In the
case of an interlaced frame, the JPEG XS header segment of the second field SHALL
<bcp14>SHALL</bcp14> be in its own packetization unit.
          </t>
       </list>
      </t>
</dd>

</dl>

        <figure anchor="cs_packetization" title="Example anchor="cs_packetization">
          <name>Example of codestream packetization mode">
       <artwork><![CDATA[ Codestream Packetization Mode</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
RTP        +-----+--------------------------------------------------+
Packet #1  | Hdr | VS box + CS box + JPEG XS codestream (part 1/q)  |
           +-----+--------------------------------------------------+
RTP        +-----+--------------------------------------------------+
Packet #2  | Hdr | JPEG XS codestream (part 2/q)                    |
           +-----+--------------------------------------------------+
             ...
RTP        +-----+--------------------------------------+
Packet #P  | Hdr | JPEG XS codestream (part q/q)        |
           +-----+--------------------------------------+
       ]]></artwork>
        </figure>
        <figure anchor="slice_packetization" title="Example anchor="slice_packetization">
          <name>Example of slice packetization mode">
       <artwork><![CDATA[ Slice Packetization Mode</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
RTP        +-----+----------------------------+
Packet #1  | Hdr | JPEG XS header segment     |
           +-----+----------------------------+
RTP        +-----+--------------------------------------------------+
Packet #2  | Hdr | Slice #1  (part 1/2)                             |
           +-----+--------------------------------------------------+
RTP        +-----+-------------------------------------------+
Packet #3  | Hdr | Slice #1  (part 2/2)                      |
           +-----+-------------------------------------------+
RTP        +-----+--------------------------------------------------+
Packet #4  | Hdr | Slice #2  (part 1/3)                             |
           +-----+--------------------------------------------------+
             ...
RTP        +-----+---------------------------------------+
Packet #P  | Hdr | Slice #N  (part q/q) + EOC marker     |
           +-----+---------------------------------------+
       ]]></artwork>
        </figure>
        <t>
        In a constant bit-rate bitrate (CBR) scenario of JPEG XS, the codestream packetization
        mode guarantees that a JPEG XS RTP stream will produce both a constant number
        of bytes per video frame, frame and a constant number of RTP packets per video frame.
        However, to provide similar guarantees with JPEG XS in a variable bit-rate bitrate (VBR)
        mode or when using the slice packetization mode (for either CBR or VBR), additional
        mechanisms are needed. This can involve a constraint at the rate allocation
        stage in the JPEG XS encoder to impose a constant bit-rate CBR at the slice level,
        the usage of padding data, or the insertion of empty RTP packets (i.e. (i.e., an RTP
        packet whose payload data is empty). But, management of the amount of produced
        packets per video frame is application dependent and not a strict requirement of
        this RTP payload specification.
        </t>
      </section>
      <section title="RTP anchor="rtp_hdr" numbered="true" toc="default">
        <name>RTP Header Usage" anchor="rtp_hdr"> Usage</name>
        <t>
        The format of the RTP header is specified in <xref target="RFC3550" /> format="default"/> and
        reprinted in <xref target="rtp_header" /> format="default"/> for
        convenience. This RTP payload format uses the fields of the header in a
        manner consistent with that specification.
        </t>
        <t>
        The RTP payload (and the settings for some RTP header bits) for
        packetization units are specified in <xref target="payload_hdr" />. format="default"/>.
        </t>

        <figure anchor="rtp_header" title="RTP header according anchor="rtp_header">
          <name>RTP Header According to RFC 3550">
       <artwork><![CDATA[ 3550</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | V |P|X|
   |V=2|P|X|  CC   |M|     PT      |       sequence number         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           timestamp                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           synchronization source (SSRC) identifier            |
   +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
   |            contributing source (CSRC) identifiers             |
   |                             ....                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       ]]></artwork>
        </figure>
        <t>
        The version (V), padding (P), extension (X), CSRC count (CC),
        sequence number, synchronization source (SSRC) (SSRC), and contributing
        source (CSRC) fields follow their respective definitions in
        <xref target="RFC3550" />. format="default"/>.
        </t>
        <t>
        The remaining RTP header information to be set according to this RTP
        payload format is set as follows:
        </t>
      <t>
      <list style="hanging">
       <t hangText="Marker
        <dl newline="true" spacing="normal">
          <dt>Marker (M) [1 bit]:"><vspace /><vspace /> bit]:</dt>
          <dd>
            <t>
         If progressive scan video is being transmitted, the marker bit
         denotes the end of a video frame. If interlaced video is being
         transmitted, it denotes the end of the field. The marker bit SHALL <bcp14>SHALL</bcp14>
         be set to 1 for the last packet of the video frame/field. It SHALL <bcp14>SHALL</bcp14>
         be set to 0 for all other packets.
            </t>
       <t hangText="Payload
          </dd>
          <dt>Payload Type (PT) [7 bits]:"><vspace /><vspace />
         A bits]:</dt>
          <dd>
            <t>
         The payload type is a dynamically allocated payload type field that
         designates the payload as JPEG XS video.
            </t>
       <t hangText="Timestamp
          </dd>
          <dt>Timestamp [32 bits]:"><vspace /><vspace /> bits]:</dt>
          <dd>
            <t>
         The RTP timestamp is set to the sampling timestamp of the content.
         A 90 kHz clock rate SHALL <bcp14>SHALL</bcp14> be used.<vspace /><vspace /> used.</t>
            <t>

         As specified in <xref target="RFC3550" /> format="default"/> and
         <xref target="RFC4175" />, format="default"/>, the RTP timestamp designates the
         sampling instant of the first octet of the video frame to which the RTP
         packet belongs. Packets SHALL NOT <bcp14>SHALL NOT</bcp14> include data from multiple video frames, and
         all packets belonging to the same video frame SHALL <bcp14>SHALL</bcp14> have the same timestamp.
         Several successive RTP packets will consequently have equal timestamps
         if they belong to the same video frame (that is until the marker bit is set
         to 1, marking the last packet of the video frame), and the timestamp is only
         increased when a new video frame begins.<vspace /><vspace /> begins.</t>
            <t>

         If the sampling instant does not correspond to an integer value of
         the clock, the value SHALL <bcp14>SHALL</bcp14> be truncated to the next lowest integer,
         with no ambiguity.
            </t>
      </list>
      </t>
          </dd>
        </dl>
      </section>
      <section title="Payload anchor="payload_hdr" numbered="true" toc="default">
        <name>Payload Header Usage" anchor="payload_hdr"> Usage</name>

        <t>
         The first four bytes of the payload of an RTP packet in this RTP
         payload format are referred to as the payload header. "payload header". <xref target="payload_header" /> format="default"/> illustrates the structure of this
         payload header.
        </t>
        <figure anchor="payload_header" title="Payload header">
        <artwork><![CDATA[ anchor="payload_header">
          <name>Payload Header</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |T|K|L| I |F counter|     SEP counter     |     P counter       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        ]]></artwork>
        </figure>
        <t>
         The payload header consists of the following fields:
        </t>
       <t>
       <list style="hanging">
       <t hangText="Transmission
        <dl newline="true" spacing="normal">
          <dt>Transmission mode (T) [1 bit]:"><vspace /><vspace /> bit]:</dt>
          <dd>
            <t>
         The T bit is set to indicate that packets are sent sequentially by the
         transmitter. This information allows a receiver to dimension its
         input buffer(s) accordingly. If T=0, nothing can be assumed about the
         transmission order and packets may be sent out-of-order out of order by the
         transmitter. If T=1, packets SHALL <bcp14>SHALL</bcp14> be sent sequentially by the
         transmitter. The T bit T-bit value SHALL <bcp14>SHALL</bcp14> be identical for all packets of
         the RTP stream.
            </t>
       <t hangText="pacKetization
          </dd>
          <dt>pacKetization mode (K) [1 bit]:"><vspace /><vspace /> bit]:</dt>
          <dd>
            <t>
         The K bit is set to indicate which packetization mode is used. K=0
         indicates codestream packetization mode, while K=1 indicates slice
         packetization mode. In the case that the Transmission mode (T) is
         set to 0 (out-of-order), (out of order), the slice packetization mode SHALL <bcp14>SHALL</bcp14> be used
         and K SHALL <bcp14>SHALL</bcp14> be set to 1. This is required, required because only the slice
         packetization mode supports out-of-order packet transmission. The
         K bit
         K-bit value SHALL <bcp14>SHALL</bcp14> be identical for all packets of the RTP stream.
            </t>
       <t hangText="Last
          </dd>
          <dt>Last (L) [1 bit]:"><vspace /><vspace /> bit]:</dt>
          <dd>
            <t>
         The L bit is set to indicate the last packet of a packetization unit.
         As the end of the video frame also ends the packet containing the last unit
         of the video frame, the L bit is set whenever the M bit is set. In
         the codestream packetization mode mode, the L bit and M bit get an equivalent
         meaning, so they SHALL <bcp14>SHALL</bcp14> have identical values in each packet.
            </t>
       <t hangText="Interlaced
          </dd>
          <dt>Interlaced information (I) [2 bit]:"><vspace /><vspace /> bits]:</dt>
          <dd>
            <t>
         These two I bits are used to indicate how the JPEG XS frame is scanned
         (progressive or interlaced). In case of an interlaced frame, they also
         indicate which JPEG XS picture segment the payload is part of (first
         or second).
         <list>
           <t hangText="00:">
            </t>
            <dl newline="false" spacing="normal" indent='6'>
              <dt>00:</dt>
              <dd>
             The payload is progressively scanned.
           </t>
           <t hangText="01:">
             Reserved
              </dd>
              <dt>01:</dt>
              <dd>
             This value is reserved for future use.
           </t>
           <t hangText="10:">
              </dd>
              <dt>10:</dt>
              <dd>
             The payload is part of the first JPEG XS picture segment of
             an interlaced video frame. The height specified in the included
             JPEG XS codestream header is half of the height of the entire
             displayed image.
            </t>
            <t hangText="11:">
              </dd>
              <dt>11:</dt>
              <dd>
             The payload is part of the second JPEG XS picture segment of
             an interlaced video frame. The height specified in the included
             JPEG XS codestream header is half of the height of the entire
             displayed image.
           </t>
         </list>
       </t>
       <t hangText="F
              </dd>
            </dl>
          </dd>
          <dt>F counter [5 bits]:"><vspace /><vspace /> bits]:</dt>
          <dd>
            <t>
         The frame Frame (F) counter identifies the video frame number modulo 32 to which a
         packet belongs. Frame numbers are incremented by 1 for each video frame
         transmitted. The frame number, in addition to the timestamp, may help
         the decoder manage its input buffer and bring packets back into their
         natural order.
            </t>
       <t hangText="SEP counter [11 bits]:"><vspace /><vspace />
         The Slice
          </dd>
          <dt>Slice and Extended Packet (SEP) counter [11 bits]:</dt>
          <dd>
            <t>
         The SEP counter is used differently
         depending on the packetization mode.
         <list style="symbols">
          <t>In
            </t>
            <ul spacing="normal">
              <li>In the case of codestream packetization mode (K=0), this
              counter resets whenever the Packet counter resets (see <xref
              target="rtp_payload_data" />), format="default"/>) and increments by
              1 whenever the Packet counter overruns.
          </t>

          <t>In
              </li>
              <li>In the case of slice packetization mode (K=1), this counter
          identifies the slice modulo 2047 to which the packet contributes. If
          the data belongs to the JPEG XS header segment, this field SHALL <bcp14>SHALL</bcp14> have
          its maximal value, namely 2047 = 0x07ff. Otherwise, it is the slice
          index modulo 2047. Slice indices are counted from 0 (corresponding to
          the top of the video frame).
          </t>
         </list>
       </t>
       <t hangText="P
              </li>
            </ul>
          </dd>
          <dt>P counter [11 bits]:"><vspace /><vspace /> bits]:</dt>
          <dd>
            <t>
         The packet Packet (P) counter identifies the packet number modulo 2048
         within the current packetization unit. It is set to 0 at the start of
         the packetization unit and incremented by 1 for every subsequent
         packet (if any) belonging to the same unit. Practically, if
         codestream packetization mode is enabled, this field counts the
         packets within a JPEG XS picture segment and is extended by the SEP
         counter when it overruns. If slice packetization mode is enabled,
         this field counts the packets within a slice or within the JPEG XS
         header segment.
            </t>
       </list>
       </t>
          </dd>
        </dl>
      </section>
      <section title="Payload Data" anchor="rtp_payload_data"> anchor="rtp_payload_data" numbered="true" toc="default">
        <name>Payload Data</name>

        <t>
       The payload data of a JPEG XS RTP stream consists of a concatenation of
       multiple JPEG XS frames. Within the RTP stream, all of the video support boxes
       and all of the color specification boxes SHALL <bcp14>SHALL</bcp14> retain their respective layouts
       for each JPEG XS frame. Thus, each video support box in the RTP stream SHALL <bcp14>SHALL</bcp14>
       define the same sub boxes. The effective values in the boxes are allowed to
       change under the condition that their relative byte offsets SHALL NOT <bcp14>SHALL NOT</bcp14> change.
        </t>
        <t>
       Each JPEG XS frame is the concatenation of one or more packetization
       unit(s), as explained in <xref target="rtp_packet" />. format="default"/>.
       <xref target="rtp_cs_progressive_packet_data" /> format="default"/> depicts this
       layout for a progressive video frame in the codestream packetization mode,
       <xref target="rtp_cs_interlaced_packet_data" /> format="default"/> depicts this
       layout for an interlaced video frame in the codestream packetization mode,
       <xref target="rtp_slice_progressive_packet_data" /> format="default"/> depicts this
       layout for a progressive video frame in the slice packetization mode mode, and
       <xref target="rtp_slice_interlaced_packet_data" /> format="default"/> depicts this
       layout for an interlaced video frame in the slice packetization mode. The Frame
       counter value is not indicated because the value is constant for all
       packetization units of a given video frame.
        </t>
        <figure anchor="rtp_cs_progressive_packet_data" title="Example anchor="rtp_cs_progressive_packet_data">
          <name>Example of JPEG XS Payload Data (codestream packetization mode, progressive video frame)">
       <artwork><![CDATA[ (Codestream Packetization
          Mode, Progressive Video Frame)</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
+=====[ Packetization unit (PU) #1 ]====+
|           Video support box           |  SEP counter=0
|  +---------------------------------+  |  P counter=0
|  :      Sub boxes of the VS box    :  |
|  +---------------------------------+  |
+- - - - - - - - - - - - - - - - - - - -+
|        Color specification box        |
|  +---------------------------------+  |
|  :      Fields of the CS box       :  |
|  +---------------------------------+  |
+- - - - - - - - - - - - - - - - - - - -+
|          JPEG XS codestream           |
:             (part 1/q)                :  M=0, K=0, L=0, I=00
+---------------------------------------+
|          JPEG XS codestream           |  SEP counter=0
|             (part 2/q)                |  P counter=1
:                                       :  M=0, K=0, L=0, I=00
+---------------------------------------+
|          JPEG XS codestream           |  SEP counter=0
|             (part 3/q)                |  P counter=2
:                                       :  M=0, K=0, L=0, I=00
+---------------------------------------+
:                                       :
+---------------------------------------+
|          JPEG XS codestream           |  SEP counter=1
|            (part 2049/q)              |  P counter=0
:                                       :  M=0, K=0, L=0, I=00
+---------------------------------------+
:                                       :
+---------------------------------------+
|          JPEG XS codestream           |  SEP counter=(q-1) div 2048
|             (part q/q)                |  P counter=(q-1) mod 2048
:                                       :  M=1, K=0, L=1, I=00
+=======================================+
        ]]></artwork>
        </figure>

      <t><vspace blankLines='100' /></t>
        <t/>
        <figure anchor="rtp_cs_interlaced_packet_data" title="Example anchor="rtp_cs_interlaced_packet_data">
          <name>Example of JPEG XS Payload Data (codestream packetization mode, interlaced video frame)">
       <artwork><![CDATA[ (Codestream Packetization Mode, Interlaced Video Frame)</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
+=====[ Packetization unit (PU) #1 ]====+
|           Video support box           |  SEP counter=0
+- - - - - - - - - - - - - - - - - - - -+  P counter=0
|        Color specification box        |
+- - - - - - - - - - - - - - - - - - - -+
|     JPEG XS codestream (1st field)    |
:             (part 1/q)                :  M=0, K=0, L=0, I=10
+---------------------------------------+
|     JPEG XS codestream (1st field)    |  SEP counter=0
|             (part 2/q)                |  P counter=1
:                                       :  M=0, K=0, L=0, I=10
+---------------------------------------+
:                                       :
+---------------------------------------+
|     JPEG XS codestream (1st field)    |  SEP counter=1
|            (part 2049/q)              |  P counter=0
:                                       :  M=0, K=0, L=0, I=10
+---------------------------------------+
:                                       :
+---------------------------------------+
|     JPEG XS codestream (1st field)    |  SEP counter=(q-1) div 2048
|             (part q/q)                |  P counter=(q-1) mod 2048
:                                       :  M=1, K=0, L=1, I=10
+===============[ PU #2 ]===============+
|           Video support box           |  SEP counter=0
+- - - - - - - - - - - - - - - - - - - -+  P counter=0
|        Color specification box        |
+- - - - - - - - - - - - - - - - - - - -+
|     JPEG XS codestream (2nd field)    |
|             (part 1/q)                |
:                                       :  M=0, K=0, L=0, I=11
+---------------------------------------+
|     JPEG XS codestream (2nd field)    |  SEP counter=0
|             (part 2/q)                |  P counter=1
:                                       :  M=0, K=0, L=0, I=11
+---------------------------------------+
:                                       :
+---------------------------------------+
|     JPEG XS codestream (2nd field)    |  SEP counter=(q-1) div 2048
|             (part q/q)                |  P counter=(q-1) mod 2048
:                                       :  M=1, K=0, L=1, I=11
+=======================================+
        ]]></artwork>
        </figure>

      <t><vspace blankLines='100' /></t>
        <t/>
        <figure anchor="rtp_slice_progressive_packet_data" title="Example anchor="rtp_slice_progressive_packet_data">
          <name>Example of JPEG XS Payload Data (slice packetization mode, progressive video frame)">
       <artwork><![CDATA[ (Slice Packetization Mode, Progressive Video Frame)</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
+===[ PU #1: JPEG XS Header segment ]===+
|           Video support box           |  SEP counter=0x07FF
+- - - - - - - - - - - - - - - - - - - -+  P counter=0
|        Color specification box        |
+- - - - - - - - - - - - - - - - - - - -+
|      JPEG XS codestream header        |
|  +---------------------------------+  |
|  :  Markers and marker segments    :  |
|  +---------------------------------+  |  M=0, T=0, K=1, L=1, I=00
+==========[ PU #2: Slice #1 ]==========+
|  +---------------------------------+  |  SEP counter=0
|  |           SLH Marker            |  |  P counter=0
|  +---------------------------------+  |
|  :       Entropy Coded Data        :  |
|  +---------------------------------+  |  M=0, T=0, K=1, L=1, I=00
+==========[ PU #3: Slice #2 ]==========+
|               Slice #2                |  SEP counter=1
|              (part 1/q)               |  P counter=0
:                                       :  M=0, T=0, K=1, L=0, I=00
+---------------------------------------+
|               Slice #2                |  SEP counter=1
|              (part 2/q)               |  P counter=1
:                                       :  M=0, T=0, K=1, L=0, I=00
+---------------------------------------+
:                                       :
+---------------------------------------+
|               Slice #2                |  SEP counter=1
|              (part q/q)               |  P counter=q-1
:                                       :  M=0, T=0, K=1, L=1, I=00
+=======================================+
:                                       :
+========[ PU #N: Slice #(N-1) ]========+
|             Slice #(N-1)              |  SEP counter=N-2
|              (part 1/r)               |  P counter=0
:                                       :  M=0, T=0, K=1, L=0, I=00
+---------------------------------------+
:                                       :
+---------------------------------------+
|             Slice #(N-1)              |  SEP counter=N-2
|              (part r/r)               |  P counter=r-1
:             + EOC marker              :  M=1, T=0, K=1, L=1, I=00
+=======================================+
        ]]></artwork>
        </figure>

      <t><vspace blankLines='100' /></t>
        <t/>
        <figure anchor="rtp_slice_interlaced_packet_data" title="Example anchor="rtp_slice_interlaced_packet_data">
          <name>Example of JPEG XS Payload Data (slice packetization mode, interlaced video frame)">
       <artwork><![CDATA[ (Slice Packetization Mode, Interlaced Video Frame)</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
+====[ PU #1: JPEG XS Hdr segment 1 ]===+
|           Video support box           |  SEP counter=0x07FF
+- - - - - - - - - - - - - - - - - - - -+  P counter=0
|        Color specification box        |
+- - - - - - - - - - - - - - - - - - - -+
|      JPEG XS codestream header 1      |
|  +---------------------------------+  |
|  :   Markers and marker segments   :  |
|  +---------------------------------+  |  M=0, T=0, K=1, L=1, I=10
+====[ PU #2: Slice #1 (1st field) ]====+
|  +---------------------------------+  |  SEP counter=0
|  |           SLH Marker            |  |  P counter=0
|  +---------------------------------+  |
|  :       Entropy Coded Data        :  |
|  +---------------------------------+  |  M=0, T=0, K=1, L=1, I=10
+====[ PU #3: Slice #2 (1st field) ]====+
|              Slice #2                 |  SEP counter=1
|             (part 1/q)                |  P counter=0
:                                       :  M=0, T=0, K=1, L=0, I=10
+---------------------------------------+
|              Slice #2                 |  SEP counter=1
|             (part 2/q)                |  P counter=1
:                                       :  M=0, T=0, K=1, L=0, I=10
+---------------------------------------+
:                                       :
+---------------------------------------+
|              Slice #2                 |  SEP counter=1
|             (part q/q)                |  P counter=q-1
:                                       :  M=0, T=0, K=1, L=1, I=10
+=======================================+
:                                       :
+==[ PU #N: Slice #(N-1) (1st field) ]==+
|            Slice #(N-1)               |  SEP counter=N-2
|             (part 1/r)                |  P counter=0
:                                       :  M=0, T=0, K=1, L=0, I=10
+---------------------------------------+
:                                       :
+---------------------------------------+
|            Slice #(N-1)               |  SEP counter=N-2
|             (part r/r)                |  P counter=r-1
:            + EOC marker               :  M=1, T=0, K=1, L=1, I=10
+=======================================+
+===[ PU #N+1: JPEG XS Hdr segment 2 ]==+
|           Video support box           |  SEP counter=0x07FF
+- - - - - - - - - - - - - - - - - - - -+  P counter=0
|        Color specification box        |
+- - - - - - - - - - - - - - - - - - - -+
|       JPEG XS codestream header 2     |
|  +---------------------------------+  |
|  :  Markers and marker segments    :  |
|  +---------------------------------+  |  M=0, T=0, K=1, L=1, I=11
+===[ PU #N+2: Slice #1 (2nd field) ]===+
|  +---------------------------------+  |  SEP counter=0
|  |           SLH Marker            |  |  P counter=0
|  +---------------------------------+  |
|  :      Entropy Coded Data         :  |
|  +---------------------------------+  |  M=0, T=0, K=1, L=1, I=11
+===[ PU #N+3: Slice #2 (2nd field) ]===+
|               Slice #2                |  SEP counter=1
|              (part 1/s)               |  P counter=0
:                                       :  M=0, T=0, K=1, L=0, I=11
+---------------------------------------+
|               Slice #2                |  SEP counter=1
|              (part 2/s)               |  P counter=1
:                                       :  M=0, T=0, K=1, L=0, I=11
+---------------------------------------+
:                                       :
+---------------------------------------+
|               Slice #2                |  SEP counter=1
|              (part s/s)               |  P counter=s-1
:                                       :  M=0, T=0, K=1, L=1, I=11
+=======================================+
:                                       :
+==[ PU #2N: Slice #(N-1) (2nd field) ]=+
|             Slice #(N-1)              |  SEP counter=N-2
|              (part 1/t)               |  P counter=0
:                                       :  M=0, T=0, K=1, L=0, I=11
+---------------------------------------+
:                                       :
+---------------------------------------+
|             Slice #(N-1)              |  SEP counter=N-2
|              (part t/t)               |  P counter=t-1
:             + EOC marker              :  M=1, T=0, K=1, L=1, I=11
+=======================================+
        ]]></artwork>
        </figure>
      </section>
    </section>
    <section title="Traffic anchor="tsdt" numbered="true" toc="default">
      <name>Traffic Shaping and Delivery Timing" anchor="tsdt"> Timing</name>
      <t>
       In order to facilitate proper synchronization between senders and receivers
       receivers, it is RECOMMENDED <bcp14>RECOMMENDED</bcp14> to implement traffic
       shaping and delivery timing in accordance with the Network
       Compatibility Model compliance definitions specified in <xref target="SMPTE-ST2110-21" />.
       target="SMPTE2110-21" format="default"/>. In such a case, the session
       description SHALL <bcp14>SHALL</bcp14> signal the compliance with the media
       type parameter TP. The actual applied traffic shaping and
       timing delivery mechanism is outside the scope of this memo and does
       not influence the payload packetization.
      </t>
    </section>
    <section title="Congestion numbered="true" toc="default">
      <name>Congestion Control Considerations"> Considerations</name>
      <t>
       Congestion control for RTP SHALL <bcp14>SHALL</bcp14> be used in accordance with
       <xref target="RFC3550" />, format="default"/> and with any applicable
       RTP profile: e.g. profile, e.g., <xref target="RFC3551">RTP/AVP</xref> target="RFC3551" format="default">RTP/AVP</xref> or
       <xref target="RFC4585">RTP/AVPF</xref>. target="RFC4585" format="default">RTP/AVPF</xref>.
      </t>
      <t>
       While JPEG XS is mainly designed to be used in controlled network
       environments, it can also be employed in best-effort network
       environments, like the Internet. However, in this case case, the users of
       this payload format SHALL <bcp14>SHALL</bcp14> monitor packet loss to ensure
       that the packet loss rate is within acceptable parameters. This can be
       achieved
       achieved, for example example, by means of the <xref target="RFC8888">RTP target="RFC8888"
       format="default">RTP Control Protocol (RTCP) Feedback for Congestion
       Control</xref>.
      </t>
      <t>
       In addition, <xref target="RFC8083">Circuit Breakers</xref> target="RFC8083" format="default"/> is an update to
       <xref target="RFC3550">RTP</xref> target="RFC3550" format="default"/> that defines criteria for
       when one is required to stop sending RTP Packet Streams and for when
       applications implementing this standard SHALL <bcp14>SHALL</bcp14> comply
       with it.
      </t>

      <t>
       <xref target="RFC8085" /> format="default"/> provides additional information
       on the best practices for applying congestion control to UDP streams.
      </t>
    </section>
    <section title="Payload numbered="true" toc="default">
      <name>Payload Format Parameters"> Parameters</name>
      <t>
      This section specifies the required and optional parameters of the payload format and/or
      the RTP stream. All parameters are declarative, meaning that the information signaled by
      the parameters is also present in the payload data, namely in the payload header (see <xref target="payload_hdr" />) format="default"/>) or in the JPEG XS header segment <xref target="ISO21122-1" /> format="default"/> <xref target="ISO21122-3" />. format="default"/>. When provided, their respective values SHALL <bcp14>SHALL</bcp14> be consistent with the payload.
      </t>
      <section title="Media anchor="media_type_def" numbered="true" toc="default">
        <name>Media Type Registration" anchor="media_type_def"> Registration</name>

         <t>
         <list style="hanging">
           <t>This
          This registration is done using the template defined in <xref
          target="RFC6838" /> format="default"/> and following <xref
          target="RFC4855" />.</t>
           <t>The format="default"/>.

	 </t>

<t> The receiver SHALL <bcp14>SHALL</bcp14> ignore any unrecognized parameter.</t>
           <t hangText="Type name:">video</t>
           <t hangText="Subtype name:">jxsv</t>
           <t hangText="Clock rate:">90000</t>
           <t hangText="Required parameters:">
             <list>
               <t hangText="rate:">
        <dl newline="true" spacing="normal">
          <dt>Type name:</dt>
          <dd>video</dd>
          <dt>Subtype name:</dt>
          <dd>jxsv</dd>
          <dt>Required parameters:</dt>
          <dd>
            <dl newline="false" spacing="normal">
              <dt>rate:</dt>
              <dd>
		 The RTP timestamp clock rate. Applications using this payload format SHALL <bcp14>SHALL</bcp14> use a value of 90000.
               </t>
               <t hangText="packetmode:">
              </dd>
              <dt>packetmode:</dt>
              <dd>
                 This parameter specifies the configured packetization mode as defined
                 by the pacKetization mode (K) bit in the payload header of <xref target="payload_hdr" />. format="default"/>.
                 This value SHALL <bcp14>SHALL</bcp14> be equal to the K bit K-bit value configured in the RTP stream (i.e. (i.e., 0 for codestream or 1 for slice).
               </t>
             </list>
           </t>
           <t hangText="Optional parameters:">
             <list>
               <t hangText="transmode:">
              </dd>
            </dl>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <dl newline="false" spacing="normal">
              <dt>transmode:</dt>
              <dd>
		  This parameter specifies the configured transmission mode as
		    defined by the Transmission mode (T) bit in the payload
		      header of <xref target="payload_hdr" />. format="default"/>.  If
		        specified, this value SHALL <bcp14>SHALL</bcp14> be equal to the T bit
			  T-bit value configured in the RTP stream (i.e. (i.e., 0 for
			    out-of-order-allowed or 1 for sequential-only). If not
			      specified, a value 1 (sequential-only) SHALL <bcp14>SHALL</bcp14>
			        be assumed and the T bit SHALL <bcp14>SHALL</bcp14> be set to 1.
               </t>
               <t hangText="profile:">
              </dd>
              <dt>profile:</dt>
              <dd>
                 The <xref target="ISO21122-2">JPEG target="ISO21122-2" format="default">JPEG XS profile</xref> in use.
                 Any white space Unicode character in the profile name SHALL <bcp14>SHALL</bcp14> be omitted.
                 Examples of valid profile names are 'Main444.12' or 'High444.12'.
               </t>
               <t hangText="level:">
              </dd>
              <dt>level:</dt>
              <dd>
                 The <xref target="ISO21122-2">JPEG target="ISO21122-2" format="default">JPEG XS level</xref> in use.
                 Any white space Unicode character in the level name SHALL <bcp14>SHALL</bcp14> be omitted.
                 Examples of valid levels are '2k-1' or '4k-2'.
               </t>
               <t hangText="sublevel:">
              </dd>
              <dt>sublevel:</dt>
              <dd>
                 The <xref target="ISO21122-2">JPEG target="ISO21122-2" format="default">JPEG XS sublevel</xref> in use.
                 Any white space Unicode character in the sublevel name SHALL <bcp14>SHALL</bcp14> be omitted.
                 Examples of valid sublevels are 'Sublev3bpp' or 'Sublev6bpp'.
               </t>
               <t hangText="depth:">
              </dd>
              <dt>depth:</dt>
              <dd>
                 Determines the number of bits per sample. This is an
                 integer with typical values including 8, 10, 12, and 16.
               </t>
               <t hangText="width:">
              </dd>
              <dt>width:</dt>
              <dd>
                 Determines the number of pixels per line. This is an
                 integer between 1 and 32767 32767, inclusive.
               </t>
               <t hangText="height:">
              </dd>
              <dt>height:</dt>
              <dd>
                 Determines the number of lines per video frame. This is an
                 integer between 1 and 32767 32767, inclusive.
               </t>
               <t hangText="exactframerate:">
              </dd>
              <dt>exactframerate:</dt>
              <dd>
                 Signals the video frame rate in frames per second.
                 Integer frame rates SHALL <bcp14>SHALL</bcp14> be signaled as a single decimal
                 number (e.g. (e.g., "25") whilst non-integer frame rates SHALL <bcp14>SHALL</bcp14> be
                 signaled as a ratio of two integer decimal numbers separated
                 by a "forward-slash" character (e.g. (e.g., "30000/1001"), utilizing
                 the numerically smallest numerator value possible.
               </t>
               <t hangText="interlace:">
              </dd>
              <dt>interlace:</dt>
              <dd>
                 If this parameter name is present, it indicates
                 that the video is interlaced, or that the video is
                 Progressive segmented Frame (PsF). If this parameter name is
                 not present, the progressive video format SHALL <bcp14>SHALL</bcp14> be assumed.
               </t>
               <t hangText="segmented:">
              </dd>
              <dt>segmented:</dt>
              <dd>
                 If this parameter name is present, and the
                 interlace parameter name is also present, then the video is a
                 Progressive segmented Frame (PsF). Signaling of this
                 parameter without the interlace parameter is forbidden.
               </t>
               <t hangText="sampling:">
              </dd>
              <dt>sampling:</dt>
              <dd>
                <t>
                 Signals the color difference signal sub-sampling
                 structure.
                 <vspace /><vspace />
                </t>
                <t>
                 Signals utilizing the non-constant luminance
                 Y'C'B C'R signal format of Recommendation ITU-R BT.601-7,
                 Recommendation ITU-R BT.709-6, Recommendation ITU-R BT.2020-2, <xref target="BT.601-7" format="default"/>,
                 <xref target="BT.709-6" format="default"/>, <xref target="BT.2020-2" format="default"/>,
                 or Recommendation ITU-R BT.2100 SHALL <xref target="BT.2100-2" format="default"/> <bcp14>SHALL</bcp14> use the appropriate one
                 of the following values for the Media Type Parameter
                 "sampling":
                 <figure><artwork><![CDATA[
         YCbCr-4:4:4    (4:4:4 sampling)
         YCbCr-4:2:2    (4:2:2 sampling)
         YCbCr-4:2:0    (4:2:0 sampling)
                 ]]></artwork></figure>
                 <vspace /><vspace />

                </t>

<dl indent="15">
<dt>YCbCr-4:4:4</dt><dd>(4:4:4 sampling)</dd>
<dt>YCbCr-4:2:2</dt><dd>(4:2:2 sampling)</dd>
<dt>YCbCr-4:2:0</dt><dd>(4:2:0 sampling)</dd>
</dl>

            <t>
                 Signals utilizing the Constant Luminance Y'C C'BC C'RC signal
                 format of Recommendation ITU-R BT.2020-2 SHALL <xref target="BT.2020-2" format="default"/> <bcp14>SHALL</bcp14> use the
                 appropriate one of the following values for the Media Type
                 Parameter "sampling":
                 <figure><artwork><![CDATA[
         CLYCbCr-4:4:4  (4:4:4 sampling)
         CLYCbCr-4:2:2  (4:2:2 sampling)
         CLYCbCr-4:2:0  (4:2:0 sampling)
                 ]]></artwork></figure>
                 <vspace /><vspace />
            </t>

<dl indent="15">
<dt>CLYCbCr-4:4:4</dt><dd>(4:4:4 sampling)</dd>
<dt>CLYCbCr-4:2:2</dt><dd>(4:2:2 sampling)</dd>
<dt>CLYCbCr-4:2:0</dt><dd>(4:2:0 sampling)</dd>
</dl>

            <t>
                 Signals utilizing the constant intensity I CT CP signal format
                 of Recommendation ITU-R BT.2100 SHALL <xref target="BT.2100-2" format="default"/> <bcp14>SHALL</bcp14> use the appropriate one
                 of the following values for the Media Type Parameter
                 "sampling":
                 <figure><artwork><![CDATA[
         ICtCp-4:4:4    (4:4:4 sampling)
         ICtCp-4:2:2    (4:2:2 sampling)
         ICtCp-4:2:0    (4:2:0 sampling)
                 ]]></artwork></figure>
                 <vspace /><vspace />
            </t>

<dl indent="15">
<dt>ICtCp-4:4:4</dt><dd>(4:4:4 sampling)</dd>
<dt>ICtCp-4:2:2</dt><dd>(4:2:2 sampling)</dd>
<dt>ICtCp-4:2:0</dt><dd>(4:2:0 sampling)</dd>
</dl>

            <t>
                 Signals utilizing the 4:4:4 R' G' B' or RGB signal format
                 (such as that of Recommendation ITU-R BT.601, Recommendation
                 ITU-R BT.709, Recommendation ITU-R BT.2020, Recommendation
                 ITU-R BT.2100, SMPTE ST 2065-1 <xref target="BT.601-7" format="default"/>, <xref target="BT.709-6" format="default"/>,
                 <xref target="BT.2020-2" format="default"/>, <xref target="BT.2100-2" format="default"/>,
                 <xref target="SMPTE2065-1" format="default"/>, or ST 2065-3) SHALL <xref target="SMPTE2065-3" format="default"/>) <bcp14>SHALL</bcp14> use the
                 following value for the Media Type Parameter sampling.
                 <figure><artwork><![CDATA[
         RGB            (RGB "sampling":
            </t>

<dl indent="15">
<dt>RGB</dt><dd>(RGB or R' G' B' samples)
                 ]]></artwork></figure>
                 <vspace /><vspace /> samples)</dd>
</dl>

            <t>
                 Signals utilizing the 4:4:4 X' Y' Z' signal format (such as
                 defined in SMPTE ST 428-1) SHALL <xref target="SMPTE428-1" format="default"/>) <bcp14>SHALL</bcp14> use the following value for
                 the Media Type Parameter sampling.
                 <figure><artwork><![CDATA[
         XYZ            (X' "sampling":
            </t>

<dl indent="15">
<dt>XYZ</dt><dd>(X' Y' Z' samples)
                 ]]></artwork></figure>
                 <vspace /><vspace /> samples)</dd>
</dl>
            <t>
             Key signals as defined in SMPTE RP 157 SHALL <xref target="SMPTE157" format="default"/> <bcp14>SHALL</bcp14> use
             the value key for the Media Type Parameter sampling. "sampling". The Key key
             signal is represented as a single component.
                 <figure><artwork><![CDATA[
         KEY            (Samples component:
            </t>

<dl indent="15">
<dt>KEY</dt><dd>(Samples of the key signal)
                 ]]></artwork></figure>
                 <vspace /><vspace /> signal)</dd>
</dl>
            <t>
                 Signals utilizing a color sub-sampling other than what is
                 defined here SHALL <bcp14>SHALL</bcp14> use the following value for
                 the Media Type Parameter sampling.
                 <figure><artwork><![CDATA[
         UNSPECIFIED    (Sampling "sampling":
            </t>

<dl indent="15">
<dt>UNSPECIFIED</dt><dd>(Sampling signaled by the payload.)
                 ]]></artwork></figure>
               </t>
               <t hangText="colorimetry:"> payload)</dd>
</dl>

</dd>
              <dt>colorimetry:</dt>
              <dd>
                <t>
                 Specifies the system colorimetry used by the image
                 samples. Valid values and their specification are:
                 <figure><artwork><![CDATA[
         BT601-5      ITU-R Recommendation BT.601-5.
         BT709-2      ITU-R Recommendation BT.709-2.
         SMPTE240M    SMPTE ST 240M.
         BT601        ITU-R Recommendation BT.601-7.
         BT709        ITU-R Recommendation BT.709-6.
         BT2020       ITU-R Recommendation BT.2020-2.
         BT2100       ITU-R Recommendation BT.2100 are the
                 following:
                </t>

<dl indent="15">

<dt>BT601-5:</dt><dd><xref target="BT.601-5" format="default"/>.</dd>
<dt>BT709-2:</dt><dd><xref target="BT.709-2" format="default"/>.</dd>
<dt>SMPTE240M:</dt><dd><xref target="SMPTE240M" format="default"/>.</dd>
<dt>BT601:</dt><dd><xref target="BT.601-7" format="default"/>.</dd>
<dt>BT709:</dt><dd><xref target="BT.709-6" format="default"/>.</dd>
<dt>BT2020:</dt><dd><xref target="BT.2020-2" format="default"/>.</dd>
<dt>BT2100:</dt><dd><xref target="BT.2100-2" format="default"/>, Table 2 titled "System colorimetry".
         ST2065-1     SMPTE ST 2065-1 Academy colorimetry".</dd>
<dt>ST2065-1:</dt><dd><xref target="SMPTE2065-1" format="default">Academy Color Encoding Specification (ACES).
         ST2065-3     SMPTE ST 2065-3 Academy (ACES)</xref>.</dd>
<dt>ST2065-3:</dt><dd><xref target="SMPTE2065-3" format="default">Academy Density Exchange Encoding (ADX).
         XYZ          ISO/IEC 11664-1, (ADX)</xref>.</dd>
<dt>XYZ:</dt><dd><xref target="ISO11664-1" format="default"/>, section titled "1931 Observer".
         UNSPECIFIED  Colorimetry Observer".</dd>
<dt>UNSPECIFIED:</dt><dd>Colorimetry is signaled in the payload by the color specification box of [ISO21122-3],
<xref target="ISO21122-3"/>, or it must be manually coordinated between sender
and receiver.
                 ]]></artwork></figure> receiver.</dd>
</dl>

            <t>
                 Signals utilizing the Recommendation ITU-R BT.2100 <xref target="BT.2100-2" format="default"/> colorimetry
                 SHOULD
                 <bcp14>SHOULD</bcp14> also signal the representational range using the
                 optional parameter RANGE defined below. Signals utilizing the
                 UNSPECIFIED colorimetry might require manual coordination between
                 the sender and the receiver.
            </t>
               <t hangText="TCS:">
              </dd>
              <dt>TCS:</dt>
              <dd>
                <t>
                 Transfer Characteristic System. This parameter specifies
                 the transfer characteristic system of the image samples.
                 Valid values and their specification are:
                 <figure><artwork><![CDATA[
         SDR          Standard are the following:
                </t>

<dl indent="15">

<dt>SDR:</dt><dd>Standard Dynamic Range video streams that utilize the OETF Optical Electrical
Transfer Function (OETF) of ITU-R Recommendation
                      BT.709 <xref target="BT.709-6" format="default"/> or ITU-R Recommendation BT.2020. <xref target="BT.2020-2" format="default"/>.
Such streams SHALL <bcp14>SHALL</bcp14> be assumed to target the EOTF Electro-Optical Transfer
Function (EOTF) specified in ITU-R Recommendation BT.1886.
         PQ           High <xref target="BT.1886-0" format="default"/>.</dd>

<dt>PQ:</dt><dd>High dynamic range video streams that utilize the Perceptual Quantization system
of ITU-R
                      Recommendation BT.2100.
         HLG          High <xref target="BT.2100-2" format="default"/>. </dd>

<dt>HLG:</dt><dd>High dynamic range video streams that utilize the Hybrid Log-Gamma system
of ITU-R
                      Recommendation BT.2100.
         UNSPECIFIED  Video <xref target="BT.2100-2" format="default"/>.</dd>

<dt>UNSPECIFIED:</dt><dd>Video streams whose transfer characteristics are signaled by the payload
as specified in
                      [ISO21122-3], <xref target="ISO21122-3"/>, or that must be manually
coordinated between sender and receiver.
                 ]]></artwork></figure>
               </t>
               <t hangText="RANGE:"> receiver.</dd>

</dl>

              </dd>
              <dt>RANGE:</dt>
              <dd>
                 This parameter SHOULD <bcp14>SHOULD</bcp14> be used to signal the encoding
                 range of the sample values within the stream. When paired with
                 ITU Rec BT.2100
                 <xref target="BT.2100-2" format="default"/> colorimetry, this parameter has two allowed
                 values
                 values, NARROW and FULL, corresponding to the ranges specified
                 in table TABLE 9 of ITU Rec BT.2100. <xref target="BT.2100-2" format="default"/>. In any other context, this
                 parameter has three allowed values: NARROW, FULLPROTECT, and
                 FULL, which correspond to the ranges specified in
                 SMPTE RP 2077.
                 <xref target="SMPTE2077" format="default"/>. In the absence of this parameter, and for all
                 but the UNSPECIFIED colorimetry, NARROW SHALL <bcp14>SHALL</bcp14> be the assumed
                 value. When paired with the UNSPECIFIED colorimetry, FULL
                 SHALL
                 <bcp14>SHALL</bcp14> be the default assumed value.
               </t>
             </list>
           </t>
           <t hangText="Encoding considerations:"><vspace />
              </dd>
            </dl>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
             This media type is framed in RTP and contains binary data; see Section 4.8 in
             <xref target="RFC6838" />.
           </t>
           <t hangText="Security considerations:"><vspace />
             Please see sectionFormat="of" section="4.8"
             format="default"/>.
          </dd>
          <dt>Security considerations:</dt>
          <dd>
             See the <xref target="security">Security target="security" format="none">Security
             Considerations</xref> section of RFC XXXX.
           </t>
           <t hangText="Interoperability considerations:"><vspace />None.</t>
           <t hangText="Published specification:"><vspace /> 9134.
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>None</dd>
          <dt>Published specification:</dt>
          <dd>
             See the <xref target="references" format="none">References</xref>
             section of RFC XXXX and its References section.
           </t>
           <t hangText="Applications 9134.
          </dd>
          <dt>Applications that use this media type:"><vspace />Any type:</dt>
          <dd>Any application that transmits video over RTP (like SMPTE ST 2110).</t>
           <t hangText="Fragment 2110).</dd>
          <dt>Fragment identifier considerations:"><vspace />N/A.</t>
           <t hangText="Additional information:"><vspace />None.</t>
           <t hangText="Person considerations:</dt>
          <dd>N/A</dd>
          <dt>Additional information:</dt>
          <dd>None</dd>
          <dt>Person &amp; email address to contact for further information:"><vspace />S. Lugan information:</dt>
          <dd>T. Bruylants &lt;rtp@intopix.com&gt; and Th. T. Richter &lt;jpeg-xs-techsupport@iis.fraunhofer.de&gt;.</t>
           <t hangText="Intended usage:"><vspace />COMMON</t>
           <t hangText="Restrictions &lt;jpeg-xs-techsupport@iis.fraunhofer.de&gt;.</dd>
          <dt>Intended usage:</dt>
          <dd>COMMON</dd>
          <dt>Restrictions on usage:"><vspace /> usage:</dt>
          <dd>
             This media type depends on RTP framing, and hence framing; hence, it is only defined for transfer via <xref target="RFC3550">RTP</xref>.</t>
           <t hangText="Author:"><vspace />See target="RFC3550" format="default">RTP</xref>.</dd>
          <dt>Author:</dt>
          <dd>See the Authors' Addresses section of RFC XXXX.</t>
           <t hangText="Change controller:"><vspace />IETF 9134.</dd>
          <dt>Change controller:</dt>
          <dd>IETF Audio/Video Transport working group Working Group delegated from the IESG.
           </t>
         </list>
       </t>
          </dd>
        </dl>
      </section>
    </section>
    <section title="SDP Parameters"> numbered="true" toc="default">
      <name>SDP Parameters</name>
      <t>
      A mapping of the parameters into the <xref target="RFC8866">Session target="RFC8866" format="default">Session Description Protocol (SDP)</xref>
      is provided for applications that use SDP.
      </t>
      <section title="Mapping numbered="true" toc="default">
        <name>Mapping of Payload Type Parameters to SDP"> SDP</name>
        <t>
         The media type video/jxsv string is mapped to fields in the <xref target="RFC8866">Session target="RFC8866" format="default">Session
         Description Protocol (SDP)</xref> as follows:
        </t>
       <t>
         <list style="hanging">
           <t>
        <dl newline="false" spacing="normal">
          <dt/>
          <dd>
             The media type ("video") goes in SDP "m=" as the media name.
           </t>
           <t>
          </dd>
          <dt/>
          <dd>
             The media subtype ("jxsv") goes in SDP "a=rtpmap" as the encoding
             name, followed by a slash ("/") and the required parameter "rate"
             corresponding to the RTP timestamp clock rate (which for the payload
             format defined in this document SHALL <bcp14>SHALL</bcp14> be 90000).
           </t>
           <t>
          </dd>
          <dt/>
          <dd>
             The required parameter "packetmode", "packetmode" and any of the additional
             optional parameters, as described in <xref
             target="media_type_def" />, format="default"/>, go in the SDP media
             format description, being the "a=fmtp" attribute (Format
             Parameters), by copying them directly from the MIME media type string
             as a semicolon-separated list of parameter=value pairs.
           </t>
         </list>
       </t>
          </dd>
        </dl>
        <t>
         All parameters of the media format SHALL <bcp14>SHALL</bcp14> correspond to the
         parameters of the payload. In case of discrepancies between
         payload parameter values and SDP fields, the values from the
         payload data SHALL <bcp14>SHALL</bcp14> prevail.
        </t>
        <t>
         The receiver SHALL <bcp14>SHALL</bcp14> ignore any parameter that is not defined in <xref target="media_type_def" />. format="default"/>.
        </t>
        <t>
         An example SDP mapping for JPEG XS video is as follows:
       <figure><artwork><![CDATA[
        </t>

        <sourcecode type="sdp"><![CDATA[
   m=video 30000 RTP/AVP 112
   a=rtpmap:112 jxsv/90000
   a=fmtp:112 packetmode=0;sampling=YCbCr-4:2:2;
              width=1920;height=1080;depth=10;
              colorimetry=BT709;TCS=SDR;RANGE=FULL;TP=2110TPNL
       ]]></artwork></figure>
       </t>
       ]]></sourcecode>
        <t>
         In this example, a JPEG XS RTP stream is to be sent to UDP destination
         port 30000, with an RTP dynamic payload type of 112 and a media clock
         rate of 90000 Hz. Note that the "a=fmtp:" line has been wrapped to fit
         this page, page and will be a single long line in the SDP file. This example
         includes the TP parameter (as specified in <xref target="tsdt" />). format="default"/>).
        </t>
      </section>
      <section title="Usage numbered="true" toc="default">
        <name>Usage with SDP Offer/Answer Model"> Model</name>
        <t>
         When JPEG XS is offered over RTP using <xref target="RFC3264">SDP target="RFC3264" format="default">SDP in an
         offer/answer model</xref> for negotiation for unicast usage, the following
         limitations and rules apply:
        </t>
       <t>
         <list style="hanging">
           <t>
        <dl newline="false" spacing="normal">
          <dt/>
          <dd>
             The "a=fmtp" attribute SHALL <bcp14>SHALL</bcp14> be present specifying the required
             parameter "packetmode", "packetmode" and MAY <bcp14>MAY</bcp14> specify any of the
             optional parameters, as described in <xref target="media_type_def" />.
           </t>
           <t> format="default"/>.
          </dd>
          <dt/>
          <dd>
             All parameters in the "a=fmtp" attribute indicate sending capabilities (i.e. (i.e., properties of the payload).
           </t>
           <t>
          </dd>
          <dt/>
          <dd>
             An answerer of the SDP is required to support all parameters and
             values of the parameters provided by the offerer; otherwise, the
             answerer
             SHALL <bcp14>SHALL</bcp14> reject the session. It falls on the
             offerer to use values that are expected to be supported by the
             answerer. If the answerer accepts the session, it SHALL
             <bcp14>SHALL</bcp14> reply with the exact same parameters parameter values
             in the "a=fmtp" attribute as it was they were initially offered.
           </t>
           <t>
          </dd>

          <dt/>
          <dd>
             The same RTP payload type number used in the offer SHOULD
             <bcp14>SHOULD</bcp14> be used in the answer, as specified in
             <xref target="RFC3264" />.
           </t>
         </list>
       </t> format="default"/>.
          </dd>
        </dl>
      </section>
    </section>
    <section title="IANA Considerations"> numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>
       The
       IANA is requested to register has registered the media type registration "video/jxsv"
       as specified in <xref target="media_type_def" />. format="default"/>.  The
       media type is has also requested to be been added to the IANA registry for "RTP
       Payload Format MIME types" &lt;https://www.iana.org/assignments/rtp-parameters&gt;. Media Types" <eref brackets ="angle"
       target="https://www.iana.org/assignments/rtp-parameters"/>.

      </t>
    </section>
    <section title="Security Considerations" anchor="security"> anchor="security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
       RTP packets using the payload format defined in this memo
       are subject to the security considerations discussed in <xref target="RFC3550" /> format="default"/>
       and in any applicable RTP profile such as <xref target="RFC3551">RTP/AVP</xref>, target="RFC3551" format="default">RTP/AVP</xref>,
       <xref target="RFC4585">RTP/AVPF</xref>, target="RFC4585" format="default">RTP/AVPF</xref>,
       <xref target="RFC3711">RTP/SAVP</xref>, target="RFC3711" format="default">RTP/SAVP</xref>, or
       <xref target="RFC5124">RTP/SAVPF</xref>. target="RFC5124" format="default">RTP/SAVPF</xref>. This implies
       that confidentiality of the media streams is achieved by encryption.
      </t>
      <t>
       However, as <xref target="RFC7202">"Securing target="RFC7202" format="default">"Securing the RTP Framework: Why RTP
       Does Not Mandate a Single Media Security Solution"</xref>
       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 on anyone using RTP in an
       application. They can find guidance on available security mechanisms
       and important considerations in
       <xref target="RFC7201">"Options target="RFC7201" format="default">"Options for Securing RTP Sessions"</xref>.
       Applications SHOULD <bcp14>SHOULD</bcp14> use one or more appropriate strong
       security mechanisms.
      </t>
      <t>
       Implementations of this RTP payload format need to take appropriate
       security considerations into account.  It is important for the decoder
       to be robust against malicious or malformed payloads and ensure that
       they do not cause the decoder to overrun its allocated memory or otherwise
       misbehave. An overrun in allocated memory could lead to arbitrary code
       execution by an attacker. The same applies to the encoder, even though
       problems in encoders are typically rarer.
      </t>
      <t>
       This payload format and the JPEG XS encoding do not exhibit any
       substantial non-uniformity, either in output or in complexity to perform
       the decoding operation and thus operation; thus, they are unlikely to pose a denial-of-service
       threat due to the receipt of pathological datagrams.
      </t>
      <t>
       This payload format and the JPEG XS encoding do not contain code that is executable.
      </t>
      <t>

       It is important to note that HD high-definition (HD) or UHDTV JPEG XS-encoded ultra-high-definition
       (UHD) video that is encoded with JPEG XS can have significant bandwidth
       requirements (typically more than 1 Gbps for
       ultra high-definition UHD video, especially if
       using high framerate). This is sufficient to cause potential for denial-of-service denial
       of service if transmitted onto most currently available Internet paths.
      </t>
      <t>
       Accordingly, if best-effort service is being used, users of this
       payload format SHALL <bcp14>SHALL</bcp14> monitor packet loss to ensure that the packet
       loss rate is within acceptable parameters. Packet loss is considered
       acceptable if a TCP flow across the same network path, and
       experiencing the same network conditions, would achieve an average
       throughput, measured on a reasonable timescale, that is not less than
       the RTP flow is achieving. This condition can be satisfied by
       implementing congestion control mechanisms to adapt the transmission
       rate (or the number of layers subscribed for a layered multicast
       session),
       session) or by arranging for a receiver to leave the session if the
       loss rate is unacceptably high.
      </t>
      <t>
       This payload format may also be used in networks that provide
       quality-of-service guarantees. If enhanced service is being used,
       receivers SHOULD <bcp14>SHOULD</bcp14> monitor packet loss to ensure that the service that
       was requested is actually being delivered. If it is not, then they
       SHOULD
       <bcp14>SHOULD</bcp14> assume that they are receiving best-effort service and behave
       accordingly.
      </t>
    </section>

   <section title="Acknowledgments">
     <t>
       The authors would like to thank the following people for their
       valuable contributions to this memo: Arnaud Germain,
       Alexandre Will&egrave;me, Ga&euml;l Rouvroy, Siegfried Foessel, and Jean-Baptise Lorent.
     </t>
   </section>

   <section title="RFC Editor Considerations">
     <t>
       Note to RFC Editor: This section may be removed after carrying out
       all the instructions of this section.
     </t>

     <t>
       RFC XXXX is to be replaced by the RFC number this specification
       receives when published.
     </t>
   </section>

  </middle>

 <!--  *****BACK MATTER ***** -->

 <back>
   <!-- References split into informative and normative -->

   <!-- There are 2 ways to insert reference entries from the citation libraries:
    1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
    2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
       (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

    Both are cited textually in the same manner: by using xref elements.
    If you use the PI option, xml2rfc will, by default, try to find included files in the same
    directory as the including file. You can also define the XML_LIBRARY environment variable
    with a value containing a set of directories to search. These can be either in the local
    filing system or remote ones accessed by http (http://domain/dir/... ).-->

   <references title="Normative References">
     <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
     &RFC2119;
     &RFC3264;
     &RFC3550;
     &RFC3551;
     &RFC4855;
     &RFC6838;
     &RFC8083;
     &RFC8085;
     &RFC8174;
     &RFC8866; anchor="references">
      <name>References</name>
      <references>
        <name>Normative References</name>

	<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3264.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3550.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3551.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4855.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6838.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8083.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8085.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8866.xml"/>

        <reference anchor="ISO21122-1">
          <front>
            <title>
           Information technology - JPEG XS low-latency lightweight image coding
           system - Part 1: Core coding system
            </title>
            <author>
           <organization>International Organization for Standardization (ISO) -
           International Electrotechnical Commission (IEC)</organization>
              <organization>ISO/IEC</organization>
            </author>
         <date />
          </front>
          <seriesInfo name="ISO/IEC" value="IS 21122-1"/>
        </reference>

        <reference anchor="ISO21122-2">
          <front>
            <title>
           Information technology - JPEG XS low-latency lightweight image coding
           system - Part 2: Profiles and buffer models
            </title>
            <author>
           <organization>International Organization for Standardization (ISO) -
           International Electrotechnical Commission (IEC)</organization>
              <organization>ISO/IEC</organization>
            </author>
         <date />
          </front>
          <seriesInfo name="ISO/IEC" value="IS 21122-2"/>
        </reference>

        <reference anchor="ISO21122-3">
          <front>
            <title>
           Information technology - JPEG XS low-latency lightweight image coding
           system - Part 3: Transport and container formats
            </title>
            <author>
           <organization>International Organization for Standardization (ISO) -
           International Electrotechnical Commission (IEC)</organization>
              <organization>ISO/IEC</organization>
            </author>
         <date />
          </front>
          <seriesInfo name="ISO/IEC" value="IS 21122-3"/>
        </reference>

      </references>

   <references title="Informative References">
     &RFC3711;
     &RFC4175;
     &RFC4585;
     &RFC5124;
     &RFC7201;
     &RFC7202;
     &RFC8888;

      <references>
        <name>Informative References</name>
        <reference anchor="SMPTE-ST2110-21" target="https://doi.org/10.5594/SMPTE.ST2110-21.2017"> anchor="ISO11664-1" target="https://www.iso.org/standard/74164.html">
          <front>
         <title>
           SMPTE
            <title>Colorimetry - Part 1: CIE standard colorimetric observers</title>
            <author>
              <organization>ISO/CIE</organization>
            </author>
            <date year="2019" month="June"/>
          </front>
          <seriesInfo name="ISO/CIE" value="IS 11664-1:2019"/>
        </reference>

        <reference anchor="BT.601-5" target="https://www.itu.int/rec/R-REC-BT.601-5-199510-S/en">
          <front>
            <title>Studio encoding parameters of digital television for standard 4:3 and wide screen 16:9 aspect ratios</title>
            <author>
              <organization>ITU-R</organization>
            </author>
            <date year="1995" month="October"/>
          </front>
          <seriesInfo name="ITU-R Recommendation" value="BT.601-5"/>
        </reference>

        <reference anchor="BT.601-7" target="https://www.itu.int/rec/R-REC-BT.601-7-201103-I/en">
          <front>
            <title>Studio encoding parameters of digital television for standard 4:3 and wide screen 16:9 aspect ratios</title>
            <author>
              <organization>ITU-R</organization>
            </author>
            <date year="2011" month="March"/>
          </front>
          <seriesInfo name="ITU-R Recommendation" value="BT.601-7"/>
        </reference>

        <reference anchor="BT.709-2" target="https://www.itu.int/rec/R-REC-BT.709-2-199510-S/en">
          <front>
            <title>Parameter values for the HDTV standards for production and international programme exchange</title>
            <author>
              <organization>ITU-R</organization>
            </author>
            <date year="1995" month="October"/>
          </front>
          <seriesInfo name="ITU-R Recommendation" value="BT.709-2"/>
        </reference>
        <reference anchor="BT.709-6" target="https://www.itu.int/rec/R-REC-BT.709-6-201506-I/en">
          <front>
            <title>Parameter values for the HDTV standards for production and international programme exchange</title>
            <author>
              <organization>ITU-R</organization>
            </author>
            <date year="2015" month="June"/>
          </front>
          <seriesInfo name="ITU-R Recommendation" value="BT.709-6"/>
        </reference>
        <reference anchor="BT.1886-0" target="https://www.itu.int/rec/R-REC-BT.1886-0-201103-I/en">
          <front>
            <title>Reference electro-optical transfer function for flat panel displays used in HDTV studio production</title>
            <author>
              <organization>ITU-R</organization>
            </author>
            <date year="2011" month="March"/>
          </front>
          <seriesInfo name="ITU-R Recommendation" value="BT.1886-0"/>
        </reference>
        <reference anchor="BT.2020-2" target="https://www.itu.int/rec/R-REC-BT.2020-2-201510-I/en">
          <front>
            <title>Parameter values for ultra-high definition television systems for production and international programme exchange</title>
            <author>
              <organization>ITU-R</organization>
            </author>
            <date year="2015" month="October"/>
          </front>
          <seriesInfo name="ITU-R Recommendation" value="BT.2020-2"/>
        </reference>
        <reference anchor="BT.2100-2" target="https://www.itu.int/rec/R-REC-BT.2100-2-201807-I/en">
          <front>
            <title>Image parameter values for high dynamic range television for use in production and international programme exchange</title>
            <author>
              <organization>ITU-R</organization>
            </author>
            <date year="2018" month="July"/>
          </front>
          <seriesInfo name="ITU-R Recommendation" value="BT.2100-2"/>
        </reference>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3711.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4175.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4585.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5124.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7201.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7202.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8888.xml"/>

        <reference anchor="SMPTE157" target="https://ieeexplore.ieee.org/document/7290447">
          <front>
            <title>SMPTE Recommended Practice - Key and Alpha Signals</title>
            <author>
              <organization>SMPTE</organization>
            </author>
            <date year="2012" month="November"/>
          </front>
          <seriesInfo name="SMPTE" value="RP 157:2012"/>
  <seriesInfo name="DOI" value="10.1109/ICPST.1998.729044"/>
        </reference>

        <reference anchor="SMPTE240M" target="https://ieeexplore.ieee.org/document/7291461?arnumber=7291461">
          <front>
            <title>SMPTE Standard - For Television - 1125-Line High-Definition
            Production Systems - Signal Parameters</title>
            <author>
              <organization>SMPTE</organization>
            </author>
            <date year="1999" month="November"/>
          </front>
	  <seriesInfo name="SMPTE" value="ST 240M:1999"/>
	  <seriesInfo name="DOI" value="10.5594/SMPTE.ST240.1999"/>
	</reference>

        <reference anchor="SMPTE428-1" target="https://ieeexplore.ieee.org/document/8709077">
          <front>
            <title>SMPTE Standard - D-Cinema Distribution Master - Image Characteristics</title>
            <author>
              <organization>SMPTE</organization>
            </author>
            <date year="2019" month="March"/>
          </front>
          <seriesInfo name="SMPTE" value="ST 428-1:2019"/>
<seriesInfo name="DOI" value="10.5594/SMPTE.ST428-1.2019"/>
        </reference>

        <reference anchor="SMPTE2065-1" target="https://ieeexplore.ieee.org/document/9343931">
          <front>
            <title>SMPTE Standard - Academy Color Encoding Specification (ACES)</title>
            <author>
              <organization>SMPTE</organization>
            </author>
            <date year="2021" month="January"/>
          </front>
          <seriesInfo name="SMPTE" value="ST 2065-1:2021"/>
	  <seriesInfo name="DOI" value="10.5594/SMPTE.ST2065-1.2021"/>
        </reference>

        <reference anchor="SMPTE2065-3" target="https://ieeexplore.ieee.org/document/9286953">
          <front>
            <title>SMPTE Standard - Academy Density Exchange Encoding (ADX) - Encoding Academy Printing Density (APD) Values</title>
            <author>
              <organization>SMPTE</organization>
            </author>
            <date year="2020" month="November"/>
          </front>
          <seriesInfo name="SMPTE" value="ST 2065-3:2020"/>
	  <seriesInfo name="DOI" value="10.5594/SMPTE.ST2065-3.2020"/>
        </reference>

        <reference anchor="SMPTE2077" target="https://ieeexplore.ieee.org/document/7290588">
          <front>
            <title>SMPTE Recommended Practice - Full-Range Image Mapping</title>
            <author>
              <organization>SMPTE</organization>
            </author>
            <date year="2013" month="November"/>
          </front>
          <seriesInfo name="SMPTE" value="RP 2077:2013"/>
	  <seriesInfo name="DOI" value="10.5594/SMPTE.RP2077.2013"/>
        </reference>

        <reference anchor="SMPTE2110-21" target="https://ieeexplore.ieee.org/document/8165971">
          <front>
            <title>SMPTE Standard - Professional Media Over Managed IP Networks: Traffic Shaping and Delivery Timing for Video
         </title> Video</title>
            <author>
           <organization>Society of Motion Picture and Television Engineers</organization>
              <organization>SMPTE</organization>
            </author>
            <date year="2017"/> year="2017" month="November"/>
          </front>
          <seriesInfo name="SMPTE" value="ST 2110-21:2017"/>
	  <seriesInfo name="DOI" value="10.5594/SMPTE.ST2110-21.2017"/>
        </reference>
      </references>
    </references>

    <section numbered="false" toc="default">
      <name>Acknowledgments</name>
      <t>
       The authors would like to thank the following people for their valuable
       contributions to this memo: <contact fullname="Sébastien Lugan"/>,
       <contact fullname="Arnaud Germain"/>, <contact fullname="Alexandre
       Willème"/>, <contact fullname="Gaël Rouvroy"/>, <contact
       fullname="Siegfried Foessel"/>, and <contact fullname="Jean-Baptise
       Lorent"/>.
      </t>
    </section>

  </back>

</rfc>