rfc9134xml2.original.xml | rfc9134.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!-- This template is for creating an Internet Draft using xml2rfc, | ||||
which is available here: http://xml.resource.org. --> | ||||
<!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 | <!DOCTYPE rfc [ | |||
.2119.xml"> | <!ENTITY nbsp " "> | |||
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | <!ENTITY zwsp "​"> | |||
.2629.xml"> | <!ENTITY nbhy "‑"> | |||
<!ENTITY RFC3264 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | <!ENTITY wj "⁠"> | |||
.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"> | ||||
<!ENTITY RFC4585 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.4585.xml"> | ||||
<!ENTITY RFC4855 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.4855.xml"> | ||||
<!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"> | ||||
]> | ]> | |||
<?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" 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 ***** --> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-payload-rtp- jpegxs-18" number="9134" ipr="trust200902" obsoletes="" updates="" submissionTyp e="IETF" category="std" consensus="true" xml:lang="en" tocInclude="true" tocDept h="4" symRefs="true" sortRefs="true" version="3"> | |||
<front> | <front> | |||
<title abbrev="RTP Payload Format for JPEG XS"> | <title abbrev="RTP Payload Format for JPEG XS"> | |||
RTP Payload Format for ISO/IEC 21122 (JPEG XS) | RTP Payload Format for ISO/IEC 21122 (JPEG XS) | |||
</title> | </title> | |||
<seriesInfo name="RFC" value="9134"/> | ||||
<author fullname="Sébastien Lugan" initials="S.L." | <author fullname="Tim Bruylants" initials="T" surname="Bruylants"> | |||
surname="Lugan"> | <organization abbrev="intoPIX">intoPIX S.A.</organization> | |||
<organization abbrev="intoPIX">intoPIX S.A.</organization> | <address> | |||
<address> | <postal> | |||
<postal> | <street>Rue Emile Francqui, 9</street> | |||
<street>Rue Emile Francqui, 9</street> | <city>Mont-Saint-Guibert</city> | |||
<city>1435 Mont-Saint-Guibert</city> | <code>1435</code> | |||
<country>Belgium</country> | <country>Belgium</country> | |||
</postal> | </postal> | |||
<phone>+32 10 23 84 70</phone> | <phone>+32 10 23 84 70</phone> | |||
<email>rtp@intopix.com</email> | <email>t.bruylants@intopix.com</email> | |||
<uri>https://www.intopix.com/</uri> | <uri>https://www.intopix.com/</uri> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Antonin Descampe" initials="A" surname="Descampe"> | ||||
<author fullname="Antonin Descampe" initials="A.D." | <organization abbrev="UCLouvain">Université catholique de Louvain</organiz | |||
surname="Descampe"> | ation> | |||
<organization abbrev="UCL">Université catholique de Louvain</organiz | <address> | |||
ation> | <postal> | |||
<address> | <extaddr>bte L2.03.02</extaddr> | |||
<postal> | <street>Ruelle de la Lanterne Magique, 14</street> | |||
<street>Place du Levant, 3 - bte L5.03.02</street> | <city>Louvain-la-Neuve</city> | |||
<city>1348 Louvain-la-Neuve</city> | <code>1348</code> | |||
<country>Belgium</country> | <country>Belgium</country> | |||
</postal> | </postal> | |||
<phone>+32 10 47 25 97</phone> | <phone>+32 10 47 27 87</phone> | |||
<email>antonin.descampe@uclouvain.be</email> | <email>antonin.descampe@uclouvain.be</email> | |||
<uri>https://uclouvain.be/en/research-institutes/icteam</uri> | <uri>https://uclouvain.be/antonin.descampe</uri> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Corentin Damman" initials="C" surname="Damman"> | ||||
<author fullname="Corentin Damman" initials="C.D." | <organization abbrev="intoPIX">intoPIX S.A.</organization> | |||
surname="Damman"> | <address> | |||
<organization abbrev="intoPIX">intoPIX S.A.</organization> | <postal> | |||
<address> | <street>Rue Emile Francqui, 9</street> | |||
<postal> | <city>Mont-Saint-Guibert</city> | |||
<street>Rue Emile Francqui, 9</street> | <code>1435</code> | |||
<city>1435 Mont-Saint-Guibert</city> | <country>Belgium</country> | |||
<country>Belgium</country> | </postal> | |||
</postal> | <phone>+32 10 23 84 70</phone> | |||
<phone>+32 10 23 84 70</phone> | <email>c.damman@intopix.com</email> | |||
<email>c.damman@intopix.com</email> | <uri>https://www.intopix.com/</uri> | |||
<uri>https://www.intopix.com/</uri> | </address> | |||
</address> | </author> | |||
</author> | <author fullname="Thomas Richter" initials="T" surname="Richter"> | |||
<organization abbrev="Fraunhofer IIS">Fraunhofer IIS</organization> | ||||
<author fullname="Thomas Richter" initials="T.R." | <address> | |||
surname="Richter"> | <postal> | |||
<organization abbrev="IIS">Fraunhofer IIS</organization> | <street>Am Wolfsmantel 33</street> | |||
<address> | <city>Erlangen</city> | |||
<postal> | <code>91048</code> | |||
<street>Am Wolfsmantel 33</street> | <country>Germany</country> | |||
<city>91048 Erlangen</city> | </postal> | |||
<country>Germany</country> | <phone>+49 9131 776 5126</phone> | |||
</postal> | <email>thomas.richter@iis.fraunhofer.de</email> | |||
<phone>+49 9131 776 5126</phone> | <uri>https://www.iis.fraunhofer.de/</uri> | |||
<email>thomas.richter@iis.fraunhofer.de</email> | </address> | |||
<uri>https://www.iis.fraunhofer.de/</uri> | </author> | |||
</address> | <date year="2021" month="October" /> | |||
</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" /> | ||||
<!-- If the month and year are both specified and are the current ones, xml2r | ||||
fc will fill | ||||
in the current day for you. If only the current year is specified, xml2r | ||||
fc 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 sp | ||||
ecified for the | ||||
purpose of calculating the expiry date). With drafts it is normally suff | ||||
icient to | ||||
specify just the year. --> | ||||
<!-- Meta-data Declarations --> | ||||
<area>General</area> | <area>General</area> | |||
<workgroup>avtcore</workgroup> | ||||
<workgroup>avtcore</workgroup> | <keyword>video</keyword> | |||
<!-- | <keyword>transport</keyword> | |||
<workgroup>Internet Engineering Task Force</workgroup> | <keyword>protocol</keyword> | |||
<keyword>Joint</keyword> | ||||
<!-- WG name at the upperleft corner of the doc, | <keyword>Photographic</keyword> | |||
IETF is fine for individual submissions. | <keyword>Experts</keyword> | |||
If this element is not present, the default is "Network Working Group", | <keyword>Group</keyword> | |||
which is used by the RFC Editor as a nod to the history of the IETF. --> | <keyword>real-time</keyword> | |||
<keyword>stream</keyword> | ||||
<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. --> | ||||
<abstract> | <abstract> | |||
<t> | ||||
<t> | ||||
This document specifies a Real-Time Transport Protocol (RTP) payload | This document specifies a Real-Time Transport Protocol (RTP) payload | |||
format to be used for transporting JPEG XS (ISO/IEC 21122) encoded video. | format to be used for transporting video encoded with JPEG XS (ISO/IEC 21 122). | |||
JPEG XS is a low-latency, lightweight image coding system. Compared to an | JPEG XS is a low-latency, lightweight image coding system. Compared to an | |||
uncompressed video use case, it allows higher resolutions and video frame | uncompressed video use case, it allows higher resolutions and video frame | |||
rates, while offering visually lossless quality, reduced power | rates while offering visually lossless quality, reduced power | |||
consumption, and encoding-decoding latency confined to a fraction of a vi deo frame. | consumption, and encoding-decoding latency confined to a fraction of a vi deo frame. | |||
</t> | </t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | ||||
<middle> | <section numbered="true" toc="default"> | |||
<section title="Introduction"> | <name>Introduction</name> | |||
<t> | <t> | |||
This document specifies a payload format for packetization of | This document specifies a payload format for packetization of video | |||
<xref target="ISO21122-1">JPEG XS</xref> encoded video signals into the | signals encoded with <xref target="ISO21122-1" format="default">JPEG | |||
<xref target="RFC3550">Real-time Transport Protocol (RTP)</xref>. | XS</xref> into the <xref target="RFC3550" format="default">Real-time | |||
</t> | Transport Protocol (RTP)</xref>. | |||
<t> | </t> | |||
<t> | ||||
The JPEG XS coding system offers compression and recompression of image | The JPEG XS coding system offers compression and recompression of image | |||
sequences with very moderate computational resources while remaining | sequences with very moderate computational resources while remaining | |||
robust under multiple compression and decompression cycles and mixing of | robust under multiple compression and decompression cycles as well as mix | |||
content sources, e.g. embedding of subtitles, overlays or logos. Typical | ing of | |||
content sources, e.g., embedding of subtitles, overlays, or logos. Typica | ||||
l | ||||
target compression ratios ensuring visually lossless quality are in the | target compression ratios ensuring visually lossless quality are in the | |||
range of 2:1 to 10:1, depending on the nature of the source material. The | range of 2:1 to 10:1 depending on the nature of the source material. The | |||
latency that is introduced by the encoding-decoding process can be confin ed | latency that is introduced by the encoding-decoding process can be confin ed | |||
to a fraction of a video frame, typically between a small number of lines | to a fraction of a video frame, typically between a small number of lines | |||
down to below a single line. | down to below a single line. | |||
</t> | </t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Conventions, Definitions, and Abbreviations"> | <name>Conventions, Definitions, and Abbreviations</name> | |||
<t> | <t> | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
and "OPTIONAL" in this document are to be interpreted as described | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
in BCP 14 <xref target="RFC2119" /> <xref target="RFC8174" /> when, | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | ||||
are to be interpreted as described in BCP 14 <xref target="RFC2119 | ||||
" | ||||
format="default"/> <xref target="RFC8174" format="default"/> when, | ||||
and only when, they appear in all capitals, as shown here. | and only when, they appear in all capitals, as shown here. | |||
</t> | </t> | |||
<t> | ||||
<list style="hanging"> | ||||
<t hangText="Application Data Unit (ADU)"><vspace /> | ||||
The unit of source data provided as payload to the transport layer, | ||||
and corresponding, in this RTP payload definition, to a single | ||||
JPEG XS video frame. | ||||
</t> | ||||
<t hangText="Color specification box (CS box)"><vspace /> | <dl newline="true" spacing="normal"> | |||
An ISO color specification box defined in <xref | <dt>Application Data Unit (ADU):</dt> | |||
target="ISO21122-3">JPEG XS Part 3</xref> that includes | <dd> | |||
color related metadata required to correctly display JPEG XS video fr | The unit of source data provided as payload to the transport layer. | |||
ames, | In this RTP payload definition, it corresponds to a single JPEG | |||
such as color primaries, transfer characteristics and matrix | XS video frame. | |||
</dd> | ||||
<dt>Color Specification (CS) box:</dt> | ||||
<dd> | ||||
An ISO color specification box defined in <xref target="ISO21122-3" | ||||
format="default"/> (JPEG XS Part 3) that includes color-related | ||||
metadata required to correctly display JPEG XS video frames, such | ||||
as color primaries, transfer characteristics, and matrix | ||||
coefficients. | coefficients. | |||
</t> | </dd> | |||
<dt>End of Codestream (EOC) marker:</dt> | ||||
<t hangText="EOC marker"><vspace /> | <dd> | |||
A marker that consists of the two bytes 0xff11 indicating the | A marker that consists of the two bytes 0xff11 indicating the end of | |||
end of a JPEG XS codestream. | a JPEG XS codestream. | |||
</t> | </dd> | |||
<dt>JPEG XS codestream:</dt> | ||||
<t hangText="JPEG XS codestream"><vspace /> | <dd> | |||
A sequence of bytes representing a compressed image formatted | A sequence of bytes representing a compressed image formatted | |||
according to <xref target="ISO21122-1">JPEG XS Part 1</xref>. | according to <xref target="ISO21122-1" format="default"/> (JPEG XS Pa | |||
</t> | rt 1). | |||
</dd> | ||||
<t hangText="JPEG XS codestream header"><vspace /> | <dt>JPEG XS codestream header:</dt> | |||
A sequence of bytes, starting with a SOC marker, at the beginning of | <dd> | |||
A sequence of bytes, starting with an SOC marker, at the beginning of | ||||
each JPEG XS codestream encoded in multiple markers and marker | each JPEG XS codestream encoded in multiple markers and marker | |||
segments that does not carry entropy coded data, but metadata such as | segments that does not carry entropy coded data, but metadata such as | |||
the video frame dimension and component precision. | the video frame dimension and component precision. | |||
</t> | </dd> | |||
<dt>JPEG XS frame:</dt> | ||||
<t hangText="JPEG XS frame"><vspace /> | <dd> | |||
In the case of progressive video, a single JPEG XS picture segment. I n | In the case of progressive video, a single JPEG XS picture segment. I n | |||
the case of interlaced video, the concatenation of two JPEG XS | the case of interlaced video, the concatenation of two JPEG XS | |||
picture segments. | picture segments. | |||
</t> | </dd> | |||
<dt>JPEG XS header segment:</dt> | ||||
<t hangText="JPEG XS header segment"><vspace /> | <dd> | |||
The concatenation of a <xref target="ISO21122-3">video support box</x | The concatenation of a <xref target="ISO21122-3" | |||
ref>, | format="default">video support box</xref>, a <xref | |||
a <xref target="ISO21122-3">color specification box</xref>, | target="ISO21122-3" format="default">color specification | |||
and a JPEG XS codestream header. | box</xref>, and a JPEG XS codestream header. | |||
</t> | </dd> | |||
<dt>JPEG XS picture segment:</dt> | ||||
<t hangText="JPEG XS picture segment"><vspace /> | <dd> | |||
The concatenation of a <xref target="ISO21122-3">video support box</x | The concatenation of a <xref target="ISO21122-3" | |||
ref>, | format="default">video support box</xref>, a <xref | |||
a <xref target="ISO21122-3">color specification box</xref>, | target="ISO21122-3" format="default">color specification | |||
and a JPEG XS codestream. | box</xref>, and a JPEG XS codestream. | |||
</t> | </dd> | |||
<dt>JPEG XS stream:</dt> | ||||
<t hangText="JPEG XS stream"><vspace /> | <dd> | |||
A sequence of JPEG XS frames. | A sequence of JPEG XS frames. | |||
</t> | </dd> | |||
<dt>Marker:</dt> | ||||
<t hangText="Marker"><vspace /> | <dd> | |||
A two-byte functional sequence that is part of a JPEG XS | A two-byte functional sequence that is part of a JPEG XS | |||
codestream starting with a 0xff byte and a subsequent byte | codestream starting with a 0xff byte and a subsequent byte | |||
defining its function. | defining its function. | |||
</t> | </dd> | |||
<dt>Marker segment:</dt> | ||||
<t hangText="Marker segment"><vspace /> | <dd> | |||
A marker along with a 16-bit marker size and payload data | A marker along with a 16-bit marker size and payload data | |||
following the size. | following the size. | |||
</t> | </dd> | |||
<dt>Packetization unit:</dt> | ||||
<t hangText="Packetization unit"><vspace /> | <dd> | |||
A portion of an Application Data Unit whose boundaries coincide | A portion of an ADU whose boundaries coincide | |||
with boundaries of RTP packet payloads (excluding payload header), | with boundaries of RTP packet payloads (excluding payload header), | |||
i.e. the first (resp. last) byte of a packetization unit is the | i.e., the first (or respectively, last) byte of a packetization unit | |||
first (resp. last) byte of an RTP packet payload (excluding its | is the | |||
first (or respectively, last) byte of an RTP packet payload (excludin | ||||
g its | ||||
payload header). | payload header). | |||
</t> | </dd> | |||
<dt>SLH (SLice Header) marker:</dt> | ||||
<t hangText="SLH marker"><vspace /> | ||||
A marker that represents a slice header, as defined in <xref target=" | ||||
ISO21122-1" />. | ||||
</t> | ||||
<t hangText="Slice"><vspace /> | ||||
The smallest independently decodable unit of a JPEG XS | ||||
codestream, bearing in mind that it decodes to wavelet coefficients | ||||
which still require inverse wavelet filtering to give an image. | ||||
</t> | ||||
<t hangText="SOC marker"><vspace /> | <dd> | |||
A marker that represents a slice header, as defined in <xref | ||||
target="ISO21122-1" 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, which | ||||
still require inverse wavelet filtering to give an image. | ||||
</dd> | ||||
<dt>Start of a Codestream (SOC) marker:</dt> | ||||
<dd> | ||||
A marker that consists of the two bytes 0xff10 indicating the | A marker that consists of the two bytes 0xff10 indicating the | |||
start of a JPEG XS codestream. The SOC marker is considered an | start of a JPEG XS codestream. The SOC marker is considered an | |||
integral part of the JPEG XS codestream header. | integral part of the JPEG XS codestream header. | |||
</t> | </dd> | |||
<dt>Video Support (VS) box:</dt> | ||||
<t hangText="Video support box (VS box)"><vspace /> | <dd> | |||
An ISO video support box, as defined in <xref target="ISO21122-3" />, | An ISO video support box, as defined in <xref target="ISO21122-3" for | |||
mat="default"/>, | ||||
that includes metadata required to play back a JPEG XS | that includes metadata required to play back a JPEG XS | |||
stream, such as its maximum bitrate, its subsampling structure, its | stream; such metadata could include its maximum bit rate, its subsamp | |||
buffer model and its frame rate. | ling structure, its | |||
</t> | buffer model, and its frame rate. | |||
</dd> | ||||
</list> | </dl> | |||
</t> | </section> | |||
</section> | <section numbered="true" toc="default"> | |||
<name>Media Format Description</name> | ||||
<t> | ||||
This section explains the terminology and concepts used in this memo spec | ||||
ific to JPEG XS | ||||
as specified in <xref target="ISO21122-1" format="default"/>, <xref targe | ||||
t="ISO21122-2" format="default"/>, and <xref target="ISO21122-3" format="default | ||||
"/>. | ||||
</t> | ||||
<section numbered="true" toc="default"> | ||||
<name>Image Data Structures</name> | ||||
<section title="Media Format Description"> | ||||
<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" />, <xref target="ISO21122-2" / | ||||
>, and <xref target="ISO21122-3" />. | ||||
</t> | ||||
<section title="Image Data Structures"> | ||||
<!-- FIXME --> | ||||
<t> | <t> | |||
JPEG XS is a low-latency lightweight image coding system for coding | JPEG XS is a low-latency, lightweight image coding system for coding | |||
continuous-tone grayscale or continuous-tone color digital images. | continuous-tone grayscale or continuous-tone color digital images. | |||
</t> | </t> | |||
<t> | <t> | |||
This coding system provides an efficient representation of image | This coding system provides an efficient representation of image | |||
signals through the mathematical tool of wavelet analysis. The wavelet | signals through the mathematical tool of wavelet analysis. The wavelet | |||
filter process separates each component into multiple bands, where | filter process separates each component into multiple bands, where | |||
each band consists of multiple coefficients describing the image | each band consists of multiple coefficients describing the image | |||
signal of a given component within a frequency domain specific to the | signal of a given component within a frequency domain specific to the | |||
wavelet filter type, i.e. the particular filter corresponding to the | wavelet filter type, i.e., the particular filter corresponding to the | |||
band. | band. | |||
</t> | </t> | |||
<t> | <t> | |||
Wavelet coefficients are grouped into precincts, where each precinct | Wavelet coefficients are grouped into precincts, where each precinct | |||
includes all coefficients over all bands that contribute to a spatial | includes all coefficients over all bands that contribute to a spatial | |||
region of the image. | region of the image. | |||
</t> | </t> | |||
<t> | <t> | |||
One or multiple precincts are furthermore combined into slices | One or multiple precincts are furthermore combined into slices | |||
consisting of an integer number of precincts. Precincts do not | consisting of an integer number of precincts. Precincts do not | |||
cross slice boundaries, and wavelet coefficients in precincts that | cross slice boundaries, and wavelet coefficients in precincts that | |||
are part of different slices can be decoded independently of each | are part of different slices can be decoded independently of each | |||
other. Note, however, that the wavelet transformation runs across | other. However, note that the wavelet transformation runs across | |||
slice boundaries. A slice always extends over the full width of the | slice boundaries. A slice always extends over the full width of the | |||
image, but may only cover parts of its height. | image but may only cover parts of its height. | |||
</t> | </t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Codestream"> | <name>Codestream</name> | |||
<t> | <t> | |||
A JPEG XS codestream is formed by (in the given order): | A JPEG XS codestream is formed by (in the given order): | |||
<list style="symbols"> | </t> | |||
<t>a JPEG XS codestream header, which starts with an SOC marker,</t> | <ul spacing="normal"> | |||
<t>one or more slices,</t> | <li>a JPEG XS codestream header, which starts with a Start of Codestre | |||
<t>an EOC marker to signal the end of the codestream.</t> | am (SOC) marker,</li> | |||
</list> | <li>one or more slices,</li> | |||
</t> | <li>an EOC marker to signal the end of the codestream.</li> | |||
<t> | </ul> | |||
<t> | ||||
The JPEG XS codestream format, including the definition of all | The JPEG XS codestream format, including the definition of all | |||
markers, is further defined in <xref target="ISO21122-1" />. | markers, is further defined in <xref target="ISO21122-1" format="defaul t"/>. | |||
It represents sample values of a single image, without any interpretati on | It represents sample values of a single image, without any interpretati on | |||
relative to a color space. | relative to a color space. | |||
</t> | </t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Video support box and color specification box"> | <name>Video Support Box and Color Specification Box</name> | |||
<t> | <t> | |||
While the information defined in the codestream is sufficient to | While the information defined in the codestream is sufficient to | |||
reconstruct the sample values of one image, the interpretation of | reconstruct the sample values of one image, the interpretation of | |||
the samples remains undefined by the codestream itself. This | the samples remains undefined by the codestream itself. This | |||
interpretation is given by the video support box and the color | interpretation is given by the video support box and the color | |||
specification box which contain significant information to correctly | specification box, which contain significant information to correctly | |||
play the JPEG XS stream. The layout and syntax of these boxes, together | play the JPEG XS stream. The layout and syntax of these boxes, together | |||
with their content, are defined in <xref target="ISO21122-3" />. | with their content, are defined in <xref target="ISO21122-3" format="de | |||
</t> | fault"/>. | |||
<t> | </t> | |||
The video support box provides information on the maximum bitrate, | <t> | |||
the frame rate, the interlaced mode (progressive or interlaced), | The video support box provides information on the maximum bit rate, | |||
the subsampling image format, the informative timecode of the current | the frame rate, the interlaced mode (progressive or interlaced), the | |||
JPEG XS frame, the profile, level/sublevel used, and optionally on the | subsampling image format, the informative timecode of the current | |||
buffer model and the mastering display metadata. | JPEG XS frame, the profile, the level/sublevel used, and optionally | |||
</t> | the buffer model and the mastering display metadata. | |||
<t> | </t> | |||
Note that the profile and level/sublevel, specified by respectively the | <t> | |||
<xref target="ISO21122-2">Ppih and Plev fields</xref>, specify limits o | Note that the profile and level/sublevel, specified respectively by | |||
n the capabilities needed to decode | the <xref target="ISO21122-2" format="default">Ppih and Plev | |||
the codestream and handle the output. Profiles represent a limit on the | fields</xref>, specify limits on the capabilities needed to decode | |||
required algorithmic features and parameter ranges used in the codestre | the codestream and handle the output. Profiles represent a limit on | |||
am. | the required algorithmic features and parameter ranges used in the | |||
The combination of level and sublevel defines a lower bound on the requ | codestream. The combination of level and sublevel defines a lower | |||
ired | bound on the required throughput for a decoder in the | |||
throughput for a decoder in respectively the image (or decoded) domain | image (or decoded) domain and the codestream (or coded) domain, respect | |||
and | ively. The | |||
the codestream (or coded) domain. The actual defined profiles and level | actual defined profiles and levels/sublevels, along with the | |||
s/sublevels, | associated values for the Ppih and Plev fields, are defined in <xref | |||
along with the associated values for the Ppih and Plev fields, are defi | target="ISO21122-2" format="default"/>. | |||
ned | </t> | |||
in <xref target="ISO21122-2" />. | <t> | |||
</t> | ||||
<t> | ||||
The color specification box indicates the color primaries, transfer | The color specification box indicates the color primaries, transfer | |||
characteristics, matrix coefficients and video full range flag needed | characteristics, matrix coefficients, and video full range flag needed | |||
to specify the color space of the video stream. | to specify the color space of the video stream. | |||
</t> | </t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="JPEG XS Frame"> | <name>JPEG XS Frame</name> | |||
<t> | <t> | |||
The concatenation of a video support box, a color specification box, | The concatenation of a video support box, a color specification box, | |||
and a JPEG XS codestream forms a JPEG XS picture segment. | and a JPEG XS codestream forms a JPEG XS picture segment. | |||
</t> | </t> | |||
<t> | <t> | |||
In the case of a progressive video stream, each JPEG XS frame co | In the case of a progressive video stream, each JPEG XS frame consists | |||
nsists of one single | of one single | |||
JPEG XS picture segment. | JPEG XS picture segment. | |||
</t> | </t> | |||
<t> | <t> | |||
In the case of an interlaced video stream, each JPEG XS frame is made o | In the case of an interlaced video stream, each JPEG XS frame is made | |||
f two | of two concatenated JPEG XS picture segments. The codestream of each | |||
concatenated JPEG XS picture segments. The codestream of each picture s | picture segment corresponds exclusively to one of the two fields of | |||
egment corresponds | the interlaced frame. Both picture segments <bcp14>SHALL</bcp14> | |||
exclusively to one of the two fields of the interlaced frame. Both pict | contain identical boxes (i.e., the byte sequence that contains the | |||
ure segments | concatenation of the video support box and the color specification | |||
SHALL contain identical boxes (i.e. concatenation of the video support | box is exactly the same in both picture segments of the frame). | |||
box and the | </t> | |||
color specification box is byte exact the same for both picture segment | ||||
s of the frame). | ||||
</t> | ||||
<t> | ||||
Note that the interlaced mode, as signaled by the <xref target="ISO2112 | ||||
2-3">frat field</xref> | ||||
in the video support box, indicates either progressive, interlaced top- | ||||
field first, or | ||||
interlaced bottom-field first mode. Thus, in the case of interlaced con | ||||
tent, its value | ||||
SHALL also be identical in both picture segments. | ||||
</t> | ||||
</section> | ||||
</section> | ||||
<section title="RTP Payload Format"> | <t> | |||
<t> | Note that the interlaced mode, as signaled by the <xref target="ISO2112 | |||
This section specifies the payload format for JPEG XS streams over | 2-3" format="default">frat field</xref> | |||
the <xref target="RFC3550">Real-time Transport Protocol (RTP)</xref>. | in the video support box, indicates either progressive interlaced top-f | |||
</t> | ield-first or | |||
<t> | interlaced bottom-field-first mode. Thus, in the case of interlaced con | |||
tent, its value | ||||
<bcp14>SHALL</bcp14> also be identical in both picture segments. | ||||
</t> | ||||
</section> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>RTP Payload Format</name> | ||||
<t> | ||||
This section specifies the payload format for JPEG XS streams over the | ||||
<xref target="RFC3550" format="default">Real-time Transport Protocol | ||||
(RTP)</xref>. | ||||
</t> | ||||
<t> | ||||
In order to be transported over RTP, each JPEG XS stream is | In order to be transported over RTP, each JPEG XS stream is | |||
transported in a distinct RTP stream, identified by a distinct <xref targ | transported in a distinct RTP stream, identified by a distinct <xref targ | |||
et="RFC3550">Synchronization source (SSRC)</xref>. | et="RFC3550" format="default">synchronization source (SSRC)</xref>. | |||
</t> | </t> | |||
<t> | <t> | |||
A JPEG XS stream is divided into Application Data Units (ADUs), each ADU | A JPEG XS stream is divided into Application Data Units (ADUs), each ADU | |||
corresponding to a single JPEG XS frame. | corresponding to a single JPEG XS frame. | |||
</t> | </t> | |||
<section anchor="rtp_packet" numbered="true" toc="default"> | ||||
<name>RTP Packetization</name> | ||||
<section title="RTP packetization" anchor="rtp_packet"> | <t> | |||
<t> | ||||
An ADU is made of several packetization units. If a packetization unit | 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 | is bigger than the maximum size of an RTP packet payload, the unit is | |||
split into multiple RTP packet payloads, as illustrated in <xref | split into multiple RTP packet payloads, as illustrated in <xref | |||
target="rtp_packetization" />. As seen there, each packet SHALL | target="rtp_packetization" format="default"/>. As seen there, each | |||
contain (part of) one and only one packetization unit. A packetization | packet <bcp14>SHALL</bcp14> contain (part of) one, and only one, | |||
unit may extend over multiple packets. The payload of every packet | packetization unit. A packetization unit may extend over multiple | |||
SHALL have the same size (based e.g. on the Maximum Transfer Unit of | packets. The payload of every packet <bcp14>SHALL</bcp14> have the | |||
the network), except (possibly) the last packet of a packetization | same size (based, e.g., on the Maximum Transfer Unit of the network) | |||
unit. The boundaries of a packetization unit SHALL coincide with the | with the possible exception of the last packet of a packetization unit. | |||
boundaries of the payload of a packet (excluding the payload header), | The | |||
i.e. the first (resp. last) byte of the packetization unit SHALL be | boundaries of a packetization unit <bcp14>SHALL</bcp14> coincide with | |||
the first (resp. last) byte of the payload (excluding its header). | the boundaries of the payload of a packet (excluding the payload | |||
</t> | header), i.e., the first (or, respectively, last) byte of the | |||
packetization unit <bcp14>SHALL</bcp14> be the first (or, respectively, | ||||
last) byte of the payload (excluding its header). | ||||
</t> | ||||
<figure anchor="rtp_packetization" title="Example of ADU packetization"> | <figure anchor="rtp_packetization"> | |||
<artwork><![CDATA[ | <name>Example of ADU Packetization</name> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
RTP +-----+------------------------+ | RTP +-----+------------------------+ | |||
Packet #1 | Hdr | Packetization unit #1 | | Packet #1 | Hdr | Packetization unit #1 | | |||
+-----+------------------------+ | +-----+------------------------+ | |||
RTP +-----+--------------------------------------+ | RTP +-----+--------------------------------------+ | |||
Packet #2 | Hdr | Packetization unit #2 | | Packet #2 | Hdr | Packetization unit #2 | | |||
+-----+--------------------------------------+ | +-----+--------------------------------------+ | |||
RTP +-----+--------------------------------------------------+ | RTP +-----+--------------------------------------------------+ | |||
Packet #3 | Hdr | Packetization unit #3 (part 1/3) | | Packet #3 | Hdr | Packetization unit #3 (part 1/3) | | |||
+-----+--------------------------------------------------+ | +-----+--------------------------------------------------+ | |||
RTP +-----+--------------------------------------------------+ | RTP +-----+--------------------------------------------------+ | |||
Packet #4 | Hdr | Packetization unit #3 (part 2/3) | | Packet #4 | Hdr | Packetization unit #3 (part 2/3) | | |||
+-----+--------------------------------------------------+ | +-----+--------------------------------------------------+ | |||
RTP +-----+----------------------------------------------+ | RTP +-----+----------------------------------------------+ | |||
Packet #5 | Hdr | Packetization unit #3 (part 3/3) | | Packet #5 | Hdr | Packetization unit #3 (part 3/3) | | |||
+-----+----------------------------------------------+ | +-----+----------------------------------------------+ | |||
... | ... | |||
RTP +-----+-----------------------------------------+ | RTP +-----+-----------------------------------------+ | |||
Packet #P | Hdr | Packetization unit #N (part q/q) | | Packet #P | Hdr | Packetization unit #N (part q/q) | | |||
+-----+-----------------------------------------+ | +-----+-----------------------------------------+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t> | ||||
<t> | ||||
There are two different packetization modes defined for this RTP payload format. | There are two different packetization modes defined for this RTP payload format. | |||
<list style="numbers"> | </t> | |||
<t>Codestream packetization mode: in this mode, the packetization unit | ||||
SHALL be the entire JPEG XS picture segment (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 packetization mode: in this mode, the packetization unit | <dl newline="true"> | |||
SHALL be the slice, i.e. there SHALL be data from no more than one | <dt>Codestream packetization mode: | |||
slice per RTP packet. The first packetization unit SHALL be made of | </dt> | |||
the JPEG XS header segment (i.e. the concatenation of the VS box, the | <dd>In this mode, the packetization unit <bcp14>SHALL</bcp14> be the entire | |||
CS box and the JPEG XS codestream header). This first unit is then | JPEG XS picture segment (i.e., codestream preceded by boxes). This means that | |||
followed by successive units, each containing one and only one slice. | a progressive frame will have a single packetization unit, while an interlaced | |||
The packetization unit containing the last slice of a JPEG XS | frame will have two. The progressive case is illustrated in <xref | |||
codestream SHALL also contain the EOC marker immediately following | target="cs_packetization" format="default"/>. | |||
this last slice. This is illustrated in | </dd> | |||
<xref target="slice_packetization" />. In the case of an | ||||
interlaced frame, the JPEG XS header segment of the second field SHALL | ||||
be in its own packetization unit. | ||||
</t> | ||||
</list> | ||||
</t> | ||||
<figure anchor="cs_packetization" title="Example of codestream packetizati | <dt>Slice packetization mode: | |||
on mode"> | </dt> | |||
<artwork><![CDATA[ | <dd>In this mode, the packetization unit <bcp14>SHALL</bcp14> be the slice, | |||
i.e., there <bcp14>SHALL</bcp14> be data from no more than one slice per RTP | ||||
packet. The first packetization unit <bcp14>SHALL</bcp14> be made of the JPEG | ||||
XS header segment (i.e., the concatenation of the VS box, the CS 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 <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 | ||||
<bcp14>SHALL</bcp14> be in its own packetization unit. | ||||
</dd> | ||||
</dl> | ||||
<figure anchor="cs_packetization"> | ||||
<name>Example of Codestream Packetization Mode</name> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
RTP +-----+--------------------------------------------------+ | RTP +-----+--------------------------------------------------+ | |||
Packet #1 | Hdr | VS box + CS box + JPEG XS codestream (part 1/q) | | Packet #1 | Hdr | VS box + CS box + JPEG XS codestream (part 1/q) | | |||
+-----+--------------------------------------------------+ | +-----+--------------------------------------------------+ | |||
RTP +-----+--------------------------------------------------+ | RTP +-----+--------------------------------------------------+ | |||
Packet #2 | Hdr | JPEG XS codestream (part 2/q) | | Packet #2 | Hdr | JPEG XS codestream (part 2/q) | | |||
+-----+--------------------------------------------------+ | +-----+--------------------------------------------------+ | |||
... | ... | |||
RTP +-----+--------------------------------------+ | RTP +-----+--------------------------------------+ | |||
Packet #P | Hdr | JPEG XS codestream (part q/q) | | Packet #P | Hdr | JPEG XS codestream (part q/q) | | |||
+-----+--------------------------------------+ | +-----+--------------------------------------+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<figure anchor="slice_packetization"> | ||||
<figure anchor="slice_packetization" title="Example of slice packetization | <name>Example of Slice Packetization Mode</name> | |||
mode"> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
<artwork><![CDATA[ | ||||
RTP +-----+----------------------------+ | RTP +-----+----------------------------+ | |||
Packet #1 | Hdr | JPEG XS header segment | | Packet #1 | Hdr | JPEG XS header segment | | |||
+-----+----------------------------+ | +-----+----------------------------+ | |||
RTP +-----+--------------------------------------------------+ | RTP +-----+--------------------------------------------------+ | |||
Packet #2 | Hdr | Slice #1 (part 1/2) | | Packet #2 | Hdr | Slice #1 (part 1/2) | | |||
+-----+--------------------------------------------------+ | +-----+--------------------------------------------------+ | |||
RTP +-----+-------------------------------------------+ | RTP +-----+-------------------------------------------+ | |||
Packet #3 | Hdr | Slice #1 (part 2/2) | | Packet #3 | Hdr | Slice #1 (part 2/2) | | |||
+-----+-------------------------------------------+ | +-----+-------------------------------------------+ | |||
RTP +-----+--------------------------------------------------+ | RTP +-----+--------------------------------------------------+ | |||
Packet #4 | Hdr | Slice #2 (part 1/3) | | Packet #4 | Hdr | Slice #2 (part 1/3) | | |||
+-----+--------------------------------------------------+ | +-----+--------------------------------------------------+ | |||
... | ... | |||
RTP +-----+---------------------------------------+ | RTP +-----+---------------------------------------+ | |||
Packet #P | Hdr | Slice #N (part q/q) + EOC marker | | Packet #P | Hdr | Slice #N (part q/q) + EOC marker | | |||
+-----+---------------------------------------+ | +-----+---------------------------------------+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t> | ||||
<t> | In a constant bitrate (CBR) scenario of JPEG XS, the codestream packetiz | |||
In a constant bit-rate (CBR) scenario of JPEG XS, the codestream packeti | ation | |||
zation | mode guarantees that a JPEG XS RTP stream will produce both a constant n | |||
mode guarantees that a JPEG XS RTP stream will produce a constant number | umber | |||
of bytes per video frame, and a constant number of RTP packets per video | of bytes per video frame and a constant number of RTP packets per video | |||
frame. | frame. | |||
However, to provide similar guarantees with JPEG XS in a variable bit-ra | However, to provide similar guarantees with JPEG XS in a variable bitrat | |||
te (VBR) | e (VBR) | |||
mode or when using the slice packetization mode (for either CBR or VBR), additional | 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 allocat ion | mechanisms are needed. This can involve a constraint at the rate allocat ion | |||
stage in the JPEG XS encoder to impose a constant bit-rate at the slice | stage in the JPEG XS encoder to impose a CBR at the slice level, | |||
level, | the usage of padding data, or the insertion of empty RTP packets (i.e., | |||
the usage of padding data, or the insertion of empty RTP packets (i.e. a | an RTP | |||
n RTP | ||||
packet whose payload data is empty). But, management of the amount of pr oduced | packet whose payload data is empty). But, management of the amount of pr oduced | |||
packets per video frame is application dependent and not a strict requir ement of | packets per video frame is application dependent and not a strict requir ement of | |||
this RTP payload specification. | this RTP payload specification. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="rtp_hdr" numbered="true" toc="default"> | ||||
<section title="RTP Header Usage" anchor="rtp_hdr"> | <name>RTP Header Usage</name> | |||
<t> | <t> | |||
The format of the RTP header is specified in <xref target="RFC3550" /> a | The format of the RTP header is specified in <xref target="RFC3550" form | |||
nd | at="default"/> and | |||
reprinted in <xref target="rtp_header" /> for | reprinted in <xref target="rtp_header" format="default"/> for | |||
convenience. This RTP payload format uses the fields of the header in a | convenience. This RTP payload format uses the fields of the header in a | |||
manner consistent with that specification. | manner consistent with that specification. | |||
</t> | </t> | |||
<t> | <t> | |||
The RTP payload (and the settings for some RTP header bits) for | The RTP payload (and the settings for some RTP header bits) for | |||
packetization units are specified in <xref target="payload_hdr" />. | packetization units are specified in <xref target="payload_hdr" format=" | |||
</t> | default"/>. | |||
</t> | ||||
<figure anchor="rtp_header" title="RTP header according to RFC 3550"> | <figure anchor="rtp_header"> | |||
<artwork><![CDATA[ | <name>RTP Header According to RFC 3550</name> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 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| CC |M| PT | sequence number | | |V=2|P|X| CC |M| PT | sequence number | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| timestamp | | | timestamp | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| synchronization source (SSRC) identifier | | | synchronization source (SSRC) identifier | | |||
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | |||
| contributing source (CSRC) identifiers | | | contributing source (CSRC) identifiers | | |||
| .... | | | .... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t> | ||||
<t> | ||||
The version (V), padding (P), extension (X), CSRC count (CC), | The version (V), padding (P), extension (X), CSRC count (CC), | |||
sequence number, synchronization source (SSRC) and contributing | sequence number, synchronization source (SSRC), and contributing | |||
source (CSRC) fields follow their respective definitions in | source (CSRC) fields follow their respective definitions in | |||
<xref target="RFC3550" />. | <xref target="RFC3550" format="default"/>. | |||
</t> | </t> | |||
<t> | <t> | |||
The remaining RTP header information to be set according to this RTP | The remaining RTP header information to be set according to this RTP | |||
payload format is set as follows: | payload format is set as follows: | |||
</t> | </t> | |||
<t> | <dl newline="true" spacing="normal"> | |||
<list style="hanging"> | <dt>Marker (M) [1 bit]:</dt> | |||
<t hangText="Marker (M) [1 bit]:"><vspace /><vspace /> | <dd> | |||
<t> | ||||
If progressive scan video is being transmitted, the marker bit | If progressive scan video is being transmitted, the marker bit | |||
denotes the end of a video frame. If interlaced video is being | denotes the end of a video frame. If interlaced video is being | |||
transmitted, it denotes the end of the field. The marker bit SHALL | transmitted, it denotes the end of the field. The marker bit <bcp14>SHA | |||
be set to 1 for the last packet of the video frame/field. It SHALL | LL</bcp14> | |||
be set to 1 for the last packet of the video frame/field. It <bcp14>SHA | ||||
LL</bcp14> | ||||
be set to 0 for all other packets. | be set to 0 for all other packets. | |||
</t> | </t> | |||
<t hangText="Payload Type (PT) [7 bits]:"><vspace /><vspace /> | </dd> | |||
A dynamically allocated payload type field that designates the | <dt>Payload Type (PT) [7 bits]:</dt> | |||
payload as JPEG XS video. | <dd> | |||
</t> | <t> | |||
<t hangText="Timestamp [32 bits]:"><vspace /><vspace /> | The payload type is a dynamically allocated payload type field that | |||
designates the payload as JPEG XS video. | ||||
</t> | ||||
</dd> | ||||
<dt>Timestamp [32 bits]:</dt> | ||||
<dd> | ||||
<t> | ||||
The RTP timestamp is set to the sampling timestamp of the content. | The RTP timestamp is set to the sampling timestamp of the content. | |||
A 90 kHz clock rate SHALL be used.<vspace /><vspace /> | A 90 kHz clock rate <bcp14>SHALL</bcp14> be used.</t> | |||
<t> | ||||
As specified in <xref target="RFC3550" /> and | As specified in <xref target="RFC3550" format="default"/> and | |||
<xref target="RFC4175" />, the RTP timestamp designates the | <xref target="RFC4175" format="default"/>, the RTP timestamp designates | |||
the | ||||
sampling instant of the first octet of the video frame to which the RTP | sampling instant of the first octet of the video frame to which the RTP | |||
packet belongs. Packets SHALL NOT include data from multiple video fram | packet belongs. Packets <bcp14>SHALL NOT</bcp14> include data from mult | |||
es, and | iple video frames, and | |||
all packets belonging to the same video frame SHALL have the same times | all packets belonging to the same video frame <bcp14>SHALL</bcp14> have | |||
tamp. | the same timestamp. | |||
Several successive RTP packets will consequently have equal timestamps | 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 | 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 | to 1, marking the last packet of the video frame), and the timestamp is only | |||
increased when a new video frame begins.<vspace /><vspace /> | increased when a new video frame begins.</t> | |||
<t> | ||||
If the sampling instant does not correspond to an integer value of | If the sampling instant does not correspond to an integer value of | |||
the clock, the value SHALL be truncated to the next lowest integer, | the clock, the value <bcp14>SHALL</bcp14> be truncated to the next lowe st integer, | |||
with no ambiguity. | with no ambiguity. | |||
</t> | </t> | |||
</list> | </dd> | |||
</t> | </dl> | |||
</section> | </section> | |||
<section anchor="payload_hdr" numbered="true" toc="default"> | ||||
<name>Payload Header Usage</name> | ||||
<section title="Payload Header Usage" anchor="payload_hdr"> | <t> | |||
<t> | ||||
The first four bytes of the payload of an RTP packet in this RTP | The first four bytes of the payload of an RTP packet in this RTP | |||
payload format are referred to as the payload header. <xref | payload format are referred to as the "payload header". <xref target="p | |||
target="payload_header" /> illustrates the structure of this | ayload_header" format="default"/> illustrates the structure of this | |||
payload header. | payload header. | |||
</t> | </t> | |||
<figure anchor="payload_header"> | ||||
<figure anchor="payload_header" title="Payload header"> | <name>Payload Header</name> | |||
<artwork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 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 | | |T|K|L| I |F counter| SEP counter | P counter | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t> | ||||
<t> | ||||
The payload header consists of the following fields: | The payload header consists of the following fields: | |||
</t> | </t> | |||
<t> | <dl newline="true" spacing="normal"> | |||
<list style="hanging"> | <dt>Transmission mode (T) [1 bit]:</dt> | |||
<t hangText="Transmission mode (T) [1 bit]:"><vspace /><vspace /> | <dd> | |||
<t> | ||||
The T bit is set to indicate that packets are sent sequentially by the | The T bit is set to indicate that packets are sent sequentially by the | |||
transmitter. This information allows a receiver to dimension its | transmitter. This information allows a receiver to dimension its | |||
input buffer(s) accordingly. If T=0, nothing can be assumed about the | input buffer(s) accordingly. If T=0, nothing can be assumed about the | |||
transmission order and packets may be sent out-of-order by the | transmission order and packets may be sent out of order by the | |||
transmitter. If T=1, packets SHALL be sent sequentially by the | transmitter. If T=1, packets <bcp14>SHALL</bcp14> be sent sequentially | |||
transmitter. The T bit value SHALL be identical for all packets of | by the | |||
transmitter. The T-bit value <bcp14>SHALL</bcp14> be identical for all | ||||
packets of | ||||
the RTP stream. | the RTP stream. | |||
</t> | </t> | |||
<t hangText="pacKetization mode (K) [1 bit]:"><vspace /><vspace /> | </dd> | |||
<dt>pacKetization mode (K) [1 bit]:</dt> | ||||
<dd> | ||||
<t> | ||||
The K bit is set to indicate which packetization mode is used. K=0 | The K bit is set to indicate which packetization mode is used. K=0 | |||
indicates codestream packetization mode, while K=1 indicates slice | indicates codestream packetization mode, while K=1 indicates slice | |||
packetization mode. In the case that the Transmission mode (T) is | packetization mode. In the case that the Transmission mode (T) is | |||
set to 0 (out-of-order), the slice packetization mode SHALL be used | set to 0 (out of order), the slice packetization mode <bcp14>SHALL</bcp | |||
and K SHALL be set to 1. This is required, because only the slice | 14> be used | |||
and K <bcp14>SHALL</bcp14> be set to 1. This is required because only t | ||||
he slice | ||||
packetization mode supports out-of-order packet transmission. The | packetization mode supports out-of-order packet transmission. The | |||
K bit value SHALL be identical for all packets of the RTP stream. | K-bit value <bcp14>SHALL</bcp14> be identical for all packets of the RT | |||
</t> | P stream. | |||
<t hangText="Last (L) [1 bit]:"><vspace /><vspace /> | </t> | |||
</dd> | ||||
<dt>Last (L) [1 bit]:</dt> | ||||
<dd> | ||||
<t> | ||||
The L bit is set to indicate the last packet of a packetization unit. | 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 | 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 | of the video frame, the L bit is set whenever the M bit is set. In | |||
the codestream packetization mode the L bit and M bit get an equivalent | the codestream packetization mode, the L bit and M bit get an equivalen | |||
meaning, so they SHALL have identical values in each packet. | t | |||
</t> | meaning, so they <bcp14>SHALL</bcp14> have identical values in each pac | |||
<t hangText="Interlaced information (I) [2 bit]:"><vspace /><vspace /> | ket. | |||
</t> | ||||
</dd> | ||||
<dt>Interlaced information (I) [2 bits]:</dt> | ||||
<dd> | ||||
<t> | ||||
These two I bits are used to indicate how the JPEG XS frame is scanned | 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 | (progressive or interlaced). In case of an interlaced frame, they also | |||
indicate which JPEG XS picture segment the payload is part of (first | indicate which JPEG XS picture segment the payload is part of (first | |||
or second). | or second). | |||
<list> | </t> | |||
<t hangText="00:"> | <dl newline="false" spacing="normal" indent='6'> | |||
<dt>00:</dt> | ||||
<dd> | ||||
The payload is progressively scanned. | The payload is progressively scanned. | |||
</t> | </dd> | |||
<t hangText="01:"> | <dt>01:</dt> | |||
Reserved for future use. | <dd> | |||
</t> | This value is reserved for future use. | |||
<t hangText="10:"> | </dd> | |||
<dt>10:</dt> | ||||
<dd> | ||||
The payload is part of the first JPEG XS picture segment of | The payload is part of the first JPEG XS picture segment of | |||
an interlaced video frame. The height specified in the included | an interlaced video frame. The height specified in the included | |||
JPEG XS codestream header is half of the height of the entire | JPEG XS codestream header is half of the height of the entire | |||
displayed image. | displayed image. | |||
</t> | </dd> | |||
<t hangText="11:"> | <dt>11:</dt> | |||
<dd> | ||||
The payload is part of the second JPEG XS picture segment of | The payload is part of the second JPEG XS picture segment of | |||
an interlaced video frame. The height specified in the included | an interlaced video frame. The height specified in the included | |||
JPEG XS codestream header is half of the height of the entire | JPEG XS codestream header is half of the height of the entire | |||
displayed image. | displayed image. | |||
</t> | </dd> | |||
</list> | </dl> | |||
</t> | </dd> | |||
<t hangText="F counter [5 bits]:"><vspace /><vspace /> | <dt>F counter [5 bits]:</dt> | |||
The frame (F) counter identifies the video frame number modulo 32 to wh | <dd> | |||
ich a | <t> | |||
The Frame (F) counter identifies the video frame number modulo 32 to wh | ||||
ich a | ||||
packet belongs. Frame numbers are incremented by 1 for each video frame | packet belongs. Frame numbers are incremented by 1 for each video frame | |||
transmitted. The frame number, in addition to the timestamp, may help | transmitted. The frame number, in addition to the timestamp, may help | |||
the decoder manage its input buffer and bring packets back into their | the decoder manage its input buffer and bring packets back into their | |||
natural order. | natural order. | |||
</t> | </t> | |||
<t hangText="SEP counter [11 bits]:"><vspace /><vspace /> | </dd> | |||
The Slice and Extended Packet (SEP) counter is used differently | <dt>Slice and Extended Packet (SEP) counter [11 bits]:</dt> | |||
<dd> | ||||
<t> | ||||
The SEP counter is used differently | ||||
depending on the packetization mode. | depending on the packetization mode. | |||
<list style="symbols"> | </t> | |||
<t>In the case of codestream packetization mode (K=0), this counter | <ul spacing="normal"> | |||
resets whenever the Packet counter resets (see <xref target="rtp_paylo | <li>In the case of codestream packetization mode (K=0), this | |||
ad_data" />), and | counter resets whenever the Packet counter resets (see <xref | |||
increments by 1 whenever the Packet counter overruns. | target="rtp_payload_data" format="default"/>) and increments by | |||
</t> | 1 whenever the Packet counter overruns. | |||
</li> | ||||
<t>In the case of slice packetization mode (K=1), this counter | <li>In the case of slice packetization mode (K=1), this counter | |||
identifies the slice modulo 2047 to which the packet contributes. If | identifies the slice modulo 2047 to which the packet contributes. If | |||
the data belongs to the JPEG XS header segment, this field SHALL have | the data belongs to the JPEG XS header segment, this field <bcp14>SHAL L</bcp14> have | |||
its maximal value, namely 2047 = 0x07ff. Otherwise, it is the slice | its maximal value, namely 2047 = 0x07ff. Otherwise, it is the slice | |||
index modulo 2047. Slice indices are counted from 0 (corresponding to | index modulo 2047. Slice indices are counted from 0 (corresponding to | |||
the top of the video frame). | the top of the video frame). | |||
</t> | </li> | |||
</list> | </ul> | |||
</t> | </dd> | |||
<t hangText="P counter [11 bits]:"><vspace /><vspace /> | <dt>P counter [11 bits]:</dt> | |||
The packet (P) counter identifies the packet number modulo 2048 | <dd> | |||
<t> | ||||
The Packet (P) counter identifies the packet number modulo 2048 | ||||
within the current packetization unit. It is set to 0 at the start of | within the current packetization unit. It is set to 0 at the start of | |||
the packetization unit and incremented by 1 for every subsequent | the packetization unit and incremented by 1 for every subsequent | |||
packet (if any) belonging to the same unit. Practically, if | packet (if any) belonging to the same unit. Practically, if | |||
codestream packetization mode is enabled, this field counts the | codestream packetization mode is enabled, this field counts the | |||
packets within a JPEG XS picture segment and is extended by the SEP | packets within a JPEG XS picture segment and is extended by the SEP | |||
counter when it overruns. If slice packetization mode is enabled, | counter when it overruns. If slice packetization mode is enabled, | |||
this field counts the packets within a slice or within the JPEG XS | this field counts the packets within a slice or within the JPEG XS | |||
header segment. | header segment. | |||
</t> | </t> | |||
</list> | </dd> | |||
</t> | </dl> | |||
</section> | </section> | |||
<section anchor="rtp_payload_data" numbered="true" toc="default"> | ||||
<name>Payload Data</name> | ||||
<section title="Payload Data" anchor="rtp_payload_data"> | <t> | |||
<t> | ||||
The payload data of a JPEG XS RTP stream consists of a concatenation of | 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 | multiple JPEG XS frames. Within the RTP stream, all of the video support boxes | |||
and all of the color specification boxes SHALL retain their respective la | and all of the color specification boxes <bcp14>SHALL</bcp14> retain thei | |||
youts | r respective layouts | |||
for each JPEG XS frame. Thus, each video support box in the RTP stream SH | for each JPEG XS frame. Thus, each video support box in the RTP stream <b | |||
ALL | cp14>SHALL</bcp14> | |||
define the same sub boxes. The effective values in the boxes are allowed to | 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 cha | change under the condition that their relative byte offsets <bcp14>SHALL | |||
nge. | NOT</bcp14> change. | |||
</t> | </t> | |||
<t> | <t> | |||
Each JPEG XS frame is the concatenation of one or more packetization | Each JPEG XS frame is the concatenation of one or more packetization | |||
unit(s), as explained in <xref target="rtp_packet" />. | unit(s), as explained in <xref target="rtp_packet" format="default"/>. | |||
<xref target="rtp_cs_progressive_packet_data" /> depicts this | <xref target="rtp_cs_progressive_packet_data" format="default"/> depicts | |||
this | ||||
layout for a progressive video frame in the codestream packetization mode , | layout for a progressive video frame in the codestream packetization mode , | |||
<xref target="rtp_cs_interlaced_packet_data" /> depicts this | <xref target="rtp_cs_interlaced_packet_data" format="default"/> depicts t his | |||
layout for an interlaced video frame in the codestream packetization mode , | layout for an interlaced video frame in the codestream packetization mode , | |||
<xref target="rtp_slice_progressive_packet_data" /> depicts this | <xref target="rtp_slice_progressive_packet_data" format="default"/> depic | |||
layout for a progressive video frame in the slice packetization mode and | ts this | |||
<xref target="rtp_slice_interlaced_packet_data" /> depicts this | layout for a progressive video frame in the slice packetization mode, and | |||
<xref target="rtp_slice_interlaced_packet_data" format="default"/> depict | ||||
s this | ||||
layout for an interlaced video frame in the slice packetization mode. The Frame | 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 | counter value is not indicated because the value is constant for all | |||
packetization units of a given video frame. | packetization units of a given video frame. | |||
</t> | </t> | |||
<figure anchor="rtp_cs_progressive_packet_data"> | ||||
<figure anchor="rtp_cs_progressive_packet_data" title="Example of JPEG XS | <name>Example of JPEG XS Payload Data (Codestream Packetization | |||
Payload Data (codestream packetization mode, progressive video frame)"> | Mode, Progressive Video Frame)</name> | |||
<artwork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
+=====[ Packetization unit (PU) #1 ]====+ | +=====[ Packetization unit (PU) #1 ]====+ | |||
| Video support box | SEP counter=0 | | Video support box | SEP counter=0 | |||
| +---------------------------------+ | P counter=0 | | +---------------------------------+ | P counter=0 | |||
| : Sub boxes of the VS box : | | | : Sub boxes of the VS box : | | |||
| +---------------------------------+ | | | +---------------------------------+ | | |||
+- - - - - - - - - - - - - - - - - - - -+ | +- - - - - - - - - - - - - - - - - - - -+ | |||
| Color specification box | | | Color specification box | | |||
| +---------------------------------+ | | | +---------------------------------+ | | |||
| : Fields of the CS box : | | | : Fields of the CS box : | | |||
| +---------------------------------+ | | | +---------------------------------+ | | |||
skipping to change at line 806 ¶ | skipping to change at line 779 ¶ | |||
| (part 2049/q) | P counter=0 | | (part 2049/q) | P counter=0 | |||
: : M=0, K=0, L=0, I=00 | : : M=0, K=0, L=0, I=00 | |||
+---------------------------------------+ | +---------------------------------------+ | |||
: : | : : | |||
+---------------------------------------+ | +---------------------------------------+ | |||
| JPEG XS codestream | SEP counter=(q-1) div 2048 | | JPEG XS codestream | SEP counter=(q-1) div 2048 | |||
| (part q/q) | P counter=(q-1) mod 2048 | | (part q/q) | P counter=(q-1) mod 2048 | |||
: : M=1, K=0, L=1, I=00 | : : M=1, K=0, L=1, I=00 | |||
+=======================================+ | +=======================================+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t/> | ||||
<t><vspace blankLines='100' /></t> | <figure anchor="rtp_cs_interlaced_packet_data"> | |||
<name>Example of JPEG XS Payload Data (Codestream Packetization Mode, | ||||
<figure anchor="rtp_cs_interlaced_packet_data" title="Example of JPEG XS P | Interlaced Video Frame)</name> | |||
ayload Data (codestream packetization mode, interlaced video frame)"> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
<artwork><![CDATA[ | ||||
+=====[ Packetization unit (PU) #1 ]====+ | +=====[ Packetization unit (PU) #1 ]====+ | |||
| Video support box | SEP counter=0 | | Video support box | SEP counter=0 | |||
+- - - - - - - - - - - - - - - - - - - -+ P counter=0 | +- - - - - - - - - - - - - - - - - - - -+ P counter=0 | |||
| Color specification box | | | Color specification box | | |||
+- - - - - - - - - - - - - - - - - - - -+ | +- - - - - - - - - - - - - - - - - - - -+ | |||
| JPEG XS codestream (1st field) | | | JPEG XS codestream (1st field) | | |||
: (part 1/q) : M=0, K=0, L=0, I=10 | : (part 1/q) : M=0, K=0, L=0, I=10 | |||
+---------------------------------------+ | +---------------------------------------+ | |||
| JPEG XS codestream (1st field) | SEP counter=0 | | JPEG XS codestream (1st field) | SEP counter=0 | |||
| (part 2/q) | P counter=1 | | (part 2/q) | P counter=1 | |||
skipping to change at line 855 ¶ | skipping to change at line 827 ¶ | |||
| (part 2/q) | P counter=1 | | (part 2/q) | P counter=1 | |||
: : M=0, K=0, L=0, I=11 | : : M=0, K=0, L=0, I=11 | |||
+---------------------------------------+ | +---------------------------------------+ | |||
: : | : : | |||
+---------------------------------------+ | +---------------------------------------+ | |||
| JPEG XS codestream (2nd field) | SEP counter=(q-1) div 2048 | | JPEG XS codestream (2nd field) | SEP counter=(q-1) div 2048 | |||
| (part q/q) | P counter=(q-1) mod 2048 | | (part q/q) | P counter=(q-1) mod 2048 | |||
: : M=1, K=0, L=1, I=11 | : : M=1, K=0, L=1, I=11 | |||
+=======================================+ | +=======================================+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t/> | ||||
<t><vspace blankLines='100' /></t> | <figure anchor="rtp_slice_progressive_packet_data"> | |||
<name>Example of JPEG XS Payload Data (Slice Packetization Mode, Progr | ||||
<figure anchor="rtp_slice_progressive_packet_data" title="Example of JPEG | essive Video Frame)</name> | |||
XS Payload Data (slice packetization mode, progressive video frame)"> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
<artwork><![CDATA[ | ||||
+===[ PU #1: JPEG XS Header segment ]===+ | +===[ PU #1: JPEG XS Header segment ]===+ | |||
| Video support box | SEP counter=0x07FF | | Video support box | SEP counter=0x07FF | |||
+- - - - - - - - - - - - - - - - - - - -+ P counter=0 | +- - - - - - - - - - - - - - - - - - - -+ P counter=0 | |||
| Color specification box | | | Color specification box | | |||
+- - - - - - - - - - - - - - - - - - - -+ | +- - - - - - - - - - - - - - - - - - - -+ | |||
| JPEG XS codestream header | | | JPEG XS codestream header | | |||
| +---------------------------------+ | | | +---------------------------------+ | | |||
| : Markers and marker segments : | | | : Markers and marker segments : | | |||
| +---------------------------------+ | M=0, T=0, K=1, L=1, I=00 | | +---------------------------------+ | M=0, T=0, K=1, L=1, I=00 | |||
+==========[ PU #2: Slice #1 ]==========+ | +==========[ PU #2: Slice #1 ]==========+ | |||
skipping to change at line 904 ¶ | skipping to change at line 875 ¶ | |||
| (part 1/r) | P counter=0 | | (part 1/r) | P counter=0 | |||
: : M=0, T=0, K=1, L=0, I=00 | : : M=0, T=0, K=1, L=0, I=00 | |||
+---------------------------------------+ | +---------------------------------------+ | |||
: : | : : | |||
+---------------------------------------+ | +---------------------------------------+ | |||
| Slice #(N-1) | SEP counter=N-2 | | Slice #(N-1) | SEP counter=N-2 | |||
| (part r/r) | P counter=r-1 | | (part r/r) | P counter=r-1 | |||
: + EOC marker : M=1, T=0, K=1, L=1, I=00 | : + EOC marker : M=1, T=0, K=1, L=1, I=00 | |||
+=======================================+ | +=======================================+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<t/> | ||||
<t><vspace blankLines='100' /></t> | <figure anchor="rtp_slice_interlaced_packet_data"> | |||
<name>Example of JPEG XS Payload Data (Slice Packetization Mode, Inter | ||||
<figure anchor="rtp_slice_interlaced_packet_data" title="Example of JPEG X | laced Video Frame)</name> | |||
S Payload Data (slice packetization mode, interlaced video frame)"> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
<artwork><![CDATA[ | ||||
+====[ PU #1: JPEG XS Hdr segment 1 ]===+ | +====[ PU #1: JPEG XS Hdr segment 1 ]===+ | |||
| Video support box | SEP counter=0x07FF | | Video support box | SEP counter=0x07FF | |||
+- - - - - - - - - - - - - - - - - - - -+ P counter=0 | +- - - - - - - - - - - - - - - - - - - -+ P counter=0 | |||
| Color specification box | | | Color specification box | | |||
+- - - - - - - - - - - - - - - - - - - -+ | +- - - - - - - - - - - - - - - - - - - -+ | |||
| JPEG XS codestream header 1 | | | JPEG XS codestream header 1 | | |||
| +---------------------------------+ | | | +---------------------------------+ | | |||
| : Markers and marker segments : | | | : Markers and marker segments : | | |||
| +---------------------------------+ | M=0, T=0, K=1, L=1, I=10 | | +---------------------------------+ | M=0, T=0, K=1, L=1, I=10 | |||
+====[ PU #2: Slice #1 (1st field) ]====+ | +====[ PU #2: Slice #1 (1st field) ]====+ | |||
skipping to change at line 995 ¶ | skipping to change at line 965 ¶ | |||
| (part 1/t) | P counter=0 | | (part 1/t) | P counter=0 | |||
: : M=0, T=0, K=1, L=0, I=11 | : : M=0, T=0, K=1, L=0, I=11 | |||
+---------------------------------------+ | +---------------------------------------+ | |||
: : | : : | |||
+---------------------------------------+ | +---------------------------------------+ | |||
| Slice #(N-1) | SEP counter=N-2 | | Slice #(N-1) | SEP counter=N-2 | |||
| (part t/t) | P counter=t-1 | | (part t/t) | P counter=t-1 | |||
: + EOC marker : M=1, T=0, K=1, L=1, I=11 | : + EOC marker : M=1, T=0, K=1, L=1, I=11 | |||
+=======================================+ | +=======================================+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="tsdt" numbered="true" toc="default"> | ||||
<section title="Traffic Shaping and Delivery Timing" anchor="tsdt"> | <name>Traffic Shaping and Delivery Timing</name> | |||
<t> | <t> | |||
In order to facilitate proper synchronization between senders and receive | In order to facilitate proper synchronization between senders and | |||
rs it | receivers, it is <bcp14>RECOMMENDED</bcp14> to implement traffic | |||
is RECOMMENDED to implement traffic shaping and delivery timing in accord | shaping and delivery timing in accordance with the Network | |||
ance | Compatibility Model compliance definitions specified in <xref | |||
with the Network Compatibility Model compliance definitions specified in | target="SMPTE2110-21" format="default"/>. In such a case, the session | |||
<xref target="SMPTE-ST2110-21" />. In such case, the session description | description <bcp14>SHALL</bcp14> signal the compliance with the media | |||
SHALL | type parameter TP. The actual applied traffic shaping and | |||
signal the compliance with the media type parameter TP. The actual applie | timing delivery mechanism is outside the scope of this memo and does | |||
d | not influence the payload packetization. | |||
traffic shaping and timing delivery mechanism is outside the scope of thi | </t> | |||
s memo | </section> | |||
and does not influence the payload packetization. | <section numbered="true" toc="default"> | |||
</t> | <name>Congestion Control Considerations</name> | |||
</section> | <t> | |||
Congestion control for RTP <bcp14>SHALL</bcp14> be used in accordance wit | ||||
h | ||||
<xref target="RFC3550" format="default"/> and with any applicable | ||||
RTP profile, e.g., <xref target="RFC3551" format="default">RTP/AVP</xref> | ||||
or | ||||
<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, the users of | ||||
this payload format <bcp14>SHALL</bcp14> monitor packet loss to ensure | ||||
that the packet loss rate is within acceptable parameters. This can be | ||||
achieved, for example, by means of <xref target="RFC8888" | ||||
format="default">RTP Control Protocol (RTCP) Feedback for Congestion | ||||
Control</xref>. | ||||
</t> | ||||
<t> | ||||
In addition, <xref target="RFC8083" format="default"/> is an update to | ||||
<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 <bcp14>SHALL</bcp14> comply | ||||
with it. | ||||
</t> | ||||
<section title="Congestion Control Considerations"> | <t> | |||
<t> | <xref target="RFC8085" format="default"/> provides additional information | |||
Congestion control for RTP SHALL be used in accordance with | ||||
<xref target="RFC3550" />, and with any applicable | ||||
RTP profile: e.g. <xref target="RFC3551">RTP/AVP</xref> or | ||||
<xref target="RFC4585">RTP/AVPF</xref>. | ||||
</t> | ||||
<t> | ||||
While JPEG XS is mainly designed to be used in controlled network environ | ||||
ments, it | ||||
can also be employed in best-effort network environments, like the Intern | ||||
et. However, | ||||
in this case the users of this payload format SHALL monitor packet loss t | ||||
o | ||||
ensure that the packet loss rate is within acceptable parameters. This ca | ||||
n be | ||||
achieved for example by means of the <xref target="RFC8888">RTP Control P | ||||
rotocol (RTCP) Feedback for Congestion Control</xref>. | ||||
</t> | ||||
<t> | ||||
In addition, <xref target="RFC8083">Circuit Breakers</xref> is an update | ||||
to | ||||
<xref target="RFC3550">RTP</xref> that defines criteria for when one | ||||
is required to stop sending RTP Packet Streams and applications | ||||
implementing this standard SHALL comply with it. | ||||
</t> | ||||
<t> | ||||
<xref target="RFC8085" /> provides additional information | ||||
on the best practices for applying congestion control to UDP streams. | on the best practices for applying congestion control to UDP streams. | |||
</t> | </t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Payload Format Parameters"> | <name>Payload Format Parameters</name> | |||
<t> | <t> | |||
This section specifies the required and optional parameters of the payload format and/or | This section specifies the required and optional parameters of the payload format and/or | |||
the RTP stream. All parameters are declarative, meaning that the informati on signaled by | the RTP stream. All parameters are declarative, meaning that the informati on signaled by | |||
the parameters is also present in the payload data, namely in the payload | the parameters is also present in the payload data, namely in the payload | |||
header (see <xref target="payload_hdr" />) or in the JPEG XS header segment <xre | header (see <xref target="payload_hdr" format="default"/>) or in the JPEG XS hea | |||
f target="ISO21122-1" /> <xref target="ISO21122-3" />. When provided, their resp | der segment <xref target="ISO21122-1" format="default"/> <xref target="ISO21122- | |||
ective values SHALL be consistent with the payload. | 3" format="default"/>. When provided, their respective values <bcp14>SHALL</bcp1 | |||
</t> | 4> be consistent with the payload. | |||
<section title="Media Type Registration" anchor="media_type_def"> | </t> | |||
<t> | <section anchor="media_type_def" numbered="true" toc="default"> | |||
<list style="hanging"> | <name>Media Type Registration</name> | |||
<t>This registration is done using the template defined in <xref targ | ||||
et="RFC6838" /> and following <xref target="RFC4855" />.</t> | <t> | |||
<t>The receiver SHALL ignore any unrecognized parameter.</t> | This registration is done using the template defined in <xref | |||
<t hangText="Type name:">video</t> | target="RFC6838" format="default"/> and following <xref | |||
<t hangText="Subtype name:">jxsv</t> | target="RFC4855" format="default"/>. | |||
<t hangText="Clock rate:">90000</t> | ||||
<t hangText="Required parameters:"> | </t> | |||
<list> | ||||
<t hangText="rate:"> | <t> The receiver <bcp14>SHALL</bcp14> ignore any unrecognized parameter.</t> | |||
The RTP timestamp clock rate. Applications using this pa | <dl newline="true" spacing="normal"> | |||
yload format SHALL use a value of 90000. | <dt>Type name:</dt> | |||
</t> | <dd>video</dd> | |||
<t hangText="packetmode:"> | <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 fo | ||||
rmat <bcp14>SHALL</bcp14> use a value of 90000. | ||||
</dd> | ||||
<dt>packetmode:</dt> | ||||
<dd> | ||||
This parameter specifies the configured packetization mode as d efined | This parameter specifies the configured packetization mode as d efined | |||
by the pacKetization mode (K) bit in the payload header of <xre | by the pacKetization mode (K) bit in the payload header of <xre | |||
f target="payload_hdr" />. | f target="payload_hdr" format="default"/>. | |||
This value SHALL be equal to the K bit value configured in the | This value <bcp14>SHALL</bcp14> be equal to the K-bit value con | |||
RTP stream (i.e. 0 for codestream or 1 for slice). | figured in the RTP stream (i.e., 0 for codestream or 1 for slice). | |||
</t> | </dd> | |||
</list> | </dl> | |||
</t> | </dd> | |||
<t hangText="Optional parameters:"> | <dt>Optional parameters:</dt> | |||
<list> | <dd> | |||
<t hangText="transmode:"> | <dl newline="false" spacing="normal"> | |||
This parameter specifies the configured transmission mo | <dt>transmode:</dt> | |||
de as defined | <dd> | |||
by the Transmission mode (T) bit in the payload header | This parameter specifies the configured transmission mode as | |||
of <xref target="payload_hdr" />. | defined by the Transmission mode (T) bit in the payload | |||
If specified, this value SHALL be equal to the T bit va | header of <xref target="payload_hdr" format="default"/>. I | |||
lue configured in the | f | |||
RTP stream (i.e. 0 for out-of-order-allowed or 1 for sequentia | specified, this value <bcp14>SHALL</bcp14> be equal to th | |||
l-only). If not specified, | e | |||
a value 1 (sequential-only) SHALL be assumed and the T bit SHA | T-bit value configured in the RTP stream (i.e., 0 for | |||
LL be set to 1. | out-of-order-allowed or 1 for sequential-only). If no | |||
</t> | t | |||
<t hangText="profile:"> | specified, a value 1 (sequential-only) <bcp14>SHALL | |||
The <xref target="ISO21122-2">JPEG XS profile</xref> in use. | </bcp14> | |||
Any white space in the profile name SHALL be omitted. | be assumed and the T bit <bcp14>SHALL</bcp14> be | |||
set to 1. | ||||
</dd> | ||||
<dt>profile:</dt> | ||||
<dd> | ||||
The <xref target="ISO21122-2" format="default">JPEG XS profile< | ||||
/xref> in use. | ||||
Any white space Unicode character in the profile name <bcp14>SH | ||||
ALL</bcp14> be omitted. | ||||
Examples of valid profile names are 'Main444.12' or 'High444.12 '. | Examples of valid profile names are 'Main444.12' or 'High444.12 '. | |||
</t> | </dd> | |||
<t hangText="level:"> | <dt>level:</dt> | |||
The <xref target="ISO21122-2">JPEG XS level</xref> in use. | <dd> | |||
Any white space in the level name SHALL be omitted. | The <xref target="ISO21122-2" format="default">JPEG XS level</x | |||
ref> in use. | ||||
Any white space Unicode character in the level name <bcp14>SHAL | ||||
L</bcp14> be omitted. | ||||
Examples of valid levels are '2k-1' or '4k-2'. | Examples of valid levels are '2k-1' or '4k-2'. | |||
</t> | </dd> | |||
<t hangText="sublevel:"> | <dt>sublevel:</dt> | |||
The <xref target="ISO21122-2">JPEG XS sublevel</xref> in use. | <dd> | |||
Any white space in the sublevel name SHALL be omitted. | The <xref target="ISO21122-2" format="default">JPEG XS sublevel | |||
</xref> in use. | ||||
Any white space Unicode character in the sublevel name <bcp14>S | ||||
HALL</bcp14> be omitted. | ||||
Examples of valid sublevels are 'Sublev3bpp' or 'Sublev6bpp'. | Examples of valid sublevels are 'Sublev3bpp' or 'Sublev6bpp'. | |||
</t> | </dd> | |||
<t hangText="depth:"> | <dt>depth:</dt> | |||
<dd> | ||||
Determines the number of bits per sample. This is an | Determines the number of bits per sample. This is an | |||
integer with typical values including 8, 10, 12, and 16. | integer with typical values including 8, 10, 12, and 16. | |||
</t> | </dd> | |||
<t hangText="width:"> | <dt>width:</dt> | |||
<dd> | ||||
Determines the number of pixels per line. This is an | Determines the number of pixels per line. This is an | |||
integer between 1 and 32767 inclusive. | integer between 1 and 32767, inclusive. | |||
</t> | </dd> | |||
<t hangText="height:"> | <dt>height:</dt> | |||
<dd> | ||||
Determines the number of lines per video frame. This is an | Determines the number of lines per video frame. This is an | |||
integer between 1 and 32767 inclusive. | integer between 1 and 32767, inclusive. | |||
</t> | </dd> | |||
<t hangText="exactframerate:"> | <dt>exactframerate:</dt> | |||
<dd> | ||||
Signals the video frame rate in frames per second. | Signals the video frame rate in frames per second. | |||
Integer frame rates SHALL be signaled as a single decimal | Integer frame rates <bcp14>SHALL</bcp14> be signaled as a singl | |||
number (e.g. "25") whilst non-integer frame rates SHALL be | e decimal | |||
number (e.g., "25") whilst non-integer frame rates <bcp14>SHALL | ||||
</bcp14> be | ||||
signaled as a ratio of two integer decimal numbers separated | signaled as a ratio of two integer decimal numbers separated | |||
by a "forward-slash" character (e.g. "30000/1001"), utilizing | by a "forward-slash" character (e.g., "30000/1001"), utilizing | |||
the numerically smallest numerator value possible. | the numerically smallest numerator value possible. | |||
</t> | </dd> | |||
<t hangText="interlace:"> | <dt>interlace:</dt> | |||
<dd> | ||||
If this parameter name is present, it indicates | If this parameter name is present, it indicates | |||
that the video is interlaced, or that the video is | that the video is interlaced, or that the video is | |||
Progressive segmented Frame (PsF). If this parameter name is | Progressive segmented Frame (PsF). If this parameter name is | |||
not present, the progressive video format SHALL be assumed. | not present, the progressive video format <bcp14>SHALL</bcp14> | |||
</t> | be assumed. | |||
<t hangText="segmented:"> | </dd> | |||
<dt>segmented:</dt> | ||||
<dd> | ||||
If this parameter name is present, and the | If this parameter name is present, and the | |||
interlace parameter name is also present, then the video is a | interlace parameter name is also present, then the video is a | |||
Progressive segmented Frame (PsF). Signaling of this | Progressive segmented Frame (PsF). Signaling of this | |||
parameter without the interlace parameter is forbidden. | parameter without the interlace parameter is forbidden. | |||
</t> | </dd> | |||
<t hangText="sampling:"> | <dt>sampling:</dt> | |||
<dd> | ||||
<t> | ||||
Signals the color difference signal sub-sampling | Signals the color difference signal sub-sampling | |||
structure. | structure. | |||
<vspace /><vspace /> | </t> | |||
<t> | ||||
Signals utilizing the non-constant luminance | Signals utilizing the non-constant luminance | |||
Y'C'B C'R signal format of Recommendation ITU-R BT.601-7, | Y'C'B C'R signal format of <xref target="BT.601-7" format="defa | |||
Recommendation ITU-R BT.709-6, Recommendation ITU-R BT.2020-2, | ult"/>, | |||
or Recommendation ITU-R BT.2100 SHALL use the appropriate one | <xref target="BT.709-6" format="default"/>, <xref target="BT.20 | |||
20-2" format="default"/>, | ||||
or <xref target="BT.2100-2" format="default"/> <bcp14>SHALL</bc | ||||
p14> use the appropriate one | ||||
of the following values for the Media Type Parameter | of the following values for the Media Type Parameter | |||
"sampling": | "sampling": | |||
<figure><artwork><![CDATA[ | ||||
YCbCr-4:4:4 (4:4:4 sampling) | </t> | |||
YCbCr-4:2:2 (4:2:2 sampling) | ||||
YCbCr-4:2:0 (4:2:0 sampling) | <dl indent="15"> | |||
]]></artwork></figure> | <dt>YCbCr-4:4:4</dt><dd>(4:4:4 sampling)</dd> | |||
<vspace /><vspace /> | <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 | Signals utilizing the Constant Luminance Y'C C'BC C'RC signal | |||
format of Recommendation ITU-R BT.2020-2 SHALL use the | format of <xref target="BT.2020-2" format="default"/> <bcp14>SH ALL</bcp14> use the | |||
appropriate one of the following values for the Media Type | appropriate one of the following values for the Media Type | |||
Parameter "sampling": | Parameter "sampling": | |||
<figure><artwork><![CDATA[ | </t> | |||
CLYCbCr-4:4:4 (4:4:4 sampling) | ||||
CLYCbCr-4:2:2 (4:2:2 sampling) | <dl indent="15"> | |||
CLYCbCr-4:2:0 (4:2:0 sampling) | <dt>CLYCbCr-4:4:4</dt><dd>(4:4:4 sampling)</dd> | |||
]]></artwork></figure> | <dt>CLYCbCr-4:2:2</dt><dd>(4:2:2 sampling)</dd> | |||
<vspace /><vspace /> | <dt>CLYCbCr-4:2:0</dt><dd>(4:2:0 sampling)</dd> | |||
</dl> | ||||
<t> | ||||
Signals utilizing the constant intensity I CT CP signal format | Signals utilizing the constant intensity I CT CP signal format | |||
of Recommendation ITU-R BT.2100 SHALL use the appropriate one | of <xref target="BT.2100-2" format="default"/> <bcp14>SHALL</bc p14> use the appropriate one | |||
of the following values for the Media Type Parameter | of the following values for the Media Type Parameter | |||
"sampling": | "sampling": | |||
<figure><artwork><![CDATA[ | </t> | |||
ICtCp-4:4:4 (4:4:4 sampling) | ||||
ICtCp-4:2:2 (4:2:2 sampling) | <dl indent="15"> | |||
ICtCp-4:2:0 (4:2:0 sampling) | <dt>ICtCp-4:4:4</dt><dd>(4:4:4 sampling)</dd> | |||
]]></artwork></figure> | <dt>ICtCp-4:2:2</dt><dd>(4:2:2 sampling)</dd> | |||
<vspace /><vspace /> | <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 | Signals utilizing the 4:4:4 R' G' B' or RGB signal format | |||
(such as that of Recommendation ITU-R BT.601, Recommendation | (such as that of <xref target="BT.601-7" format="default"/>, <x | |||
ITU-R BT.709, Recommendation ITU-R BT.2020, Recommendation | ref target="BT.709-6" format="default"/>, | |||
ITU-R BT.2100, SMPTE ST 2065-1 or ST 2065-3) SHALL use the | <xref target="BT.2020-2" format="default"/>, <xref target="BT.2 | |||
following value for the Media Type Parameter sampling. | 100-2" format="default"/>, | |||
<figure><artwork><![CDATA[ | <xref target="SMPTE2065-1" format="default"/>, or <xref target= | |||
RGB (RGB or R' G' B' samples) | "SMPTE2065-3" format="default"/>) <bcp14>SHALL</bcp14> use the | |||
]]></artwork></figure> | following value for the Media Type Parameter "sampling": | |||
<vspace /><vspace /> | </t> | |||
<dl indent="15"> | ||||
<dt>RGB</dt><dd>(RGB or R' G' B' samples)</dd> | ||||
</dl> | ||||
<t> | ||||
Signals utilizing the 4:4:4 X' Y' Z' signal format (such as | Signals utilizing the 4:4:4 X' Y' Z' signal format (such as | |||
defined in SMPTE ST 428-1) SHALL use the following value for | defined in <xref target="SMPTE428-1" format="default"/>) <bcp14 | |||
the Media Type Parameter sampling. | >SHALL</bcp14> use the following value for | |||
<figure><artwork><![CDATA[ | the Media Type Parameter "sampling": | |||
XYZ (X' Y' Z' samples) | </t> | |||
]]></artwork></figure> | ||||
<vspace /><vspace /> | <dl indent="15"> | |||
Key signals as defined in SMPTE RP 157 SHALL use the value key | <dt>XYZ</dt><dd>(X' Y' Z' samples)</dd> | |||
for the Media Type Parameter sampling. The Key signal is | </dl> | |||
represented as a single component. | <t> | |||
<figure><artwork><![CDATA[ | Key signals as defined in <xref target="SMPTE157" format="default"/ | |||
KEY (Samples of the key signal) | > <bcp14>SHALL</bcp14> use | |||
]]></artwork></figure> | the value key for the Media Type Parameter "sampling". The key | |||
<vspace /><vspace /> | signal is represented as a single component: | |||
</t> | ||||
<dl indent="15"> | ||||
<dt>KEY</dt><dd>(Samples of the key signal)</dd> | ||||
</dl> | ||||
<t> | ||||
Signals utilizing a color sub-sampling other than what is | Signals utilizing a color sub-sampling other than what is | |||
defined here SHALL use the following value for the Media | defined here <bcp14>SHALL</bcp14> use the following value for | |||
Type Parameter sampling. | the Media Type Parameter "sampling": | |||
<figure><artwork><![CDATA[ | </t> | |||
UNSPECIFIED (Sampling signaled by the payload.) | ||||
]]></artwork></figure> | <dl indent="15"> | |||
</t> | <dt>UNSPECIFIED</dt><dd>(Sampling signaled by the payload)</dd> | |||
<t hangText="colorimetry:"> | </dl> | |||
Specifies the system colorimetry used by the | ||||
image samples. Valid values and their specification are: | </dd> | |||
<figure><artwork><![CDATA[ | <dt>colorimetry:</dt> | |||
BT601-5 ITU-R Recommendation BT.601-5. | <dd> | |||
BT709-2 ITU-R Recommendation BT.709-2. | <t> | |||
SMPTE240M SMPTE ST 240M. | Specifies the system colorimetry used by the image | |||
BT601 ITU-R Recommendation BT.601-7. | samples. Valid values and their specification are the | |||
BT709 ITU-R Recommendation BT.709-6. | following: | |||
BT2020 ITU-R Recommendation BT.2020-2. | </t> | |||
BT2100 ITU-R Recommendation BT.2100 | ||||
Table 2 titled "System colorimetry". | <dl indent="15"> | |||
ST2065-1 SMPTE ST 2065-1 Academy Color Encoding | ||||
Specification (ACES). | <dt>BT601-5:</dt><dd><xref target="BT.601-5" format="default"/>.</dd> | |||
ST2065-3 SMPTE ST 2065-3 Academy Density Exchange | <dt>BT709-2:</dt><dd><xref target="BT.709-2" format="default"/>.</dd> | |||
Encoding (ADX). | <dt>SMPTE240M:</dt><dd><xref target="SMPTE240M" format="default"/>.</dd> | |||
XYZ ISO/IEC 11664-1, section titled | <dt>BT601:</dt><dd><xref target="BT.601-7" format="default"/>.</dd> | |||
"1931 Observer". | <dt>BT709:</dt><dd><xref target="BT.709-6" format="default"/>.</dd> | |||
UNSPECIFIED Colorimetry is signaled in the payload by | <dt>BT2020:</dt><dd><xref target="BT.2020-2" format="default"/>.</dd> | |||
the color specification box of [ISO21122-3], | <dt>BT2100:</dt><dd><xref target="BT.2100-2" format="default"/>, Table 2 titled | |||
or it must be manually coordinated between | "System colorimetry".</dd> | |||
sender and receiver. | <dt>ST2065-1:</dt><dd><xref target="SMPTE2065-1" format="default">Academy Color | |||
]]></artwork></figure> | Encoding Specification (ACES)</xref>.</dd> | |||
Signals utilizing the Recommendation ITU-R BT.2100 colorimetry | <dt>ST2065-3:</dt><dd><xref target="SMPTE2065-3" format="default">Academy Densit | |||
SHOULD also signal the representational range using the | y Exchange Encoding (ADX)</xref>.</dd> | |||
<dt>XYZ:</dt><dd><xref target="ISO11664-1" format="default"/>, section titled "1 | ||||
931 Observer".</dd> | ||||
<dt>UNSPECIFIED:</dt><dd>Colorimetry is signaled in the payload by the color spe | ||||
cification box of | ||||
<xref target="ISO21122-3"/>, or it must be manually coordinated between sender | ||||
and receiver.</dd> | ||||
</dl> | ||||
<t> | ||||
Signals utilizing the <xref target="BT.2100-2" format="default" | ||||
/> colorimetry | ||||
<bcp14>SHOULD</bcp14> also signal the representational range us | ||||
ing the | ||||
optional parameter RANGE defined below. Signals utilizing the | optional parameter RANGE defined below. Signals utilizing the | |||
UNSPECIFIED colorimetry might require manual coordination betwe en | UNSPECIFIED colorimetry might require manual coordination betwe en | |||
the sender and the receiver. | the sender and the receiver. | |||
</t> | </t> | |||
<t hangText="TCS:"> | </dd> | |||
<dt>TCS:</dt> | ||||
<dd> | ||||
<t> | ||||
Transfer Characteristic System. This parameter specifies | Transfer Characteristic System. This parameter specifies | |||
the transfer characteristic system of the image samples. | the transfer characteristic system of the image samples. | |||
Valid values and their specification are: | Valid values and their specification are the following: | |||
<figure><artwork><![CDATA[ | </t> | |||
SDR Standard Dynamic Range video streams that | ||||
utilize the OETF of ITU-R Recommendation | <dl indent="15"> | |||
BT.709 or ITU-R Recommendation BT.2020. Such | ||||
streams SHALL be assumed to target the EOTF | <dt>SDR:</dt><dd>Standard Dynamic Range video streams that utilize the Optical E | |||
specified in ITU-R Recommendation BT.1886. | lectrical | |||
PQ High dynamic range video streams that utilize | Transfer Function (OETF) of <xref target="BT.709-6" format="default"/> or <xref | |||
the Perceptual Quantization system of ITU-R | target="BT.2020-2" format="default"/>. | |||
Recommendation BT.2100. | Such streams <bcp14>SHALL</bcp14> be assumed to target the Electro-Optical Trans | |||
HLG High dynamic range video streams that utilize | fer | |||
the Hybrid Log-Gamma system of ITU-R | Function (EOTF) specified in <xref target="BT.1886-0" format="default"/>.</dd> | |||
Recommendation BT.2100. | ||||
UNSPECIFIED Video streams whose transfer characteristics | <dt>PQ:</dt><dd>High dynamic range video streams that utilize the Perceptual Qua | |||
are signaled by the payload as specified in | ntization system | |||
[ISO21122-3], or must be manually | of <xref target="BT.2100-2" format="default"/>. </dd> | |||
coordinated between sender and receiver. | ||||
]]></artwork></figure> | <dt>HLG:</dt><dd>High dynamic range video streams that utilize the Hybrid Log-Ga | |||
</t> | mma system | |||
<t hangText="RANGE:"> | of <xref target="BT.2100-2" format="default"/>.</dd> | |||
This parameter SHOULD be used to signal the encoding | ||||
<dt>UNSPECIFIED:</dt><dd>Video streams whose transfer characteristics are signal | ||||
ed by the payload | ||||
as specified in <xref target="ISO21122-3"/>, or that must be manually | ||||
coordinated between sender and receiver.</dd> | ||||
</dl> | ||||
</dd> | ||||
<dt>RANGE:</dt> | ||||
<dd> | ||||
This parameter <bcp14>SHOULD</bcp14> be used to signal the enco | ||||
ding | ||||
range of the sample values within the stream. When paired with | range of the sample values within the stream. When paired with | |||
ITU Rec BT.2100 colorimetry, this parameter has two allowed | <xref target="BT.2100-2" format="default"/> colorimetry, this p | |||
values NARROW and FULL, corresponding to the ranges specified | arameter has two allowed | |||
in table 9 of ITU Rec BT.2100. In any other context, this | values, NARROW and FULL, corresponding to the ranges specified | |||
in TABLE 9 of <xref target="BT.2100-2" format="default"/>. In a | ||||
ny other context, this | ||||
parameter has three allowed values: NARROW, FULLPROTECT, and | parameter has three allowed values: NARROW, FULLPROTECT, and | |||
FULL, which correspond to the ranges specified in | FULL, which correspond to the ranges specified in | |||
SMPTE RP 2077. In the absence of this parameter, and for all | <xref target="SMPTE2077" format="default"/>. In the absence of | |||
but the UNSPECIFIED colorimetry, NARROW SHALL be the assumed | this parameter, and for all | |||
but the UNSPECIFIED colorimetry, NARROW <bcp14>SHALL</bcp14> be | ||||
the assumed | ||||
value. When paired with the UNSPECIFIED colorimetry, FULL | value. When paired with the UNSPECIFIED colorimetry, FULL | |||
SHALL be the default assumed value. | <bcp14>SHALL</bcp14> be the default assumed value. | |||
</t> | </dd> | |||
</list> | </dl> | |||
</t> | </dd> | |||
<t hangText="Encoding considerations:"><vspace /> | <dt>Encoding considerations:</dt> | |||
This media type is framed in RTP and contains binary data; see Sect | <dd> | |||
ion 4.8 in <xref target="RFC6838" />. | This media type is framed in RTP and contains binary data; see | |||
</t> | <xref target="RFC6838" sectionFormat="of" section="4.8" | |||
<t hangText="Security considerations:"><vspace /> | format="default"/>. | |||
Please see the <xref target="security">Security Considerations</xre | </dd> | |||
f> of RFC XXXX. | <dt>Security considerations:</dt> | |||
</t> | <dd> | |||
<t hangText="Interoperability considerations:"><vspace />None.</t> | See the <xref target="security" format="none">Security | |||
<t hangText="Published specification:"><vspace /> | Considerations</xref> section of RFC 9134. | |||
See RFC XXXX and its References section. | </dd> | |||
</t> | <dt>Interoperability considerations:</dt> | |||
<t hangText="Applications that use this media type:"><vspace />Any ap | <dd>None</dd> | |||
plication that transmits video over RTP (like SMPTE ST 2110).</t> | <dt>Published specification:</dt> | |||
<t hangText="Fragment identifier considerations:"><vspace />N/A.</t> | <dd> | |||
<t hangText="Additional information:"><vspace />None.</t> | See the <xref target="references" format="none">References</xref> | |||
<t hangText="Person & email address to contact for further inform | section of RFC 9134. | |||
ation:"><vspace />S. Lugan <rtp@intopix.com> and Th. Richter <jpeg-xs-t | </dd> | |||
echsupport@iis.fraunhofer.de>.</t> | <dt>Applications that use this media type:</dt> | |||
<t hangText="Intended usage:"><vspace />COMMON</t> | <dd>Any application that transmits video over RTP (like SMPTE ST 2110) | |||
<t hangText="Restrictions on usage:"><vspace /> | .</dd> | |||
This media type depends on RTP framing, and hence is only defined f | <dt>Fragment identifier considerations:</dt> | |||
or transfer via <xref target="RFC3550">RTP</xref>.</t> | <dd>N/A</dd> | |||
<t hangText="Author:"><vspace />See the Authors' Addresses section of | <dt>Additional information:</dt> | |||
RFC XXXX.</t> | <dd>None</dd> | |||
<t hangText="Change controller:"><vspace />IETF Audio/Video Transport | <dt>Person & email address to contact for further information:</dt | |||
working group delegated from the IESG. | > | |||
</t> | <dd>T. Bruylants <rtp@intopix.com> and T. Richter <jpeg-xs-te | |||
</list> | chsupport@iis.fraunhofer.de>.</dd> | |||
</t> | <dt>Intended usage:</dt> | |||
</section> | <dd>COMMON</dd> | |||
</section> | <dt>Restrictions on usage:</dt> | |||
<dd> | ||||
<section title="SDP Parameters"> | This media type depends on RTP framing; hence, it is only defined f | |||
<t> | or transfer via <xref target="RFC3550" format="default">RTP</xref>.</dd> | |||
A mapping of the parameters into the <xref target="RFC8866">Session Descri | <dt>Author:</dt> | |||
ption Protocol (SDP)</xref> | <dd>See the Authors' Addresses section of RFC 9134.</dd> | |||
<dt>Change controller:</dt> | ||||
<dd>IETF Audio/Video Transport Working Group delegated from the IESG. | ||||
</dd> | ||||
</dl> | ||||
</section> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>SDP Parameters</name> | ||||
<t> | ||||
A mapping of the parameters into the <xref target="RFC8866" format="defaul | ||||
t">Session Description Protocol (SDP)</xref> | ||||
is provided for applications that use SDP. | is provided for applications that use SDP. | |||
</t> | </t> | |||
<section title="Mapping of Payload Type Parameters to SDP"> | <section numbered="true" toc="default"> | |||
<t> | <name>Mapping of Payload Type Parameters to SDP</name> | |||
The media type video/jxsv string is mapped to fields in the <xref targe | <t> | |||
t="RFC8866">Session | The media type video/jxsv string is mapped to fields in the <xref targe | |||
t="RFC8866" format="default">Session | ||||
Description Protocol (SDP)</xref> as follows: | Description Protocol (SDP)</xref> as follows: | |||
</t> | </t> | |||
<t> | <dl newline="false" spacing="normal"> | |||
<list style="hanging"> | <dt/> | |||
<t> | <dd> | |||
The media type ("video") goes in SDP "m=" as the media name. | The media type ("video") goes in SDP "m=" as the media name. | |||
</t> | </dd> | |||
<t> | <dt/> | |||
<dd> | ||||
The media subtype ("jxsv") goes in SDP "a=rtpmap" as the encoding | The media subtype ("jxsv") goes in SDP "a=rtpmap" as the encoding | |||
name, followed by a slash ("/") and the required parameter "rate" | name, followed by a slash ("/") and the required parameter "rate" | |||
corresponding to the RTP timestamp clock rate (which for the payloa d | corresponding to the RTP timestamp clock rate (which for the payloa d | |||
format defined in this document SHALL be 90000). | format defined in this document <bcp14>SHALL</bcp14> be 90000). | |||
</t> | </dd> | |||
<t> | <dt/> | |||
The required parameter "packetmode", and any of the additional opti | <dd> | |||
onal | The required parameter "packetmode" and any of the additional | |||
parameters, as described in <xref target="media_type_def" />, go in | optional parameters, as described in <xref | |||
the SDP media format description, being the "a=fmtp" attribute (For | target="media_type_def" format="default"/>, go in the SDP media | |||
mat Parameters), | format description, being the "a=fmtp" attribute (Format | |||
by copying them directly from the MIME media type string as a semic | Parameters), by copying them directly from the media type string | |||
olon-separated | as a semicolon-separated list of parameter=value pairs. | |||
list of parameter=value pairs. | </dd> | |||
</t> | </dl> | |||
</list> | <t> | |||
</t> | All parameters of the media format <bcp14>SHALL</bcp14> correspond to t | |||
<t> | he | |||
All parameters of the media format SHALL correspond to the | ||||
parameters of the payload. In case of discrepancies between | parameters of the payload. In case of discrepancies between | |||
payload parameter values and SDP fields, the values from the | payload parameter values and SDP fields, the values from the | |||
payload data SHALL prevail. | payload data <bcp14>SHALL</bcp14> prevail. | |||
</t> | </t> | |||
<t> | <t> | |||
The receiver SHALL ignore any parameter that is not defined in <xref ta | The receiver <bcp14>SHALL</bcp14> ignore any parameter that is not defi | |||
rget="media_type_def" />. | ned in <xref target="media_type_def" format="default"/>. | |||
</t> | </t> | |||
<t> | <t> | |||
An example SDP mapping for JPEG XS video is as follows: | 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 | m=video 30000 RTP/AVP 112 | |||
a=rtpmap:112 jxsv/90000 | a=rtpmap:112 jxsv/90000 | |||
a=fmtp:112 packetmode=0;sampling=YCbCr-4:2:2; | a=fmtp:112 packetmode=0;sampling=YCbCr-4:2:2; | |||
width=1920;height=1080;depth=10; | width=1920;height=1080;depth=10; | |||
colorimetry=BT709;TCS=SDR;RANGE=FULL;TP=2110TPNL | colorimetry=BT709;TCS=SDR;RANGE=FULL;TP=2110TPNL | |||
]]></artwork></figure> | ]]></sourcecode> | |||
</t> | <t> | |||
<t> | ||||
In this example, a JPEG XS RTP stream is to be sent to UDP destination | 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 | 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 | rate of 90000 Hz. Note that the "a=fmtp:" line has been wrapped to fit | |||
this page, and will be a single long line in the SDP file. This example | this page and will be a single long line in the SDP file. This example | |||
includes the TP parameter (as specified in <xref target="tsdt" />). | includes the TP parameter (as specified in <xref target="tsdt" format=" | |||
</t> | default"/>). | |||
</section> | </t> | |||
<section title="Usage with SDP Offer/Answer Model"> | </section> | |||
<t> | <section numbered="true" toc="default"> | |||
When JPEG XS is offered over RTP using <xref target="RFC3264">SDP in an | <name>Usage with SDP Offer/Answer Model</name> | |||
<t> | ||||
When JPEG XS is offered over RTP using <xref target="RFC3264" format="d | ||||
efault">SDP in an | ||||
offer/answer model</xref> for negotiation for unicast usage, the follow ing | offer/answer model</xref> for negotiation for unicast usage, the follow ing | |||
limitations and rules apply: | limitations and rules apply: | |||
</t> | </t> | |||
<t> | <dl newline="false" spacing="normal"> | |||
<list style="hanging"> | <dt/> | |||
<t> | <dd> | |||
The "a=fmtp" attribute SHALL be present specifying the required | The "a=fmtp" attribute <bcp14>SHALL</bcp14> be present specifying t | |||
parameter "packetmode", and MAY specify any of the | he required | |||
optional parameters, as described in <xref target="media_type_def" | parameter "packetmode" and <bcp14>MAY</bcp14> specify any of the | |||
/>. | optional parameters, as described in <xref target="media_type_def" | |||
</t> | format="default"/>. | |||
<t> | </dd> | |||
All parameters in the "a=fmtp" attribute indicate sending capabilit | <dt/> | |||
ies (i.e. properties of the payload). | <dd> | |||
</t> | All parameters in the "a=fmtp" attribute indicate sending capabilit | |||
<t> | ies (i.e., properties of the payload). | |||
</dd> | ||||
<dt/> | ||||
<dd> | ||||
An answerer of the SDP is required to support all parameters and | An answerer of the SDP is required to support all parameters and | |||
values of the parameters provided by the offerer; otherwise, the an | values of the parameters provided by the offerer; otherwise, the | |||
swerer | answerer <bcp14>SHALL</bcp14> reject the session. It falls on the | |||
SHALL reject the session. It falls on the offerer to use | offerer to use values that are expected to be supported by the | |||
values that are expected to be supported by the answerer. If the | answerer. If the answerer accepts the session, it | |||
answerer accepts the session, it SHALL reply with the exact same pa | <bcp14>SHALL</bcp14> reply with the exact same parameter values | |||
rameters | in the "a=fmtp" attribute as they were initially offered. | |||
values in the "a=fmtp" attribute as it was offered. | </dd> | |||
</t> | ||||
<t> | ||||
The same RTP payload type number used in the offer SHOULD be used i | ||||
n the answer, as specified in <xref target="RFC3264" />. | ||||
</t> | ||||
</list> | ||||
</t> | ||||
</section> | ||||
</section> | ||||
<section title="IANA Considerations"> | <dt/> | |||
<t> | <dd> | |||
The IANA is requested to register the media type registration "video/jxsv | The same RTP payload type number used in the offer | |||
" | <bcp14>SHOULD</bcp14> be used in the answer, as specified in | |||
as specified in <xref target="media_type_def" />. | <xref target="RFC3264" format="default"/>. | |||
The media type is also requested to be added to the IANA registry for | </dd> | |||
"RTP Payload Format MIME types" <https://www.iana.org/assignments/rtp- | </dl> | |||
parameters>. | </section> | |||
</t> | </section> | |||
</section> | <section numbered="true" toc="default"> | |||
<name>IANA Considerations</name> | ||||
<t> | ||||
IANA has registered the media type registration "video/jxsv" | ||||
as specified in <xref target="media_type_def" format="default"/>. The | ||||
media type has also been added to the IANA registry for "RTP | ||||
Payload Format Media Types" <eref brackets ="angle" | ||||
target="https://www.iana.org/assignments/rtp-parameters"/>. | ||||
<section title="Security Considerations" anchor="security"> | </t> | |||
<t> | </section> | |||
<section anchor="security" numbered="true" toc="default"> | ||||
<name>Security Considerations</name> | ||||
<t> | ||||
RTP packets using the payload format defined in this memo | RTP packets using the payload format defined in this memo | |||
are subject to the security considerations discussed in <xref target="RFC | are subject to the security considerations discussed in <xref target="RFC | |||
3550" /> | 3550" format="default"/> | |||
and in any applicable RTP profile such as <xref target="RFC3551">RTP/AVP< | and in any applicable RTP profile such as <xref target="RFC3551" format=" | |||
/xref>, | default">RTP/AVP</xref>, | |||
<xref target="RFC4585">RTP/AVPF</xref>, | <xref target="RFC4585" format="default">RTP/AVPF</xref>, | |||
<xref target="RFC3711">RTP/SAVP</xref>, or | <xref target="RFC3711" format="default">RTP/SAVP</xref>, or | |||
<xref target="RFC5124">RTP/SAVPF</xref>. This implies | <xref target="RFC5124" format="default">RTP/SAVPF</xref>. This implies | |||
that confidentiality of the media streams is achieved by encryption. | that confidentiality of the media streams is achieved by encryption. | |||
</t> | </t> | |||
<t> | ||||
<t> | However, as <xref target="RFC7202" format="default">"Securing the RTP Fra | |||
However, as <xref target="RFC7202">"Securing the RTP Framework: Why RTP | mework: Why RTP | |||
Does Not Mandate a Single Media Security Solution"</xref> | Does Not Mandate a Single Media Security Solution"</xref> | |||
discusses, it is not an RTP payload format's responsibility to | discusses, it is not an RTP payload format's responsibility to | |||
discuss or mandate what solutions are used to meet the basic security | discuss or mandate what solutions are used to meet the basic security | |||
goals like confidentiality, integrity, and source authenticity for | goals like confidentiality, integrity, and source authenticity for | |||
RTP in general. This responsibility lies on anyone using RTP in an | RTP in general. This responsibility lies on anyone using RTP in an | |||
application. They can find guidance on available security mechanisms | application. They can find guidance on available security mechanisms | |||
and important considerations in | and important considerations in | |||
<xref target="RFC7201">"Options for Securing RTP Sessions"</xref>. | <xref target="RFC7201" format="default">"Options for Securing RTP Session | |||
Applications SHOULD use one or more appropriate strong | s"</xref>. | |||
Applications <bcp14>SHOULD</bcp14> use one or more appropriate strong | ||||
security mechanisms. | security mechanisms. | |||
</t> | </t> | |||
<t> | ||||
<t> | ||||
Implementations of this RTP payload format need to take appropriate | Implementations of this RTP payload format need to take appropriate | |||
security considerations into account. It is important for the decoder | security considerations into account. It is important for the decoder | |||
to be robust against malicious or malformed payloads and ensure th at | to be robust against malicious or malformed payloads and ensure that | |||
they do not cause the decoder to overrun its allocated memory or otherwis e | they do not cause the decoder to overrun its allocated memory or otherwis e | |||
misbehave. An overrun in allocated memory could lead to arbitrary code | misbehave. An overrun in allocated memory could lead to arbitrary code | |||
execution by an attacker. The same applies to the encoder, even though | execution by an attacker. The same applies to the encoder, even though | |||
problems in encoders are typically rarer. | problems in encoders are typically rarer. | |||
</t> | </t> | |||
<t> | ||||
<t> | ||||
This payload format and the JPEG XS encoding do not exhibit any | This payload format and the JPEG XS encoding do not exhibit any | |||
substantial non-uniformity, either in output or in complexity to perform | substantial non-uniformity, either in output or in complexity to perform | |||
the decoding operation and thus are unlikely to pose a denial-of-service | the decoding operation; thus, they are unlikely to pose a denial-of-servi ce | |||
threat due to the receipt of pathological datagrams. | threat due to the receipt of pathological datagrams. | |||
</t> | </t> | |||
<t> | ||||
<t> | ||||
This payload format and the JPEG XS encoding do not contain code that is executable. | This payload format and the JPEG XS encoding do not contain code that is executable. | |||
</t> | </t> | |||
<t> | ||||
<t> | ||||
It is important to note that HD or UHDTV JPEG XS-encoded video can have | ||||
significant bandwidth requirements (typically more than 1 Gbps for | ||||
ultra high-definition video, especially if using high framerate). | ||||
This is sufficient to cause potential for denial-of-service if | ||||
transmitted onto most currently available Internet paths. | ||||
</t> | ||||
<t> | It is important to note that high-definition (HD) or ultra-high-definitio | |||
n | ||||
(UHD) video that is encoded with JPEG XS can have significant bandwidth | ||||
requirements (typically more than 1 Gbps for UHD video, especially if | ||||
using high framerate). This is sufficient to cause potential for denial | ||||
of service if transmitted onto most currently available Internet paths. | ||||
</t> | ||||
<t> | ||||
Accordingly, if best-effort service is being used, users of this | Accordingly, if best-effort service is being used, users of this | |||
payload format SHALL monitor packet loss to ensure that the packet | payload format <bcp14>SHALL</bcp14> monitor packet loss to ensure that th e packet | |||
loss rate is within acceptable parameters. Packet loss is considered | loss rate is within acceptable parameters. Packet loss is considered | |||
acceptable if a TCP flow across the same network path, and | acceptable if a TCP flow across the same network path, and | |||
experiencing the same network conditions, would achieve an average | experiencing the same network conditions, would achieve an average | |||
throughput, measured on a reasonable timescale, that is not less than | throughput, measured on a reasonable timescale, that is not less than | |||
the RTP flow is achieving. This condition can be satisfied by | the RTP flow is achieving. This condition can be satisfied by | |||
implementing congestion control mechanisms to adapt the transmission | implementing congestion control mechanisms to adapt the transmission | |||
rate (or the number of layers subscribed for a layered multicast | rate (or the number of layers subscribed for a layered multicast | |||
session), or by arranging for a receiver to leave the session if the | session) or by arranging for a receiver to leave the session if the | |||
loss rate is unacceptably high. | loss rate is unacceptably high. | |||
</t> | </t> | |||
<t> | ||||
<t> | ||||
This payload format may also be used in networks that provide | This payload format may also be used in networks that provide | |||
quality-of-service guarantees. If enhanced service is being used, | quality-of-service guarantees. If enhanced service is being used, | |||
receivers SHOULD monitor packet loss to ensure that the service that | receivers <bcp14>SHOULD</bcp14> monitor packet loss to ensure that the se rvice that | |||
was requested is actually being delivered. If it is not, then they | was requested is actually being delivered. If it is not, then they | |||
SHOULD assume that they are receiving best-effort service and behave | <bcp14>SHOULD</bcp14> assume that they are receiving best-effort service and behave | |||
accordingly. | accordingly. | |||
</t> | </t> | |||
</section> | </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 ***** --> | </middle> | |||
<back> | <back> | |||
<!-- References split into informative and normative --> | ||||
<!-- There are 2 ways to insert reference entries from the citation libraries | <references anchor="references"> | |||
: | <name>References</name> | |||
1. define an ENTITY at the top, and use "ampersand character"RFC2629; here ( | <references> | |||
as shown) | <name>Normative References</name> | |||
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.x | ||||
ml") | ||||
Both are cited textually in the same manner: by using xref elements. | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | |||
If you use the PI option, xml2rfc will, by default, try to find included fil | C.2119.xml"/> | |||
es in the same | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
directory as the including file. You can also define the XML_LIBRARY environ | FC.3264.xml"/> | |||
ment variable | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
with a value containing a set of directories to search. These can be either | FC.3550.xml"/> | |||
in the local | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
filing system or remote ones accessed by http (http://domain/dir/... ).--> | FC.3551.xml"/> | |||
<references title="Normative References"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
<!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2 | FC.4855.xml"/> | |||
119.xml"?--> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
&RFC2119; | FC.6838.xml"/> | |||
&RFC3264; | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
&RFC3550; | FC.8083.xml"/> | |||
&RFC3551; | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
&RFC4855; | FC.8085.xml"/> | |||
&RFC6838; | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
&RFC8083; | FC.8174.xml"/> | |||
&RFC8085; | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
&RFC8174; | FC.8866.xml"/> | |||
&RFC8866; | ||||
<reference anchor="ISO21122-1"> | <reference anchor="ISO21122-1"> | |||
<front> | <front> | |||
<title> | <title> | |||
Information technology - JPEG XS low-latency lightweight image coding | Information technology - JPEG XS low-latency lightweight image coding | |||
system - Part 1: Core coding system | system - Part 1: Core coding system | |||
</title> | </title> | |||
<author> | <author> | |||
<organization>International Organization for Standardization (ISO) - | <organization>ISO/IEC</organization> | |||
International Electrotechnical Commission (IEC)</organization> | </author> | |||
</author> | </front> | |||
<date /> | <seriesInfo name="ISO/IEC" value="IS 21122-1"/> | |||
</front> | </reference> | |||
<seriesInfo name="ISO/IEC" value="IS 21122-1"/> | ||||
</reference> | <reference anchor="ISO21122-2"> | |||
<reference anchor="ISO21122-2"> | <front> | |||
<front> | <title> | |||
<title> | ||||
Information technology - JPEG XS low-latency lightweight image coding | Information technology - JPEG XS low-latency lightweight image coding | |||
system - Part 2: Profiles and buffer models | system - Part 2: Profiles and buffer models | |||
</title> | </title> | |||
<author> | <author> | |||
<organization>International Organization for Standardization (ISO) - | <organization>ISO/IEC</organization> | |||
International Electrotechnical Commission (IEC)</organization> | </author> | |||
</author> | </front> | |||
<date /> | <seriesInfo name="ISO/IEC" value="IS 21122-2"/> | |||
</front> | </reference> | |||
<seriesInfo name="ISO/IEC" value="IS 21122-2"/> | ||||
</reference> | <reference anchor="ISO21122-3"> | |||
<reference anchor="ISO21122-3"> | <front> | |||
<front> | <title> | |||
<title> | ||||
Information technology - JPEG XS low-latency lightweight image coding | Information technology - JPEG XS low-latency lightweight image coding | |||
system - Part 3: Transport and container formats | system - Part 3: Transport and container formats | |||
</title> | </title> | |||
<author> | <author> | |||
<organization>International Organization for Standardization (ISO) - | <organization>ISO/IEC</organization> | |||
International Electrotechnical Commission (IEC)</organization> | </author> | |||
</author> | </front> | |||
<date /> | <seriesInfo name="ISO/IEC" value="IS 21122-3"/> | |||
</front> | </reference> | |||
<seriesInfo name="ISO/IEC" value="IS 21122-3"/> | ||||
</reference> | </references> | |||
</references> | ||||
<references> | ||||
<name>Informative References</name> | ||||
<reference anchor="ISO11664-1" target="https://www.iso.org/standard/7416 | ||||
4.html"> | ||||
<front> | ||||
<title>Colorimetry - Part 1: CIE standard colorimetric observers</ti | ||||
tle> | ||||
<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.60 | ||||
1-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.60 | ||||
1-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.70 | ||||
9-2-199510-S/en"> | ||||
<front> | ||||
<title>Parameter values for the HDTV standards for production and in | ||||
ternational 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.70 | ||||
9-6-201506-I/en"> | ||||
<front> | ||||
<title>Parameter values for the HDTV standards for production and in | ||||
ternational 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.1 | ||||
886-0-201103-I/en"> | ||||
<front> | ||||
<title>Reference electro-optical transfer function for flat panel di | ||||
splays 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.2 | ||||
020-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.2 | ||||
100-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.R | ||||
FC.3711.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.4175.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.4585.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5124.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7201.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.7202.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8888.xml"/> | ||||
<reference anchor="SMPTE157" target="https://ieeexplore.ieee.org/documen | ||||
t/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/docume | ||||
nt/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/docum | ||||
ent/8709077"> | ||||
<front> | ||||
<title>SMPTE Standard - D-Cinema Distribution Master - Image Charact | ||||
eristics</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/docu | ||||
ment/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/docu | ||||
ment/9286953"> | ||||
<front> | ||||
<title>SMPTE Standard - Academy Density Exchange Encoding (ADX) - En | ||||
coding 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/docume | ||||
nt/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/doc | ||||
ument/8165971"> | ||||
<front> | ||||
<title>SMPTE Standard - Professional Media Over Managed IP Networks: | ||||
Traffic Shaping and Delivery Timing for Video</title> | ||||
<author> | ||||
<organization>SMPTE</organization> | ||||
</author> | ||||
<date 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> | ||||
<references title="Informative References"> | ||||
&RFC3711; | ||||
&RFC4175; | ||||
&RFC4585; | ||||
&RFC5124; | ||||
&RFC7201; | ||||
&RFC7202; | ||||
&RFC8888; | ||||
<reference anchor="SMPTE-ST2110-21" target="https://doi.org/10.5594/SMPTE.S | ||||
T2110-21.2017"> | ||||
<front> | ||||
<title> | ||||
SMPTE Standard - Professional Media Over Managed IP Networks: Traffic | ||||
Shaping and Delivery Timing for Video | ||||
</title> | ||||
<author> | ||||
<organization>Society of Motion Picture and Television Engineers</org | ||||
anization> | ||||
</author> | ||||
<date year="2017"/> | ||||
</front> | ||||
<seriesInfo name="SMPTE" value="ST 2110-21:2017"/> | ||||
</reference> | ||||
</references> | ||||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 173 change blocks. | ||||
1138 lines changed or deleted | 1372 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |