<?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 rfcSYSTEM "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"><!ENTITYRFC4175 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4175.xml">nbsp " "> <!ENTITYRFC4585 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4585.xml">zwsp "​"> <!ENTITYRFC4855 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4855.xml">nbhy "‑"> <!ENTITYRFC5124 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 "⁠"> ]><?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 --><rfccategory="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"/> <authorfullname="Sé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"> <organizationabbrev="UCL">Université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 4725 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"> <organizationabbrev="IIS">Fraunhoferabbrev="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/IEC21122) 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 framerates,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> <sectiontitle="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> encodedvideo signals encoded with <xref target="ISO21122-1" format="default">JPEG XS</xref> into the <xreftarget="RFC3550">Real-timetarget="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 cyclesandas well as mixing of content sources,e.g.e.g., embedding of subtitles,overlaysoverlays, or logos. Typical target compression ratios ensuring visually lossless quality are in the range of 2:1 to10: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> <sectiontitle="Conventions,numbered="true" toc="default"> <name>Conventions, Definitions, andAbbreviations">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 inBCP 14BCP 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 transportlayer, and corresponding, inlayer. 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 <xreftarget="ISO21122-3">JPEGtarget="ISO21122-3" format="default"/> (JPEG XS Part3</xref>3) that includescolor relatedcolor-related metadata required to correctly display JPEG XS video frames, such as color primaries, transfercharacteristicscharacteristics, 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 XScodestream"><vspace />codestream:</dt> <dd> A sequence of bytes representing a compressed image formatted according to <xreftarget="ISO21122-1">JPEGtarget="ISO21122-1" format="default"/> (JPEG XS Part1</xref>. </t> <t hangText="JPEG1). </dd> <dt>JPEG XS codestreamheader"><vspace />header:</dt> <dd> A sequence of bytes, starting withaan 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 XSframe"><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 headersegment"><vspace />segment:</dt> <dd> The concatenation of a <xreftarget="ISO21122-3">videotarget="ISO21122-3" format="default">video support box</xref>, a <xreftarget="ISO21122-3">colortarget="ISO21122-3" format="default">color specification box</xref>, and a JPEG XS codestream header.</t> <t hangText="JPEG</dd> <dt>JPEG XS picturesegment"><vspace />segment:</dt> <dd> The concatenation of a <xreftarget="ISO21122-3">videotarget="ISO21122-3" format="default">video support box</xref>, a <xreftarget="ISO21122-3">colortarget="ISO21122-3" format="default">color specification box</xref>, and a JPEG XS codestream.</t> <t hangText="JPEG</dd> <dt>JPEG XSstream"><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 anApplication Data UnitADU 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 waveletcoefficientscoefficients, 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 XSstream,stream; suchasmetadata could include its maximumbitrate,bit rate, its subsampling structure, its buffermodelmodel, and its frame rate.</t> </list> </t></dd> </dl> </section> <sectiontitle="Medianumbered="true" toc="default"> <name>Media FormatDescription">Description</name> <t> This section explains the terminology and concepts used in this memothat arespecific 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> <sectiontitle="Imagenumbered="true" toc="default"> <name>Image DataStructures"> <!-- FIXME -->Structures</name> <t> JPEG XS is alow-latencylow-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 theimage,image but may only cover parts of its height. </t> </section> <sectiontitle="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 withan SOC marker,</t> <t>onea Start of Codestream (SOC) marker,</li> <li>one or moreslices,</t> <t>anslices,</li> <li>an EOC marker to signal the end of thecodestream.</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> <sectiontitle="Video support boxnumbered="true" toc="default"> <name>Video Support Box andcolor 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 specificationboxbox, 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 maximumbitrate,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 optionallyonthe buffer model and the mastering display metadata. </t> <t> Note that the profile and level/sublevel, specifiedbyrespectively by the <xreftarget="ISO21122-2">Ppihtarget="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 inrespectivelythe 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, matrixcoefficientscoefficients, and video full range flag needed to specify the color space of the video stream. </t> </section> <sectiontitle="JPEGnumbered="true" toc="default"> <name>JPEG XSFrame">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 segmentsSHALL<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 isbyte exactexactly the sameforin both picture segments of the frame). </t> <t> Note that the interlaced mode, as signaled by the <xreftarget="ISO21122-3">frattarget="ISO21122-3" format="default">frat field</xref> in the video support box, indicates eitherprogressive,progressive interlacedtop-field first,top-field-first or interlacedbottom-field firstbottom-field-first mode. Thus, in the case of interlaced content, its valueSHALL<bcp14>SHALL</bcp14> also be identical in both picture segments. </t> </section> </section> <sectiontitle="RTPnumbered="true" toc="default"> <name>RTP PayloadFormat">Format</name> <t> This section specifies the payload format for JPEG XS streams over the <xreftarget="RFC3550">Real-timetarget="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 <xreftarget="RFC3550">Synchronizationtarget="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> <sectiontitle="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 packetSHALL<bcp14>SHALL</bcp14> contain (part of)oneone, and onlyoneone, packetization unit. A packetization unit may extend over multiple packets. The payload of every packetSHALL<bcp14>SHALL</bcp14> have the same size(based e.g.(based, e.g., on the Maximum Transfer Unit of thenetwork), except (possibly)network) with the possible exception of the last packet of a packetization unit. The boundaries of a packetization unitSHALL<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 unitSHALL<bcp14>SHALL</bcp14> be the first(resp.(or, respectively, last) byte of the payload (excluding its header). </t> <figureanchor="rtp_packetization" title="Exampleanchor="rtp_packetization"> <name>Example of ADUpacketization"> <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 unitSHALL<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>Sliceformat="default"/>. </dd> <dt>Slice packetization mode:in</dt> <dd>In this mode, the packetization unitSHALL<bcp14>SHALL</bcp14> be the slice,i.e.i.e., thereSHALL<bcp14>SHALL</bcp14> be data from no more than one slice per RTP packet. The first packetization unitSHALL<bcp14>SHALL</bcp14> be made of the JPEG XS header segment(i.e.(i.e., the concatenation of the VS box, the CSboxbox, 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 codestreamSHALL<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 fieldSHALL<bcp14>SHALL</bcp14> be in its own packetization unit.</t> </list> </t></dd> </dl> <figureanchor="cs_packetization" title="Exampleanchor="cs_packetization"> <name>Example ofcodestream 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> <figureanchor="slice_packetization" title="Exampleanchor="slice_packetization"> <name>Example ofslice 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 constantbit-ratebitrate (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 videoframe,frame and a constant number of RTP packets per video frame. However, to provide similar guarantees with JPEG XS in a variablebit-ratebitrate (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 aconstant bit-rateCBR 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> <sectiontitle="RTPanchor="rtp_hdr" numbered="true" toc="default"> <name>RTP HeaderUsage" 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> <figureanchor="rtp_header" title="RTP header accordinganchor="rtp_header"> <name>RTP Header According to RFC3550"> <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) [1bit]:"><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 bitSHALL<bcp14>SHALL</bcp14> be set to 1 for the last packet of the video frame/field. ItSHALL<bcp14>SHALL</bcp14> be set to 0 for all other packets. </t><t hangText="Payload</dd> <dt>Payload Type (PT) [7bits]:"><vspace /><vspace /> Abits]:</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 [32bits]:"><vspace /><vspace />bits]:</dt> <dd> <t> The RTP timestamp is set to the sampling timestamp of the content. A 90 kHz clock rateSHALL<bcp14>SHALL</bcp14> beused.<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. PacketsSHALL NOT<bcp14>SHALL NOT</bcp14> include data from multiple video frames, and all packets belonging to the same video frameSHALL<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 framebegins.<vspace /><vspace />begins.</t> <t> If the sampling instant does not correspond to an integer value of the clock, the valueSHALL<bcp14>SHALL</bcp14> be truncated to the next lowest integer, with no ambiguity. </t></list> </t></dd> </dl> </section> <sectiontitle="Payloadanchor="payload_hdr" numbered="true" toc="default"> <name>Payload HeaderUsage" 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 thepayload header."payload header". <xref target="payload_header"/>format="default"/> illustrates the structure of this payload header. </t> <figureanchor="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) [1bit]:"><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 sentout-of-orderout of order by the transmitter. If T=1, packetsSHALL<bcp14>SHALL</bcp14> be sent sequentially by the transmitter. TheT bitT-bit valueSHALL<bcp14>SHALL</bcp14> be identical for all packets of the RTP stream. </t><t hangText="pacKetization</dd> <dt>pacKetization mode (K) [1bit]:"><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 modeSHALL<bcp14>SHALL</bcp14> be used and KSHALL<bcp14>SHALL</bcp14> be set to 1. This isrequired,required because only the slice packetization mode supports out-of-order packet transmission. TheK bitK-bit valueSHALL<bcp14>SHALL</bcp14> be identical for all packets of the RTP stream. </t><t hangText="Last</dd> <dt>Last (L) [1bit]:"><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 packetizationmodemode, the L bit and M bit get an equivalent meaning, so theySHALL<bcp14>SHALL</bcp14> have identical values in each packet. </t><t hangText="Interlaced</dd> <dt>Interlaced information (I) [2bit]:"><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 [5bits]:"><vspace /><vspace />bits]:</dt> <dd> <t> TheframeFrame (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 fieldSHALL<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 [11bits]:"><vspace /><vspace />bits]:</dt> <dd> <t> ThepacketPacket (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> <sectiontitle="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 boxesSHALL<bcp14>SHALL</bcp14> retain their respective layouts for each JPEG XS frame. Thus, each video support box in the RTP streamSHALL<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 offsetsSHALL 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 packetizationmodemode, 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> <figureanchor="rtp_cs_progressive_packet_data" title="Exampleanchor="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/> <figureanchor="rtp_cs_interlaced_packet_data" title="Exampleanchor="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/> <figureanchor="rtp_slice_progressive_packet_data" title="Exampleanchor="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/> <figureanchor="rtp_slice_interlaced_packet_data" title="Exampleanchor="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> <sectiontitle="Trafficanchor="tsdt" numbered="true" toc="default"> <name>Traffic Shaping and DeliveryTiming" anchor="tsdt">Timing</name> <t> In order to facilitate proper synchronization between senders andreceiversreceivers, it isRECOMMENDED<bcp14>RECOMMENDED</bcp14> to implement traffic shaping and delivery timing in accordance with the Network Compatibility Model compliance definitions specified in <xreftarget="SMPTE-ST2110-21" />.target="SMPTE2110-21" format="default"/>. In such a case, the session descriptionSHALL<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> <sectiontitle="Congestionnumbered="true" toc="default"> <name>Congestion ControlConsiderations">Considerations</name> <t> Congestion control for RTPSHALL<bcp14>SHALL</bcp14> be used in accordance with <xref target="RFC3550"/>,format="default"/> and with any applicable RTPprofile: e.g.profile, e.g., <xreftarget="RFC3551">RTP/AVP</xref>target="RFC3551" format="default">RTP/AVP</xref> or <xreftarget="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 thiscasecase, the users of this payload formatSHALL<bcp14>SHALL</bcp14> monitor packet loss to ensure that the packet loss rate is within acceptable parameters. This can beachievedachieved, forexampleexample, by means ofthe<xreftarget="RFC8888">RTPtarget="RFC8888" format="default">RTP Control Protocol (RTCP) Feedback for Congestion Control</xref>. </t> <t> In addition, <xreftarget="RFC8083">Circuit Breakers</xref>target="RFC8083" format="default"/> is an update to <xreftarget="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 standardSHALL<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> <sectiontitle="Payloadnumbered="true" toc="default"> <name>Payload FormatParameters">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 valuesSHALL<bcp14>SHALL</bcp14> be consistent with the payload. </t> <sectiontitle="Mediaanchor="media_type_def" numbered="true" toc="default"> <name>Media TypeRegistration" anchor="media_type_def">Registration</name> <t><list style="hanging"> <t>ThisThis registration is done using the template defined in <xref target="RFC6838"/>format="default"/> and following <xref target="RFC4855"/>.</t> <t>Theformat="default"/>. </t> <t> The receiverSHALL<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 formatSHALL<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 valueSHALL<bcp14>SHALL</bcp14> be equal to theK bitK-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 valueSHALL<bcp14>SHALL</bcp14> be equal to theT bitT-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 bitSHALL<bcp14>SHALL</bcp14> be set to 1.</t> <t hangText="profile:"></dd> <dt>profile:</dt> <dd> The <xreftarget="ISO21122-2">JPEGtarget="ISO21122-2" format="default">JPEG XS profile</xref> in use. Any white space Unicode character in the profile nameSHALL<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 <xreftarget="ISO21122-2">JPEGtarget="ISO21122-2" format="default">JPEG XS level</xref> in use. Any white space Unicode character in the level nameSHALL<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 <xreftarget="ISO21122-2">JPEGtarget="ISO21122-2" format="default">JPEG XS sublevel</xref> in use. Any white space Unicode character in the sublevel nameSHALL<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 and3276732767, inclusive.</t> <t hangText="height:"></dd> <dt>height:</dt> <dd> Determines the number of lines per video frame. This is an integer between 1 and3276732767, inclusive.</t> <t hangText="exactframerate:"></dd> <dt>exactframerate:</dt> <dd> Signals the video frame rate in frames per second. Integer frame ratesSHALL<bcp14>SHALL</bcp14> be signaled as a single decimal number(e.g.(e.g., "25") whilst non-integer frame ratesSHALL<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 formatSHALL<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 ofRecommendation 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"/>, orRecommendation 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 ofRecommendation 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 ofRecommendation 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 ofRecommendation 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"/>, orST 2065-3) SHALL<xref target="SMPTE2065-3" format="default"/>) <bcp14>SHALL</bcp14> use the following value for the Media Type Parametersampling. <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 inSMPTE ST 428-1) SHALL<xref target="SMPTE428-1" format="default"/>) <bcp14>SHALL</bcp14> use the following value for the Media Type Parametersampling. <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 inSMPTE RP 157 SHALL<xref target="SMPTE157" format="default"/> <bcp14>SHALL</bcp14> use the value key for the Media Type Parametersampling."sampling". TheKeykey signal is represented as a singlecomponent. <figure><artwork><![CDATA[ KEY (Samplescomponent: </t> <dl indent="15"> <dt>KEY</dt><dd>(Samples of the keysignal) ]]></artwork></figure> <vspace /><vspace />signal)</dd> </dl> <t> Signals utilizing a color sub-sampling other than what is defined hereSHALL<bcp14>SHALL</bcp14> use the following value for the Media Type Parametersampling. <figure><artwork><![CDATA[ UNSPECIFIED (Sampling"sampling": </t> <dl indent="15"> <dt>UNSPECIFIED</dt><dd>(Sampling signaled by thepayload.) ]]></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 specificationare: <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.2100are 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 "Systemcolorimetry". ST2065-1 SMPTE ST 2065-1 Academycolorimetry".</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 "1931Observer". UNSPECIFIED ColorimetryObserver".</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 andreceiver. ]]></artwork></figure>receiver.</dd> </dl> <t> Signals utilizing theRecommendation ITU-R BT.2100<xref target="BT.2100-2" format="default"/> colorimetrySHOULD<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 specificationare: <figure><artwork><![CDATA[ SDR Standardare the following: </t> <dl indent="15"> <dt>SDR:</dt><dd>Standard Dynamic Range video streams that utilize theOETFOptical Electrical Transfer Function (OETF) ofITU-R Recommendation BT.709<xref target="BT.709-6" format="default"/> orITU-R Recommendation BT.2020.<xref target="BT.2020-2" format="default"/>. Such streamsSHALL<bcp14>SHALL</bcp14> be assumed to target theEOTFElectro-Optical Transfer Function (EOTF) specified inITU-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 ofITU-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 ofITU-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 andreceiver. ]]></artwork></figure> </t> <t hangText="RANGE:">receiver.</dd> </dl> </dd> <dt>RANGE:</dt> <dd> This parameterSHOULD<bcp14>SHOULD</bcp14> be used to signal the encoding range of the sample values within the stream. When paired withITU Rec BT.2100<xref target="BT.2100-2" format="default"/> colorimetry, this parameter has two allowedvaluesvalues, NARROW and FULL, corresponding to the ranges specified intableTABLE 9 ofITU 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 inSMPTE RP 2077.<xref target="SMPTE2077" format="default"/>. In the absence of this parameter, and for all but the UNSPECIFIED colorimetry, NARROWSHALL<bcp14>SHALL</bcp14> be the assumed value. When paired with the UNSPECIFIED colorimetry, FULLSHALL<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; seeSection 4.8 in<xref target="RFC6838"/>. </t> <t hangText="Security considerations:"><vspace /> Please seesectionFormat="of" section="4.8" format="default"/>. </dd> <dt>Security considerations:</dt> <dd> See the <xreftarget="security">Securitytarget="security" format="none">Security Considerations</xref> section of RFCXXXX. </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 RFCXXXX and its References section. </t> <t hangText="Applications9134. </dd> <dt>Applications that use this mediatype:"><vspace />Anytype:</dt> <dd>Any application that transmits video over RTP (like SMPTE ST2110).</t> <t hangText="Fragment2110).</dd> <dt>Fragment identifierconsiderations:"><vspace />N/A.</t> <t hangText="Additional information:"><vspace />None.</t> <t hangText="Personconsiderations:</dt> <dd>N/A</dd> <dt>Additional information:</dt> <dd>None</dd> <dt>Person & email address to contact for furtherinformation:"><vspace />S. Luganinformation:</dt> <dd>T. Bruylants <rtp@intopix.com> andTh.T. Richter<jpeg-xs-techsupport@iis.fraunhofer.de>.</t> <t hangText="Intended usage:"><vspace />COMMON</t> <t hangText="Restrictions<jpeg-xs-techsupport@iis.fraunhofer.de>.</dd> <dt>Intended usage:</dt> <dd>COMMON</dd> <dt>Restrictions onusage:"><vspace />usage:</dt> <dd> This media type depends on RTPframing, and henceframing; hence, it is only defined for transfer via <xreftarget="RFC3550">RTP</xref>.</t> <t hangText="Author:"><vspace />Seetarget="RFC3550" format="default">RTP</xref>.</dd> <dt>Author:</dt> <dd>See the Authors' Addresses section of RFCXXXX.</t> <t hangText="Change controller:"><vspace />IETF9134.</dd> <dt>Change controller:</dt> <dd>IETF Audio/Video Transportworking groupWorking Group delegated from the IESG.</t> </list> </t></dd> </dl> </section> </section> <sectiontitle="SDP Parameters">numbered="true" toc="default"> <name>SDP Parameters</name> <t> A mapping of the parameters into the <xreftarget="RFC8866">Sessiontarget="RFC8866" format="default">Session Description Protocol (SDP)</xref> is provided for applications that use SDP. </t> <sectiontitle="Mappingnumbered="true" toc="default"> <name>Mapping of Payload Type Parameters toSDP">SDP</name> <t> The media type video/jxsv string is mapped to fields in the <xreftarget="RFC8866">Sessiontarget="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 documentSHALL<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 theMIMEmedia type string as a semicolon-separated list of parameter=value pairs.</t> </list> </t></dd> </dl> <t> All parameters of the media formatSHALL<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 dataSHALL<bcp14>SHALL</bcp14> prevail. </t> <t> The receiverSHALL<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 thispage,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> <sectiontitle="Usagenumbered="true" toc="default"> <name>Usage with SDP Offer/AnswerModel">Model</name> <t> When JPEG XS is offered over RTP using <xreftarget="RFC3264">SDPtarget="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" attributeSHALL<bcp14>SHALL</bcp14> be present specifying the required parameter"packetmode","packetmode" andMAY<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 answererSHALL<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, itSHALL<bcp14>SHALL</bcp14> reply with the exact sameparametersparameter values in the "a=fmtp" attribute asit wasthey were initially offered.</t> <t></dd> <dt/> <dd> The same RTP payload type number used in the offerSHOULD<bcp14>SHOULD</bcp14> be used in the answer, as specified in <xref target="RFC3264"/>. </t> </list> </t>format="default"/>. </dd> </dl> </section> </section> <sectiontitle="IANA Considerations">numbered="true" toc="default"> <name>IANA Considerations</name> <t>TheIANAis requested to registerhas registered the media type registration "video/jxsv" as specified in <xref target="media_type_def"/>.format="default"/>. The media typeishas alsorequested to bebeen added to the IANA registry for "RTP Payload FormatMIME types" <https://www.iana.org/assignments/rtp-parameters>.Media Types" <eref brackets ="angle" target="https://www.iana.org/assignments/rtp-parameters"/>. </t> </section> <sectiontitle="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 <xreftarget="RFC3551">RTP/AVP</xref>,target="RFC3551" format="default">RTP/AVP</xref>, <xreftarget="RFC4585">RTP/AVPF</xref>,target="RFC4585" format="default">RTP/AVPF</xref>, <xreftarget="RFC3711">RTP/SAVP</xref>,target="RFC3711" format="default">RTP/SAVP</xref>, or <xreftarget="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 <xreftarget="RFC7202">"Securingtarget="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 <xreftarget="RFC7201">"Optionstarget="RFC7201" format="default">"Options for Securing RTP Sessions"</xref>. ApplicationsSHOULD<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 decodingoperation and thusoperation; 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 thatHDhigh-definition (HD) orUHDTV JPEG XS-encodedultra-high-definition (UHD) video that is encoded with JPEG XS can have significant bandwidth requirements (typically more than 1 Gbps forultra high-definitionUHD video, especially if using high framerate). This is sufficient to cause potential fordenial-of-servicedenial of service if transmitted onto most currently available Internet paths. </t> <t> Accordingly, if best-effort service is being used, users of this payload formatSHALL<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 multicastsession),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, receiversSHOULD<bcp14>SHOULD</bcp14> monitor packet loss to ensure that the service that was requested is actually being delivered. If it is not, then theySHOULD<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ème, Gaë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/... ).--><referencestitle="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> <referenceanchor="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 forVideo </title>Video</title> <author><organization>Society of Motion Picture and Television Engineers</organization><organization>SMPTE</organization> </author> <dateyear="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>