rfc9328xml2.original.xml | rfc9328.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | <!DOCTYPE rfc [ | |||
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.9 (Ruby 2.6 | ||||
.8) --> | ||||
<!DOCTYPE rfc [ | ||||
<!ENTITY nbsp " "> | <!ENTITY nbsp " "> | |||
<!ENTITY zwsp "​"> | <!ENTITY zwsp "​"> | |||
<!ENTITY nbhy "‑"> | <!ENTITY nbhy "‑"> | |||
<!ENTITY wj "⁠"> | <!ENTITY wj "⁠"> | |||
]> | ]> | |||
<rfc ipr="trust200902" docName="draft-ietf-avtcore-rtp-vvc-18" category="std" co | <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.9 (Ruby 2.6.8 | |||
nsensus="true" tocInclude="true" sortRefs="true" symRefs="true"> | ) --> | |||
<front> | ||||
<title abbrev="RTP payload format for VVC">RTP Payload Format for Versatile | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" submissionType | |||
Video Coding (VVC)</title> | ="IETF" category="std" consensus="true" docName="draft-ietf-avtcore-rtp-vvc-18" | |||
number="9328" tocInclude="true" sortRefs="true" symRefs="true" updates="" obsole | ||||
tes="" xml:lang="en" version="3"> | ||||
<!-- xml2rfc v2v3 conversion 3.15.0 --> | ||||
<front> | ||||
<title abbrev="RTP Payload Format for VVC">RTP Payload Format for Versatile | ||||
Video Coding (VVC)</title> | ||||
<seriesInfo name="RFC" value="9328"/> | ||||
<author initials="S." surname="Zhao" fullname="Shuai Zhao"> | <author initials="S." surname="Zhao" fullname="Shuai Zhao"> | |||
<organization>Intel</organization> | <organization>Intel</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>2200 Mission College Blvd</street> | <street>2200 Mission College Blvd</street> | |||
<city>Santa Clara</city> | <city>Santa Clara</city> | |||
<code>95054</code> | <code>95054</code> | |||
<country>USA</country> | <country>United States of America</country> | |||
</postal> | </postal> | |||
<email>shuai.zhao@ieee.org</email> | <email>shuai.zhao@ieee.org</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="S." surname="Wenger" fullname="Stephan Wenger"> | <author initials="S." surname="Wenger" fullname="Stephan Wenger"> | |||
<organization>Tencent</organization> | <organization>Tencent</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>2747 Park Blvd</street> | <street>2747 Park Blvd</street> | |||
<city>Palo Alto</city> | <city>Palo Alto</city> | |||
<code>94588</code> | <code>94588</code> | |||
<country>USA</country> | <country>United States of America</country> | |||
</postal> | </postal> | |||
<email>stewe@stewe.org</email> | <email>stewe@stewe.org</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="Y." surname="Sanchez" fullname="Yago Sanchez"> | <author initials="Y." surname="Sanchez" fullname="Yago Sanchez"> | |||
<organization>Fraunhofer HHI</organization> | <organization>Fraunhofer HHI</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Einsteinufer 37</street> | <street>Einsteinufer 37</street> | |||
<city>Berlin</city> | <city>Berlin</city> | |||
skipping to change at line 60 ¶ | skipping to change at line 60 ¶ | |||
<email>yago.sanchez@hhi.fraunhofer.de</email> | <email>yago.sanchez@hhi.fraunhofer.de</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="Y.-K." surname="Wang" fullname="Ye-Kui Wang"> | <author initials="Y.-K." surname="Wang" fullname="Ye-Kui Wang"> | |||
<organization>Bytedance Inc.</organization> | <organization>Bytedance Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>8910 University Center Lane</street> | <street>8910 University Center Lane</street> | |||
<city>San Diego</city> | <city>San Diego</city> | |||
<code>92122</code> | <code>92122</code> | |||
<country>USA</country> | <country>United States of America</country> | |||
</postal> | </postal> | |||
<email>yekui.wang@bytedance.com</email> | <email>yekui.wang@bytedance.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="M." surname=" M Hannuksela" fullname="Miska M. Hannuk sela"> | <author initials="M." surname=" M Hannuksela" fullname="Miska M. Hannuksela" > | |||
<organization>Nokia Technologies</organization> | <organization>Nokia Technologies</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Hatanpään valtatie 30</street> | <street>Hatanpään valtatie 30</street> | |||
<city>Tampere</city> | <city>Tampere</city> | |||
<code>33100</code> | <code>33100</code> | |||
<country>Finland</country> | <country>Finland</country> | |||
</postal> | </postal> | |||
<email>miska.hannuksela@nokia.com</email> | <email>miska.hannuksela@nokia.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date year="2022" month="December"/> | ||||
<date year="2022" month="August" day="01"/> | <area>art</area> | |||
<area>ART</area> | ||||
<workgroup>avtcore</workgroup> | <workgroup>avtcore</workgroup> | |||
<keyword>Internet-Draft</keyword> | <keyword>H.266</keyword> | |||
<keyword>ISO/IEC 23090-3</keyword> | ||||
<keyword>MPEG-I Part 3</keyword> | ||||
<keyword>RTP Payload</keyword> | ||||
<keyword>Video</keyword> | ||||
<abstract> | <abstract> | |||
<t> This memo describes an RTP payload format for the Versatile Video Cod | ||||
<t>This memo describes an RTP payload format for the video coding | ing (VVC) | |||
standard ITU-T Recommendation H.266 and ISO/IEC International | specification, which was published as both ITU-T Recommendation H.266 and ISO/ | |||
Standard 23090-3, both also known as Versatile Video Coding (VVC) and | IEC | |||
developed by the Joint Video Experts Team (JVET). The RTP payload | International Standard 23090-3. VVC was developed by the Joint Video Experts | |||
Team (JVET). The RTP payload | ||||
format allows for packetization of one or more Network Abstraction | format allows for packetization of one or more Network Abstraction | |||
Layer (NAL) units in each RTP packet payload as well as fragmentation | Layer (NAL) units in each RTP packet payload, as well as fragmentation | |||
of a NAL unit into multiple RTP packets. The payload format has wide | of a NAL unit into multiple RTP packets. The payload format has wide | |||
applicability in videoconferencing, Internet video streaming, and | applicability in videoconferencing, Internet video streaming, and | |||
high-bitrate entertainment-quality video, among other applications.</t> | high-bitrate entertainment-quality video, among other applications.</t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | <middle> | |||
<section anchor="introduction"> | ||||
<section anchor="introduction"><name>Introduction</name> | <name>Introduction</name> | |||
<t>The Versatile Video Coding specification was formally published as both | ||||
<t>The Versatile Video Coding specification was formally published as both ITU-T | ITU-T Recommendation H.266 <xref target="VVC"/> and ISO/IEC International Stand | |||
Recommendation H.266 <xref target="VVC"/> and ISO/IEC International Standard 23 | ard 23090-3 <xref target="ISO23090-3"/>. VVC is reported to provide significant | |||
090-3 <xref target="ISO23090-3"/>. VVC is reported to provide significant codin | coding efficiency gains over High Efficiency Video Coding <xref target="HEVC"/> | |||
g efficiency gains over High Efficiency Video Coding <xref target="HEVC"/>, also | , also known as H.265, and other earlier video codecs.</t> | |||
known as H.265, and other earlier video codecs.</t> | <t>This memo specifies an RTP payload format for VVC. It shares its | |||
basic design with the NAL-unit-based RTP | ||||
<t>This memo specifies an RTP payload format for VVC. It shares its | payload formats of Advanced Video Coding (AVC) <xref target="RFC6184"/>, Scalabl | |||
basic design with the NAL (Network Abstraction Layer) unit based RTP | e Video Coding | |||
payload formats of AVC Video Coding <xref target="RFC6184"/>, Scalable Video Cod | (SVC) <xref target="RFC6190"/>, and High Efficiency Video Coding (HEVC) <xref ta | |||
ing | rget="RFC7798"/>, as well as | |||
(SVC) <xref target="RFC6190"/>, High Efficiency Video Coding (HEVC) <xref target | ||||
="RFC7798"/> and | ||||
their respective predecessors. With respect to design | their respective predecessors. With respect to design | |||
philosophy, security, congestion control, and overall implementation | philosophy, security, congestion control, and overall implementation | |||
complexity, it has similar properties to those earlier payload format | complexity, it has similar properties to those earlier payload format | |||
specifications. This is a conscious choice, as at least RFC 6184 is | specifications. This is a conscious choice, as at least <xref target="RFC6184"/ > is | |||
widely deployed and generally known in the relevant implementer | widely deployed and generally known in the relevant implementer | |||
communities. Certain scalability-related mechanisms known from <xref target="RF C6190"/> were incorporated into this document, as VVC version 1 supports tempora l, spatial, and | communities. Certain scalability-related mechanisms known from <xref target="RF C6190"/> were incorporated into this document, as VVC version 1 supports tempora l, spatial, and | |||
signal-to-noise ratio (SNR) scalability.</t> | signal-to-noise ratio (SNR) scalability.</t> | |||
<section anchor="overview-of-the-vvc-codec"> | ||||
<section anchor="overview-of-the-vvc-codec"><name>Overview of the VVC Codec</nam | <name>Overview of the VVC Codec</name> | |||
e> | <t>VVC and HEVC share a similar hybrid video codec design. In this | |||
<t>VVC and HEVC share a similar hybrid video codec design. In this | ||||
memo, we provide a very brief overview of those features of VVC | memo, we provide a very brief overview of those features of VVC | |||
that are, in some form, addressed by the payload format specified | that are, in some form, addressed by the payload format specified | |||
herein. Implementers have to read, understand, and apply the ITU-T/ISO/IEC spec ifications pertaining to VVC to arrive at | herein. Implementers have to read, understand, and apply the ITU-T/ISO/IEC spec ifications pertaining to VVC to arrive at | |||
interoperable, well-performing implementations.</t> | interoperable, well-performing implementations.</t> | |||
<t>Conceptually, both VVC and HEVC include a Video Coding Layer (VCL), | ||||
<t>Conceptually, both VVC and HEVC include a Video Coding Layer (VCL), | ||||
which is often used to refer to the coding-tool features, and a NAL, which | which is often used to refer to the coding-tool features, and a NAL, which | |||
is often used to refer to the systems and transport interface aspects of the cod ecs.</t> | is often used to refer to the systems and transport interface aspects of the cod ecs.</t> | |||
<section anchor="coding-tool-features-informative"> | ||||
<section anchor="coding-tool-features-informative"><name>Coding-Tool Features (i | <name>Coding-Tool Features (Informative)</name> | |||
nformative)</name> | <t>Coding-tool features are described below with occasional reference | |||
to | ||||
<t>Coding tool features are described below with occasional reference to | the coding-tool set of HEVC, which is well known in the community.</t> | |||
the coding tool set of HEVC, which is well known in the community.</t> | <t>Similar to earlier hybrid-video-coding-based standards, including | |||
<t>Similar to earlier hybrid-video-coding-based standards, including | ||||
HEVC, the following basic video coding design is employed by VVC. | HEVC, the following basic video coding design is employed by VVC. | |||
A prediction signal is first formed by either intra- or motion- | A prediction signal is first formed by either intra- or motion- | |||
compensated prediction, and the residual (the difference between the | compensated prediction, and the residual (the difference between the | |||
original and the prediction) is then coded. The gains in coding | original and the prediction) is then coded. The gains in coding | |||
efficiency are achieved by redesigning and improving almost all parts | efficiency are achieved by redesigning and improving almost all parts | |||
of the codec over earlier designs. In addition, VVC includes several | of the codec over earlier designs. In addition, VVC includes several | |||
tools to make the implementation on parallel architectures easier.</t> | tools to make the implementation on parallel architectures easier.</t> | |||
<t>Finally, VVC includes temporal, spatial, and SNR scalability, as we | ||||
<t>Finally, VVC includes temporal, spatial, and SNR scalability as well | ll | |||
as multiview coding support.</t> | as multiview coding support.</t> | |||
<dl newline="true" spacing="normal"> | ||||
<t>Coding blocks and transform structure</t> | <dt>Coding blocks and transform structure</dt> | |||
<dd>Among major coding-tool differences between HEVC and VVC, one of | ||||
<t>Among major coding-tool differences between HEVC and VVC, one of | ||||
the important improvements is the more flexible coding tree structure | the important improvements is the more flexible coding tree structure | |||
in VVC, i.e., multi-type tree. In addition to quadtree, binary and | in VVC, i.e., multi-type tree. In addition to quadtree, binary and | |||
ternary trees are also supported, which contributes significant | ternary trees are also supported, which contributes significant | |||
improvement in coding efficiency. Moreover, the maximum size of a | improvement in coding efficiency. Moreover, the maximum size of a | |||
coding tree unit (CTU) is increased from 64x64 to 128x128. To | coding tree unit (CTU) is increased from 64x64 to 128x128. To | |||
improve the coding efficiency of chroma signal, luma chroma separated | improve the coding efficiency of chroma signal, luma-chroma-separated | |||
trees at CTU level may be employed for intra-slices. The square transforms | trees at CTU level may be employed for intra slices. The square transforms | |||
in HEVC are extended to non-square transforms for rectangular blocks | in HEVC are extended to non-square transforms for rectangular blocks | |||
resulting from binary and ternary tree splits. Besides, VVC supports | resulting from binary and ternary tree splits. Besides, VVC supports | |||
multiple transform sets (MTS), including DCT-2, DST-7, and DCT-8 as well | multiple transform sets (MTSs), including DCT-2, DST-7, and DCT-8, as well | |||
as the non-separable secondary transform. The transforms used in VVC | as the non-separable secondary transform. The transforms used in VVC | |||
can have different sizes with support for larger transform sizes. For DCT-2, | can have different sizes with support for larger transform sizes. For DCT-2, | |||
the transform sizes range from 2x2 to 64x64, and for DST-7 and DCT-8, the | the transform sizes range from 2x2 to 64x64, and for DST-7 and DCT-8, the | |||
transform sizes range from 4x4 to 32x32. In addition, VVC also | transform sizes range from 4x4 to 32x32. In addition, VVC also | |||
support sub-block transform for both intra and inter coded blocks. | support sub-block transform for both intra- and inter-coded blocks. | |||
For intra coded blocks, intra sub-partitioning (ISP) may be used to | For intra-coded blocks, intra sub-partitioning (ISP) may be used to | |||
allow sub-block based intra prediction and transform. For inter | allow sub-block-based intra prediction and transform. For inter blocks, sub-blo | |||
blocks, sub-block transform may be used assuming that only a part of | ck transform may be used assuming that only a part of | |||
an inter-block has non-zero transform coefficients.</t> | an inter block has non-zero transform coefficients.</dd> | |||
<dt>Entropy coding</dt> | ||||
<t>Entropy coding</t> | <dd>Similar to HEVC, VVC uses a single entropy-coding engine, which is | |||
based on context adaptive binary arithmetic coding <xref target="CABAC"/> | ||||
<t>Similar to HEVC, VVC uses a single entropy-coding engine, which is | ||||
based on context adaptive binary arithmetic coding <xref target="CABAC"/>, | ||||
but with the support of multi-window sizes. The window sizes can be | but with the support of multi-window sizes. The window sizes can be | |||
initialized differently for different context models. Due to such a | initialized differently for different context models. Due to such a | |||
design, it has more efficient adaptation speed and better coding | design, it has more efficient adaptation speed and better coding | |||
efficiency. A joint chroma residual coding scheme is applied to | efficiency. A joint chroma residual coding scheme is applied to | |||
further exploit the correlation between the residuals of two color | further exploit the correlation between the residuals of two color | |||
components. In VVC, different residual coding schemes are applied | components. In VVC, different residual coding schemes are applied | |||
for regular transform coefficients and residual samples generated | for regular transform coefficients and residual samples generated | |||
using transform-skip mode.</t> | using transform-skip mode.</dd> | |||
<dt>In-loop filtering</dt> | ||||
<t>In-loop filtering</t> | <dd>VVC has more feature support in loop filters than HEVC. The | |||
<t>VVC has more feature support in loop filters than HEVC. The | ||||
deblocking filter in VVC is similar to HEVC but operates at a | deblocking filter in VVC is similar to HEVC but operates at a | |||
smaller grid. After deblocking and sample adaptive offset (SAO), an | smaller grid. After deblocking and sample adaptive offset (SAO), an | |||
adaptive loop filter (ALF) may be used. As a Wiener filter, ALF | adaptive loop filter (ALF) may be used. As a Wiener filter, ALF | |||
reduces distortion of decoded pictures. Besides, VVC introduces a | reduces distortion of decoded pictures. Besides, VVC introduces a | |||
new module called luma mapping with chroma scaling | new module called luma mapping with chroma scaling | |||
to fully utilize the dynamic range of signal so that rate-distortion | to fully utilize the dynamic range of signal so that rate-distortion | |||
performance of both Standard Dynamic Range (SDR) and High Dynamic Range (HDR) co | performance of both Standard Dynamic Range (SDR) and High Dynamic Range (HDR) co | |||
ntent is improved.</t> | ntent is improved.</dd> | |||
<dt>Motion prediction and coding</dt> | ||||
<t>Motion prediction and coding</t> | <dd>Compared to HEVC, VVC introduces several improvements in this area | |||
. | ||||
<t>Compared to HEVC, VVC introduces several improvements in this area. | ||||
First, there is the adaptive motion vector resolution (AMVR), which | First, there is the adaptive motion vector resolution (AMVR), which | |||
can save bit cost for motion vectors by adaptively signaling motion | can save bit cost for motion vectors by adaptively signaling motion | |||
vector resolution. Then the affine motion compensation is included | vector resolution. Then, the affine motion compensation is included | |||
to capture complicated motion like zooming and rotation. Meanwhile, | to capture complicated motion-like zooming and rotation. Meanwhile, | |||
prediction refinement with the optical flow with affine mode (PROF) | prediction refinement with the optical flow (PROF) with affine mode | |||
is further deployed to mimic affine motion at the pixel level. | is further deployed to mimic affine motion at the pixel level. | |||
Thirdly the decoder side motion vector refinement (DMVR) is a method | Thirdly, the decoder-side motion vector refinement (DMVR) is a method | |||
to derive MV vector at decoder side based on block matching so that fewer bits m | to derive the motion vector at the decoder side based on block matching so that | |||
ay be spent | fewer bits may be spent | |||
on motion vectors. Bi-directional optical flow (BDOF) is a similar | on motion vectors. Bidirectional optical flow (BDOF) is a similar | |||
method to PROF. BDOF adds a sample wise offset at 4x4 sub-block level that is d | method to PROF. BDOF adds a sample-wise offset at the 4x4 sub-block level that | |||
erived with equations based on gradients of the prediction samples and a motion | is derived with equations based on gradients of the prediction samples and a mot | |||
difference relative to CU motion vectors. Furthermore, merge with motion vector | ion difference relative to coding-unit (CU) motion vectors. Furthermore, merge | |||
difference (MMVD) | with motion vector difference (MMVD) | |||
is a special mode, which further signals a limited set of motion | is a special mode that further signals a limited set of motion | |||
vector differences on top of merge mode. In addition to MMVD, there | vector differences on top of merge mode. In addition to MMVD, there | |||
are another three types of special merge modes, i.e., sub-block | are another three types of special merge modes, i.e., sub-block | |||
merge, triangle, and combined intra-/inter-prediction (CIIP). Sub-block merge l ist includes one candidate of sub-block temporal motion | merge, triangle, and combined intra/inter prediction (CIIP). The sub-block merg e list includes one candidate of sub-block temporal motion | |||
vector prediction (SbTMVP) and up to four candidates of affine motion | vector prediction (SbTMVP) and up to four candidates of affine motion | |||
vectors. Triangle is based on triangular block motion compensation. | vectors. Triangle is based on triangular block motion compensation. | |||
CIIP combines intra- and inter- predictions with weighting. | CIIP combines intra and inter predictions with weighting. | |||
Adaptive weighting may be employed with a block-level tool called | Adaptive weighting may be employed with a block-level tool called | |||
bi-prediction with CU based weighting (BCW) which provides more | bi-prediction with CU-based weighting (BCW), which provides more | |||
flexibility than in HEVC.</t> | flexibility than in HEVC.</dd> | |||
<dt>Intra prediction and intra coding</dt> | ||||
<t>Intra prediction and intra-coding</t> | <dd>To capture the diversified local image texture directions with fin | |||
er | ||||
<t>To capture the diversified local image texture directions with finer | ||||
granularity, VVC supports 65 angular directions instead of 33 | granularity, VVC supports 65 angular directions instead of 33 | |||
directions in HEVC. The intra mode coding is based on a 6-most-probable-mode sc heme, and the 6 most probable modes are derived using | directions in HEVC. The intra mode coding is based on a 6-most-probable-modes s cheme, and the 6 most probable modes are derived using | |||
the neighboring intra prediction directions. In addition, to deal | the neighboring intra prediction directions. In addition, to deal | |||
with the different distributions of intra prediction angles for | with the different distributions of intra prediction angles for | |||
different block aspect ratios, a wide-angle intra prediction (WAIP) | different block aspect ratios, a wide-angle-intra-prediction (WAIP) | |||
scheme is applied in VVC by including intra prediction angles | scheme is applied in VVC by including intra prediction angles | |||
beyond those present in HEVC. Unlike HEVC which only allows using | beyond those present in HEVC. Unlike HEVC, which only allows using | |||
the most adjacent line of reference samples for intra prediction, | the most adjacent line of reference samples for intra prediction, | |||
VVC also allows using two further reference lines, as known as | VVC also allows using two further reference lines, known as | |||
multi-reference-line (MRL) intra prediction. The additional | multi-reference-line (MRL) intra prediction. The additional | |||
reference lines can be only used for the 6 most probable intra prediction | reference lines can be only used for the 6 most probable intra prediction | |||
modes. To capture the strong correlation between different colour | modes. To capture the strong correlation between different color | |||
components, in VVC, a cross-component linear mode (CCLM) is | components, in VVC, a cross-component linear mode (CCLM) is | |||
utilized which assumes a linear relationship between the luma sample values and their associated chroma samples. For intra prediction, | utilized, which assumes a linear relationship between the luma sample values and their associated chroma samples. For intra prediction, | |||
VVC also applies a position-dependent prediction combination (PDPC) | VVC also applies a position-dependent prediction combination (PDPC) | |||
for refining the prediction samples closer to the intra prediction | for refining the prediction samples closer to the intra prediction | |||
block boundary. Matrix-based intra prediction (MIP) modes are also | block boundary. Matrix-based intra prediction (MIP) modes are also | |||
used in VVC which generates an up to 8x8 intra prediction block | used in VVC, which generates an up to 8x8 intra prediction block | |||
using a weighted sum of downsampled neighboring reference samples, | using a weighted sum of downsampled neighboring reference samples, | |||
and the weights are hardcoded constants.</t> | and the weights are hard-coded constants.</dd> | |||
<dt>Other coding-tool features</dt> | ||||
<t>Other coding-tool features</t> | <dd>VVC introduces dependent quantization (DQ) to reduce quantization | |||
error by state-based switching between two quantizers.</dd> | ||||
<t>VVC introduces dependent quantization (DQ) to reduce quantization | </dl> | |||
error by state-based switching between two quantizers.</t> | </section> | |||
<section anchor="systems-and-transport-interfaces-informative"> | ||||
</section> | <name>Systems and Transport Interfaces (Informative)</name> | |||
<section anchor="systems-and-transport-interfaces-informative"><name>Systems and | <t>VVC inherits the basic systems and transport interface designs | |||
Transport Interfaces (informative)</name> | ||||
<t>VVC inherits the basic systems and transport interfaces designs | ||||
from HEVC and AVC. These include the NAL-unit-based syntax | from HEVC and AVC. These include the NAL-unit-based syntax | |||
structure, the hierarchical syntax and data unit structure, the | structure, the hierarchical syntax and data unit structure, the | |||
supplemental enhancement information (SEI) message mechanism, and the | supplemental enhancement information (SEI) message mechanism, and the | |||
video buffering model based on the hypothetical reference decoder | video buffering model based on the hypothetical reference decoder | |||
(HRD). The scalability features of VVC are conceptually similar to | (HRD). The scalability features of VVC are conceptually similar to | |||
the scalable variant of HEVC known as SHVC. The hierarchical syntax | the scalable extension of HEVC, known as SHVC. The hierarchical syntax | |||
and data unit structure consists of parameter sets at various levels | and data unit structure consists of parameter sets at various levels | |||
(decoder, sequence (pertaining to all), sequence (pertaining to a single), | (i.e., decoder, sequence (pertaining to all), sequence (pertaining to a single), and | |||
picture), picture-level header parameters, slice-level header parameters, and lo wer-level parameters.</t> | picture), picture-level header parameters, slice-level header parameters, and lo wer-level parameters.</t> | |||
<t>A number of key components that influenced the network abstraction | ||||
<t>A number of key components that influenced the network abstraction | layer design of VVC, as well as this memo, are described below</t> | |||
layer design of VVC as well as this memo are described below</t> | <dl newline="true" spacing="normal"> | |||
<dt>Decoding capability information</dt> | ||||
<t>Decoding capability information</t> | <dd>The decoding capability information (DCI) includes parameters that | |||
stay constant for the lifetime of a VVC bitstream in the duration of a video co | ||||
<t>The decoding capability information includes parameters that stay constant fo | nference, continuous video stream, and similar, i.e., any video that is processe | |||
r the lifetime of a VVC bitstream in the duration of a video conference, continu | d by a decoder between setup and teardown. For streaming, the requirement of co | |||
ous video stream, and similar—any video that is processed by a decoder between s | nstant parameters pertains through splicing. Such information includes profile, | |||
etup and teardown. For streaming, the requirement of constant parameters pertai | level, and sub-profile information to determine a maximum capability interop poi | |||
ns through splicing. Such information includes profile, level, and sub-profile i | nt that is guaranteed to never be exceeded, even if splicing of video sequences | |||
nformation to determine a maximum capability interop point that is guaranteed to | occurs within a session. It further includes constraint fields (most of which ar | |||
be never exceeded, even if splicing of video sequences occurs within a session. | e flags), which can optionally be set to indicate that the video bitstream will | |||
It further includes constraint fields (most of which are flags), which can opti | be constrained in the use of certain features, as indicated by the values of tho | |||
onally be set to indicate that the video bitstream will be constrained in the us | se fields. With this, a bitstream can be labeled as not using certain tools, whi | |||
e of certain features as indicated by the values of those fields. With this, a b | ch allows, among other things, for resource allocation in a decoder implementati | |||
itstream can be labeled as not using certain tools, which allows among other thi | on.</dd> | |||
ngs for resource allocation in a decoder implementation.</t> | <dt>Video parameter set</dt> | |||
<dd>The video parameter set (VPS) pertains to one or more coded video | ||||
<t>Video parameter set</t> | sequences (CVSs) of multiple layers covering the same range of access units and | |||
includes, among other information, decoding dependency expressed as information | ||||
<t>The video parameter set (VPS) pertains to one or more coded video sequences ( | for reference-picture-list construction of enhancement layers. The VPS provides | |||
CVSs) of multiple layers covering the same range of access units, and includes, | a "big picture" of a scalable sequence, including what types of operation points | |||
among other information, decoding dependency expressed as information for refere | are provided; the profile, tier, and level of the operation points; and some ot | |||
nce picture list construction of enhancement layers. The VPS provides a "big pic | her high-level properties of the bitstream that can be used as the basis for ses | |||
ture" of a scalable sequence, including what types of operation points are provi | sion negotiation and content selection, etc. One VPS may be referenced by one or | |||
ded, the profile, tier, and level of the operation points, and some other high-l | more sequence parameter sets.</dd> | |||
evel properties of the bitstream that can be used as the basis for session negot | <dt>Sequence parameter set</dt> | |||
iation and content selection, etc. One VPS may be referenced by one or more sequ | <dd>The sequence parameter set (SPS) contains syntax elements pertaini | |||
ence parameter sets.</t> | ng to a coded layer video sequence (CLVS), which is a group of pictures belongin | |||
g to the same layer, starting with a random access point, and followed by pictur | ||||
<t>Sequence parameter set</t> | es that may depend on each other until the next random access point picture. In | |||
MPEG-2, the equivalent of a CVS was a group of pictures (GOP), which normally st | ||||
<t>The sequence parameter set (SPS) contains syntax elements pertaining to a cod | arted with an I frame and was followed by P and B frames. While more complex in | |||
ed layer video sequence (CLVS), which is a group of pictures belonging to the sa | its options of random access points, VVC retains this basic concept. One remarka | |||
me layer, starting with a random access point, and followed by pictures that may | ble difference of VVC is that a CLVS may start with a Gradual Decoding Refresh ( | |||
depend on each other, until the next random access point picture. In MPEG-2, th | GDR) picture without requiring presence of traditional random access points in t | |||
e equivalent of a CVS was a group of pictures (GOP), which normally started with | he bitstream, such as instantaneous decoding refresh (IDR) or clean random acces | |||
an I frame and was followed by P and B frames. While more complex in its option | s (CRA) pictures. In many TV-like applications, a CVS contains a few hundred mil | |||
s of random access points, VVC retains this basic concept. One remarkable differ | liseconds to a few seconds of video. In video conferencing (without switching Mu | |||
ence of VVC is that a CLVS may start with a Gradual Decoding Refresh (GDR) pictu | ltipoint Control Units (MCUs) involved), a CVS can be as long in duration as the | |||
re, without requiring presence of traditional random access points in the bitstr | whole session.</dd> | |||
eam, such as instantaneous decoding refresh (IDR) or clean random access (CRA) p | <dt>Picture and adaptation parameter set</dt> | |||
ictures. In many TV-like applications, a CVS contains a few hundred milliseconds | <dd>The picture parameter set (PPS) and the adaptation parameter set ( | |||
to a few seconds of video. In video conferencing (without switching MCUs involv | APS) carry information pertaining to zero or more pictures and zero or more sli | |||
ed), a CVS can be as long in duration as the whole session.</t> | ces, respectively. The PPS contains information that is likely to stay constant | |||
from picture to picture, at least for pictures for a certain type, whereas the A | ||||
<t> | PS contains information, such as adaptive loop filter coefficients, that are lik | |||
</t> | ely to change from picture to picture or even within a picture. A single APS is | |||
referenced by all slices of the same picture if that APS contains information ab | ||||
<t>Picture and adaptation parameter set</t> | out luma mapping with chroma scaling (LMCS) or a scaling list. Different APSs co | |||
ntaining ALF parameters can be referenced by slices of the same picture.</dd> | ||||
<t>The picture parameter set and the adaptation parameter set (PPS and APS, resp | <dt>Picture header</dt> | |||
ectively) carry information pertaining to zero or more pictures and zero or mor | <dd>A picture header (PH) contains information that is common to all s | |||
e slices, respectively. The PPS contains information that is likely to stay cons | lices that belong to the same picture. Being able to send that information as a | |||
tant from picture to picture, at least for pictures for a certain type-whereas t | separate NAL unit when pictures are split into several slices allows for saving | |||
he APS contains information, such as adaptive loop filter coefficients, that are | bitrate, compared to repeating the same information in all slices. However, ther | |||
likely to change from picture to picture or even within a picture. A single APS | e might be scenarios where low-bitrate video is transmitted using a single slice | |||
is referenced by all slices of the same picture if that APS contains informatio | per picture. Having a separate NAL unit to convey that information incurs in an | |||
n about luma mapping with chroma scaling (LMCS) or scaling list. Different APSs | overhead for such scenarios. For such scenarios, the picture header syntax stru | |||
containing ALF parameters can be referenced by slices of the same picture.</t> | cture is directly included in the slice header, instead of its own NAL unit. The | |||
mode of the picture header syntax structure being included in its own NAL unit | ||||
<t>Picture header</t> | or not can only be switched on/off for an entire CLVS and can only be switched o | |||
ff when, in the entire CLVS, each picture contains only one slice.</dd> | ||||
<t>A Picture Header contains information that is common to all slices that belon | <dt>Profile, tier, and level</dt> | |||
g to the same picture. Being able to send that information as a separate NAL uni | <dd>The profile, tier, and level syntax structures in DCI, VPS, and SP | |||
t when pictures are split into several slices allows for saving bitrate, compare | S | |||
d to repeating the same information in all slices. However, there might be scena | contain profile, tier, and level information for all layers that refer | |||
rios where low-bitrate video is transmitted using a single slice per picture. Ha | ||||
ving a separate NAL unit to convey that information incurs in an overhead for su | ||||
ch scenarios. For such scenarios, the picture header syntax structure is directl | ||||
y included in the slice header, instead of its own NAL unit. The mode of the pic | ||||
ture header syntax structure being included in its own NAL unit or not can only | ||||
be switched on/off for an entire CLVS, and can only be switched off when in the | ||||
entire CLVS each picture contains only one slice.</t> | ||||
<t>Profile, tier, and level</t> | ||||
<t>The profile, tier and level syntax structures in DCI, VPS and SPS | ||||
contain profile, tier, level information for all layers that refer | ||||
to the DCI, for layers associated with one or more output layer | to the DCI, for layers associated with one or more output layer | |||
sets specified by the VPS, and for any layer | sets specified by the VPS, and for any layer | |||
that refers to the SPS, respectively.</t> | that refers to the SPS, respectively.</dd> | |||
<dt>Sub-profiles</dt> | ||||
<t>Sub-profiles</t> | <dd>Within the VVC specification, a sub-profile is a 32-bit number, co | |||
ded according to ITU-T Recommendation T.35, that does not carry semantics. It is | ||||
<t>Within the VVC specification, a sub-profile is a 32-bit number, coded accordi | carried in the profile_tier_level structure and hence is (potentially) present | |||
ng to ITU-T Rec. T.35, that does not carry a semantics. It is carried in the pro | in the DCI, VPS, and SPS. External registration bodies can register a T.35 codep | |||
file_tier_level structure and hence (potentially) present in the DCI, VPS, and S | oint with ITU-T registration authorities and associate with their registration a | |||
PS. External registration bodies can register a T.35 codepoint with ITU-T regist | description of bitstream restrictions beyond the profiles defined by ITU-T and | |||
ration authorities and associate with their registration a description of bitstr | ISO/IEC. This would allow encoder manufacturers to label the bitstreams generate | |||
eam restrictions beyond the profiles defined by ITU-T and ISO/IEC. This would al | d by their encoder as complying with such sub-profile. It is expected that upstr | |||
low encoder manufacturers to label the bitstreams generated by their encoder as | eam standardization organizations (such as Digital Video Broadcasting (DVB) and | |||
complying with such sub-profile. It is expected that upstream standardization or | Advanced Television Systems Committee (ATSC)), as well as walled-garden video se | |||
ganizations (such as: DVB and ATSC), as well as walled-garden video services wil | rvices, will take advantage of this labeled system. In contrast to "normal" prof | |||
l take advantage of this labeled system. In contrast to "normal" profiles, it is | iles, it is expected that sub-profiles may indicate encoder choices traditionall | |||
expected that sub-profiles may indicate encoder choices traditionally left open | y left open in the (decoder-centric) video coding specifications, such as GOP st | |||
in the (decoder-centric) video coding specs, such as GOP structures, minimum/ma | ructures, minimum/maximum Quantizer Parameter (QP) values, and the mandatory use | |||
ximum QP values, and the mandatory use of certain tools or SEI messages.</t> | of certain tools or SEI messages.</dd> | |||
<dt>General constraint fields</dt> | ||||
<ul empty="true"><li> | <dd>The profile_tier_level structure carries a considerable number of | |||
constraint fields (most of which are flags), which an encoder can use to indicat | ||||
</li></ul> | e to a decoder that it will not use a certain tool or technology. They were incl | |||
uded in reaction to a perceived market need to label a bitstream as not exercisi | ||||
<t>General constraint fields</t> | ng a certain tool that has become commercially unviable.</dd> | |||
<dt>Temporal scalability support</dt> | ||||
<t>The profile_tier_level structure carries a considerable number of constraint | <dd>VVC includes support of temporal scalability, by the inclusion of | |||
fields (most of which are flags), which an encoder can use to indicate to a deco | the signaling of TemporalId in the NAL unit header, the restriction that picture | |||
der that it will not use a certain tool or technology. They were included in rea | s of a particular temporal sublayer cannot be used for inter prediction referenc | |||
ction to a perceived market need for labeled a bitstream as not exercising a cer | e by pictures of a lower temporal sublayer, the sub-bitstream extraction process | |||
tain tool that has become commercially unviable.</t> | , and the requirement that each sub-bitstream extraction output be a conforming | |||
bitstream. Media-Aware Network Elements (MANEs) can utilize the TemporalId in th | ||||
<t>Temporal scalability support</t> | e NAL unit header for stream adaptation purposes based on temporal scalability.< | |||
/dd> | ||||
<t>VVC includes support of temporal scalability, by inclusion of the signaling o | <dt>Reference picture resampling (RPR)</dt> | |||
f TemporalId in the NAL unit header, the restriction that pictures of a particul | <dd>In AVC and HEVC, the spatial resolution of pictures cannot change | |||
ar temporal sublayer cannot be used for inter prediction reference by pictures o | unless a new sequence using a new SPS starts, with an intra random access point | |||
f a lower temporal sublayer, the sub-bitstream extraction process, and the requi | (IRAP) picture. VVC enables picture resolution change within a sequence at a pos | |||
rement that each sub-bitstream extraction output be a conforming bitstream. Medi | ition without encoding an IRAP picture, which is always intra coded. This featur | |||
a-Aware Network Elements (MANEs) can utilize the TemporalId in the NAL unit head | e is sometimes referred to as reference picture resampling (RPR), as the feature | |||
er for stream adaptation purposes based on temporal scalability.</t> | needs resampling of a reference picture used for inter prediction when that ref | |||
erence picture has a different resolution than the current picture being decoded | ||||
<t>Reference picture resampling (RPR)</t> | . RPR allows resolution change without the need of coding an IRAP picture and he | |||
nce avoids a momentary bit rate spike caused by an IRAP picture in streaming or | ||||
<t>In AVC and HEVC, the spatial resolution of pictures cannot change unless a ne | video conferencing scenarios, e.g., to cope with network condition changes. RPR | |||
w sequence using a new SPS starts, with an Intra random access point (IRAP) pict | can also be used in application scenarios wherein zooming of the entire video r | |||
ure. VVC enables picture resolution change within a sequence at a position witho | egion or some region of interest is needed.</dd> | |||
ut encoding an IRAP picture, which is always intra-coded. This feature is someti | <dt>Spatial, SNR, and multiview scalability</dt> | |||
mes referred to as reference picture resampling (RPR), as the feature needs resa | <dd><t>VVC includes support for spatial, SNR, and multiview scalabilit | |||
mpling of a reference picture used for inter prediction when that reference pict | y. Scalable video coding is widely considered to have technical benefits and enr | |||
ure has a different resolution than the current picture being decoded. RPR allow | ich services for various video applications. Until recently, however, the functi | |||
s resolution change without the need of coding an IRAP picture and hence avoids | onality has not been included in the first version of specifications of the vide | |||
a momentary bit rate spike caused by an IRAP picture in streaming or video confe | o codecs. In VVC, however, all those forms of scalability are supported in the f | |||
rencing scenarios, e.g., to cope with network condition changes. RPR can also b | irst version of VVC natively through the signaling of the nuh_layer_id in the NA | |||
e used in application scenarios wherein zooming of the entire video region or so | L unit header, the VPS that associates layers with the given nuh_layer_id to eac | |||
me region of interest is needed.</t> | h other, reference picture selection, reference picture resampling for spatial s | |||
calability, and a number of other mechanisms not relevant for this memo.</t> | ||||
<ul empty="true"><li> | <dl newline="true" spacing="normal"> | |||
<dt>Spatial scalability</dt> | ||||
</li></ul> | <dd>With the existence of reference picture resampling (RPR), the | |||
additional burden for scalability support is just a modification of the high-lev | ||||
<t>Spatial, SNR, and multiview scalability</t> | el syntax (HLS). The inter-layer prediction is employed in a scalable system to | |||
improve the coding efficiency of the enhancement layers. In addition to the spat | ||||
<t>VVC includes support for spatial, SNR, and multiview scalability. Scalable vi | ial and temporal motion-compensated predictions that are available in a single-l | |||
deo coding is widely considered to have technical benefits and enrich services f | ayer codec, the inter-layer prediction in VVC uses the possibly resampled video | |||
or various video applications. Until recently, however, the functionality has no | data of the reconstructed reference picture from a reference layer to predict th | |||
t been included in the first version of specifications of the video codecs. In V | e current enhancement layer. The resampling process for inter-layer prediction, | |||
VC, however, all those forms of scalability are supported in the first version o | when used, is performed at the block level, reusing the existing interpolation p | |||
f VVC natively through the signaling of the nuh_layer_id in the NAL unit header, | rocess for motion compensation in single-layer coding. It means that no addition | |||
the VPS which associates layers with given nuh_layer_id to each other, referenc | al resampling process is needed to support spatial scalability.</dd> | |||
e picture selection, reference picture resampling for spatial scalability, and a | <dt>SNR scalability</dt> | |||
number of other mechanisms not relevant for this memo.</t> | <dd>SNR scalability is similar to spatial scalability except that | |||
the resampling factors are 1:1. In other words, there is no change in resolution | ||||
<ul empty="true"><li> | , but there is inter-layer prediction.</dd> | |||
<t>Spatial scalability</t> | <dt>Multiview scalability</dt> | |||
<dd>The first version of VVC also supports multiview scalability, | ||||
<ul empty="true"><li> | wherein a multi-layer bitstream carries layers representing multiple views, and | |||
<t>With the existence of Reference Picture Resampling (RPR), the additional | one or more of the represented views can be output at the same time.</dd> | |||
burden for scalability support is just a modification of the high-level syntax ( | </dl> | |||
HLS). The inter-layer prediction is employed in a scalable system to improve the | </dd> | |||
coding efficiency of the enhancement layers. In addition to the spatial and tem | <dt>SEI messages</dt> | |||
poral motion-compensated predictions that are available in a single-layer codec, | <dd>Supplemental enhancement information (SEI) messages are informatio | |||
the inter-layer prediction in VVC uses the possibly resampled video data of the | n in the bitstream that do not influence the decoding process as specified in th | |||
reconstructed reference picture from a reference layer to predict the current e | e VVC specification but address issues of representation/rendering of the decode | |||
nhancement layer. The resampling process for inter-layer prediction, when used, | d bitstream, label the bitstream for certain applications, and other, similar ta | |||
is performed at the block-level, reusing the existing interpolation process for | sks. The overall concept of SEI messages and many of the messages themselves has | |||
motion compensation in single-layer coding. It means that no additional resampli | been inherited from the AVC and HEVC specifications. Except for the SEI message | |||
ng process is needed to support spatial scalability.</t> | s that affect the specification of the hypothetical reference decoder (HRD), oth | |||
</li></ul> | er SEI messages for use in the VVC environment, which are generally useful also | |||
</li></ul> | in other video coding technologies, are not included in the main VVC specificati | |||
on but in a companion specification <xref target="VSEI"/>.</dd> | ||||
<ul empty="true"><li> | </dl> | |||
<t>SNR scalability</t> | </section> | |||
</li></ul> | <section anchor="high-level-picture-partitioning-informative"> | |||
<name>High-Level Picture Partitioning (Informative)</name> | ||||
<ul empty="true"><li> | <t>VVC inherited the concept of tiles and wavefront parallel processin | |||
<ul empty="true"><li> | g (WPP) from HEVC, with some minor to moderate differences. The basic concept of | |||
<t>SNR scalability is similar to spatial scalability except that the resampl | slices was kept in VVC but designed in an essentially different form. VVC is th | |||
ing factors are 1:1. In other words, there is no change in resolution, but there | e first video coding standard that includes subpictures as a feature, which prov | |||
is inter-layer prediction.</t> | ides the same functionality as HEVC motion-constrained tile sets (MCTSs) but des | |||
</li></ul> | igned differently to have better coding efficiency and to be friendlier for usag | |||
</li></ul> | e in application systems. More details of these differences are described below. | |||
</t> | ||||
<ul empty="true"><li> | <dl newline="true" spacing="normal"> | |||
<t>Multiview scalability</t> | <dt>Tiles and WPP</dt> | |||
</li></ul> | <dd>Same as in HEVC, a picture can be split into tile rows and tile | |||
columns in VVC, in-picture prediction across tile boundaries is disallowed, etc. | ||||
<ul empty="true"><li> | However, the syntax for signaling of tile partitioning has been simplified by u | |||
<ul empty="true"><li> | sing a unified syntax design for both the uniform and the non-uniform mode. In a | |||
<t>The first version of VVC also supports multiview scalability, wherein a m | ddition, signaling of entry point offsets for tiles in the slice header is optio | |||
ulti-layer bitstream carries layers representing multiple views, and one or more | nal in VVC, while it is mandatory in HEVC. The WPP design in VVC has two differe | |||
of the represented views can be output at the same time.</t> | nces compared to HEVC: i) the CTU row delay is reduced from two CTUs to one CTU, | |||
</li></ul> | and ii) signaling of entry point offsets for WPP in the slice header is optiona | |||
</li></ul> | l in VVC while it is mandatory in HEVC.</dd> | |||
<dt>Slices</dt> | ||||
<t>SEI messages</t> | <dd><t>In VVC, the conventional slices based on CTUs (as in HEVC) or m | |||
acroblocks (as in AVC) have been removed. The main reasoning behind this archite | ||||
<t>Supplemental enhancement information (SEI) messages are information in the bi | ctural change is as follows. The advances in video coding since 2003 (the public | |||
tstream that do not influence the decoding process as specified in the VVC spec, | ation year of AVC v1) have been such that slice-based error concealment has beco | |||
but address issues of representation/rendering of the decoded bitstream, label | me practically impossible due to the ever-increasing number and efficiency of in | |||
the bitstream for certain applications, among other, similar tasks. The overall | -picture and inter-picture prediction mechanisms. An error-concealed picture is | |||
concept of SEI messages and many of the messages themselves has been inherited f | the decoding result of a transmitted coded picture for which there is some data | |||
rom the AVC and HEVC specs. Except for the SEI messages that affect the specific | loss (e.g., loss of some slices) of the coded picture or a reference picture, as | |||
ation of the hypothetical reference decoder (HRD), other SEI messages for use in | at least some part of the coded picture is not error-free (e.g., that reference | |||
the VVC environment, which are generally useful also in other video coding tech | picture was an error-concealed picture). For example, when one of the multiple | |||
nologies, are not included in the main VVC specification but in a companion spec | slices of a picture is lost, it may be error-concealed using an interpolation of | |||
ification <xref target="VSEI"/>.</t> | the neighboring slices. While advanced video coding prediction mechanisms provi | |||
de significantly higher coding efficiency, they also make it harder for machines | ||||
</section> | to estimate the quality of an error-concealed picture, which was already a hard | |||
<section anchor="high-level-picture-partitioning-informative"><name>High-Level P | problem with the use of simpler prediction mechanisms. Advanced in-picture pred | |||
icture Partitioning (informative)</name> | iction mechanisms also cause the coding efficiency loss due to splitting a pictu | |||
re into multiple slices to be more significant. Furthermore, network conditions | ||||
<t>VVC inherited the concept of tiles and wavefront parallel processing (WPP) fr | become significantly better while, at the same time, techniques for dealing with | |||
om HEVC, with some minor to moderate differences. The basic concept of slices wa | packet losses have become significantly improved. As a result, very few impleme | |||
s kept in VVC but designed in an essentially different form. VVC is the first vi | ntations have recently used slices for maximum-transmission-unit-size matching. | |||
deo coding standard that includes subpictures as a feature, which provides the s | Instead, substantially all applications where low-delay error resilience is requ | |||
ame functionality as HEVC motion-constrained tile sets (MCTSs) but designed diff | ired (e.g., video telephony and video conferencing) rely on system/transport-lev | |||
erently to have better coding efficiency and to be friendlier for usage in appli | el error resilience (e.g., retransmission or forward error correction) and/or pi | |||
cation systems. More details of these differences are described below.</t> | cture-based error resilience tools (e.g., feedback-based error resilience, inser | |||
tion of IRAPs, scalability with a higher protection level of the base layer, and | ||||
<t>Tiles and WPP</t> | so on). Considering all the above, nowadays, it is very rare that a picture tha | |||
t cannot be correctly decoded is passed to the decoder, and when such a rare cas | ||||
<t>Same as in HEVC, a picture can be split into tile rows and tile columns in VV | e occurs, the system can afford to wait for an error-free picture to be decoded | |||
C, in-picture prediction across tile boundaries is disallowed, etc. However, the | and available for display without resulting in frequent and long periods of pict | |||
syntax for signaling of tile partitioning has been simplified, by using a unifi | ure freezing seen by end users.</t> | |||
ed syntax design for both the uniform and the non-uniform mode. In addition, sig | <t>Slices in VVC have two modes: rectangular slices and raster-scan sl | |||
naling of entry point offsets for tiles in the slice header is optional in VVC w | ices. The rectangular slice, as indicated by its name, covers a rectangular regi | |||
hile it is mandatory in HEVC. The WPP design in VVC has two differences compared | on of the picture. Typically, a rectangular slice consists of several complete t | |||
to HEVC: i) The CTU row delay is reduced from two CTUs to one CTU; ii) signalin | iles. However, it is also possible that a rectangular slice is a subset of a til | |||
g of entry point offsets for WPP in the slice header is optional in VVC while it | e and consists of one or more consecutive, complete CTU rows within a tile. A ra | |||
is mandatory in HEVC.</t> | ster-scan slice consists of one or more complete tiles in a tile raster-scan ord | |||
er; hence, the region covered by raster-scan slices need not but could have a no | ||||
<t>Slices</t> | n-rectangular shape, but it may also happen to have the shape of a rectangle. Th | |||
e concept of slices in VVC is therefore strongly linked to or based on tiles ins | ||||
<t>In VVC, the conventional slices based on CTUs (as in HEVC) or macroblocks (as | tead of CTUs (as in HEVC) or macroblocks (as in AVC).</t></dd> | |||
in AVC) have been removed. The main reasoning behind this architectural change | <dt>Subpictures</dt> | |||
is as follows. The advances in video coding since 2003 (the publication year of | <dd><t>VVC is the first video coding standard that includes the suppor | |||
AVC v1) have been such that slice-based error concealment has become practically | t of subpictures as a feature. Each subpicture consists of one or more complete | |||
impossible, due to the ever-increasing number and efficiency of in-picture and | rectangular slices that collectively cover a rectangular region of the picture. | |||
inter-picture prediction mechanisms. An error-concealed picture is the decoding | A subpicture may be either specified to be extractable (i.e., coded independentl | |||
result of a transmitted coded picture for which there is some data loss (e.g., l | y of other subpictures of the same picture and of earlier pictures in decoding o | |||
oss of some slices) of the coded picture or a reference picture for at least som | rder) or not extractable. Regardless of whether a subpicture is extractable or n | |||
e part of the coded picture is not error-free (e.g., that reference picture was | ot, the encoder can control whether in-loop filtering (including deblocking, SAO | |||
an error-concealed picture). For example, when one of the multiple slices of a p | , and ALF) is applied across the subpicture boundaries individually for each sub | |||
icture is lost, it may be error-concealed using an interpolation of the neighbor | picture.</t> | |||
ing slices. While advanced video coding prediction mechanisms provide significan | <t>Functionally, subpictures are similar to the motion-constrained til | |||
tly higher coding efficiency, they also make it harder for machines to estimate | e sets (MCTSs) in HEVC. They both allow independent coding and extraction of a r | |||
the quality of an error-concealed picture, which was already a hard problem with | ectangular subset of a sequence of coded pictures for use cases like viewport-de | |||
the use of simpler prediction mechanisms. Advanced in-picture prediction mechan | pendent 360-degree video streaming optimization and region of interest (ROI) app | |||
isms also cause the coding efficiency loss due to splitting a picture into multi | lications.</t> | |||
ple slices to be more significant. Furthermore, network conditions become signif | <t>There are several important design differences between subpictures | |||
icantly better while at the same time techniques for dealing with packet losses | and MCTSs. First, the subpictures featured in VVC allow motion vectors of a codi | |||
have become significantly improved. As a result, very few implementations have r | ng block to point outside of the subpicture, even when the subpicture is extract | |||
ecently used slices for maximum transmission unit size matching. Instead, substa | able by applying sample padding at the subpicture boundaries, in this case, simi | |||
ntially all applications where low-delay error resilience is required (e.g., vid | larly as at picture boundaries. Second, additional changes were introduced for t | |||
eo telephony and video conferencing) rely on system/transport-level error resili | he selection and derivation of motion vectors in the merge mode and in the decod | |||
ence (e.g., retransmission, forward error correction) and/or picture-based error | er-side motion vector refinement process of VVC. This allows higher coding effic | |||
resilience tools (feedback-based error resilience, insertion of IRAPs, scalabil | iency compared to the non-normative motion constraints applied at the encoder-si | |||
ity with higher protection level of the base layer, and so on). Considering all | de for MCTSs. Third, rewriting of slice headers (SHs) (and PH NAL units, when pr | |||
the above, nowadays it is very rare that a picture that cannot be correctly deco | esent) is not needed when extracting one or more extractable subpictures from a | |||
ded is passed to the decoder, and when such a rare case occurs, the system can a | sequence of pictures to create a sub-bitstream that is a conforming bitstream. I | |||
fford to wait for an error-free picture to be decoded and available for display | n sub-bitstream extractions based on HEVC MCTSs, rewriting of SHs is needed. Not | |||
without resulting in frequent and long periods of picture freezing seen by end u | e that, in both HEVC MCTSs extraction and VVC subpictures extraction, rewriting | |||
sers.</t> | of SPSs and PPSs is needed. However, typically, there are only a few parameter s | |||
ets in a bitstream, whereas each picture has at least one slice; therefore, rewr | ||||
<t>Slices in VVC have two modes: rectangular slices and raster-scan slices. The | iting of SHs can be a significant burden for application systems. Fourth, slices | |||
rectangular slice, as indicated by its name, covers a rectangular region of the | of different subpictures within a picture are allowed to have different NAL uni | |||
picture. Typically, a rectangular slice consists of several complete tiles. Howe | t types. Fifth, VVC specifies HRD and level definitions for subpicture sequences | |||
ver, it is also possible that a rectangular slice is a subset of a tile and cons | , thus the conformance of the sub-bitstream of each extractable subpicture seque | |||
ists of one or more consecutive, complete CTU rows within a tile. A raster-scan | nce can be ensured by encoders.</t></dd> | |||
slice consists of one or more complete tiles in a tile raster scan order, hence | </dl> | |||
the region covered by a raster-scan slices need not but could have a non-rectang | </section> | |||
ular shape, but it may also happen to have the shape of a rectangle. The concept | <section anchor="NALUnitHeader"> | |||
of slices in VVC is therefore strongly linked to or based on tiles instead of C | <name>NAL Unit Header</name> | |||
TUs (as in HEVC) or macroblocks (as in AVC).</t> | <t>VVC maintains the NAL unit concept of HEVC with modifications. VVC | |||
<t>Subpictures</t> | ||||
<t>VVC is the first video coding standard that includes the support of subpictur | ||||
es as a feature. Each subpicture consists of one or more complete rectangular sl | ||||
ices that collectively cover a rectangular region of the picture. A subpicture m | ||||
ay be either specified to be extractable (i.e., coded independently of other sub | ||||
pictures of the same picture and of earlier pictures in decoding order) or not e | ||||
xtractable. Regardless of whether a subpicture is extractable or not, the encode | ||||
r can control whether in-loop filtering (including deblocking, SAO, and ALF) is | ||||
applied across the subpicture boundaries individually for each subpicture.</t> | ||||
<t>Functionally, subpictures are similar to the motion-constrained tile sets (MC | ||||
TSs) in HEVC. They both allow independent coding and extraction of a rectangular | ||||
subset of a sequence of coded pictures, for use cases like viewport-dependent 3 | ||||
60° video streaming optimization and region of interest (ROI) applications.</t> | ||||
<t>There are several important design differences between subpictures and MCTSs. | ||||
First, the subpictures feature in VVC allows motion vectors of a coding block p | ||||
ointing outside of the subpicture even when the subpicture is extractable by app | ||||
lying sample padding at subpicture boundaries in this case, similarly as at pict | ||||
ure boundaries. Second, additional changes were introduced for the selection and | ||||
derivation of motion vectors in the merge mode and in the decoder side motion v | ||||
ector refinement process of VVC. This allows higher coding efficiency compared t | ||||
o the non-normative motion constraints applied at the encoder-side for MCTSs. Th | ||||
ird, rewriting of SHs (and PH NAL units, when present) is not needed when extrac | ||||
ting one or more extractable subpictures from a sequence of pictures to create a | ||||
sub-bitstream that is a conforming bitstream. In sub-bitstream extractions base | ||||
d on HEVC MCTSs, rewriting of SHs is needed. Note that in both HEVC MCTSs extrac | ||||
tion and VVC subpictures extraction, rewriting of SPSs and PPSs is needed. Howev | ||||
er, typically there are only a few parameter sets in a bitstream, while each pic | ||||
ture has at least one slice, therefore rewriting of SHs can be a significant bur | ||||
den for application systems. Fourth, slices of different subpictures within a pi | ||||
cture are allowed to have different NAL unit types. Fifth, VVC specifies HRD and | ||||
level definitions for subpicture sequences, thus the conformance of the sub-bit | ||||
stream of each extractable subpicture sequence can be ensured by encoders.</t> | ||||
</section> | ||||
<section anchor="NALUnitHeader"><name>NAL Unit Header</name> | ||||
<t>VVC maintains the NAL unit concept of HEVC with modifications. VVC | ||||
uses a two-byte NAL unit header, as shown in <xref target="vvc-nuh"/>. The payl oad | uses a two-byte NAL unit header, as shown in <xref target="vvc-nuh"/>. The payl oad | |||
of a NAL unit refers to the NAL unit excluding the NAL unit header.</t> | of a NAL unit refers to the NAL unit excluding the NAL unit header.</t> | |||
<figure anchor="vvc-nuh"> | ||||
<figure anchor="vvc-nuh"><artwork><![CDATA[ | <name>The Structure of the VVC NAL Unit Header</name> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
+---------------+---------------+ | +---------------+---------------+ | |||
|0|1|2|3|4|5|6|7|0|1|2|3|4|5|6|7| | |0|1|2|3|4|5|6|7|0|1|2|3|4|5|6|7| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|F|Z| LayerID | Type | TID | | |F|Z| LayerID | Type | TID | | |||
+---------------+---------------+ | +---------------+---------------+ | |||
]]></artwork> | ||||
The Structure of the VVC NAL Unit Header. | </figure> | |||
<t>The semantics of the fields in the NAL unit header are as specified | ||||
]]></artwork></figure> | ||||
<t>The semantics of the fields in the NAL unit header are as specified | ||||
in VVC and described briefly below for convenience. In addition to | in VVC and described briefly below for convenience. In addition to | |||
the name and size of each field, the corresponding syntax element | the name and size of each field, the corresponding syntax element | |||
name in VVC is also provided.</t> | name in VVC is also provided.</t> | |||
<dl newline="true" spacing="normal"> | ||||
<ul empty="true"><li> | <dt>F: 1 bit</dt> | |||
<dd>forbidden_zero_bit. This field is required to be zero in VVC. No | ||||
</li></ul> | te that the | |||
<t>F: 1 bit</t> | ||||
<ul empty="true"><li> | ||||
<t>forbidden_zero_bit. Required to be zero in VVC. Note that the | ||||
inclusion of this bit in the NAL unit header was to enable | inclusion of this bit in the NAL unit header was to enable | |||
transport of VVC video over MPEG-2 transport systems (avoidance | transport of VVC video over MPEG-2 transport systems (avoidance | |||
of start code emulations) <xref target="MPEG2S"/>. In the context of this paylo ad format, | of start code emulations) <xref target="MPEG2S"/>. In the context of this paylo ad format, | |||
the value 1 may be used to indicate a syntax violation, e.g., for | the value 1 may be used to indicate a syntax violation, e.g., for | |||
a NAL unit resulted from aggregating a number of fragmented units | a NAL unit resulted from aggregating a number of fragmented units | |||
of a NAL unit but missing the last fragment, as described in the last sentence o | of a NAL unit but missing the last fragment, as described in the last sentence o | |||
f section 4.3.3.</t> | f <xref target="funits"/>.</dd> | |||
</li></ul> | <dt>Z: 1 bit</dt> | |||
<dd>nuh_reserved_zero_bit. This field is required to be zero in VVC, | ||||
<t>Z: 1 bit</t> | and reserved | |||
for future extensions by ITU-T and ISO/IEC.<br/> | ||||
<ul empty="true"><li> | This memo does not overload the "Z" bit for local extensions a) | |||
<t>nuh_reserved_zero_bit. Required to be zero in VVC, and reserved | because overloading the "F" bit is sufficient and b) | |||
for future extensions by ITU-T and ISO/IEC.<br /> | in order to preserve the usefulness of this memo to possible future versions | |||
This memo does not overload the "Z" bit for local extensions, as a) | of <xref target="VVC"/>.</dd> | |||
overloading the "F" bit is sufficient and b) | <dt>LayerId: 6 bits</dt> | |||
to preserve the usefulness of this memo to possible future versions | <dd>nuh_layer_id. This field identifies the layer a NAL unit belongs | |||
of <xref target="VVC"/>.</t> | to, wherein | |||
</li></ul> | ||||
<t>LayerId: 6 bits</t> | ||||
<ul empty="true"><li> | ||||
<t>nuh_layer_id. Identifies the layer a NAL unit belongs to, wherein | ||||
a layer may be, e.g., a spatial scalable layer, a quality scalable | a layer may be, e.g., a spatial scalable layer, a quality scalable | |||
layer, a layer containing a different view, etc.</t> | layer, a layer containing a different view, etc.</dd> | |||
</li></ul> | <dt>Type: 5 bits</dt> | |||
<dd>nal_unit_type. This field specifies the NAL unit type, as defined | ||||
<t>Type: 5 bits</t> | ||||
<ul empty="true"><li> | ||||
<t>nal_unit_type. This field specifies the NAL unit type as defined | ||||
in Table 5 of <xref target="VVC"/>. For a reference of all currently defined | in Table 5 of <xref target="VVC"/>. For a reference of all currently defined | |||
NAL unit types and their semantics, please refer to | NAL unit types and their semantics, please refer to | |||
Section 7.4.2.2 in <xref target="VVC"/>.</t> | Section 7.4.2.2 in <xref target="VVC"/>.</dd> | |||
</li></ul> | <dt>TID: 3 bits</dt> | |||
<dd>nuh_temporal_id_plus1. This field specifies the temporal | ||||
<t>TID: 3 bits</t> | ||||
<ul empty="true"><li> | ||||
<t>nuh_temporal_id_plus1. This field specifies the temporal | ||||
identifier of the NAL unit plus 1. The value of TemporalId is | identifier of the NAL unit plus 1. The value of TemporalId is | |||
equal to TID minus 1. A TID value of 0 is illegal to ensure that | equal to TID minus 1. A TID value of 0 is illegal to ensure that | |||
there is at least one bit in the NAL unit header equal to 1, so to enable the co | there is at least one bit in the NAL unit header equal to 1 in order to enable t | |||
nsideration of start code emulations in the NAL unit payload data independent of | he consideration of start code emulations in the NAL unit payload data independe | |||
the NAL unit header.</t> | nt of the NAL unit header.</dd> | |||
</li></ul> | </dl> | |||
</section> | ||||
</section> | </section> | |||
</section> | <section anchor="overview-of-the-payload-format"> | |||
<section anchor="overview-of-the-payload-format"><name>Overview of the Payload F | <name>Overview of the Payload Format</name> | |||
ormat</name> | <t>This payload format defines the following processes required for | |||
<t>This payload format defines the following processes required for | ||||
transport of VVC coded data over RTP <xref target="RFC3550"/>:</t> | transport of VVC coded data over RTP <xref target="RFC3550"/>:</t> | |||
<ul spacing="normal"> | ||||
<t><list style="symbols"> | <li>usage of the RTP header with this payload format</li> | |||
<t>Usage of RTP header with this payload format</t> | <li>packetization of VVC coded NAL units into RTP packets using | |||
<t>Packetization of VVC coded NAL units into RTP packets using | ||||
three types of payload structures: a single NAL unit packet, | three types of payload structures: a single NAL unit packet, | |||
aggregation packet, and fragment unit</t> | aggregation packet, and fragment unit</li> | |||
<t>Transmission of VVC NAL units of the same bitstream within a | <li>transmission of VVC NAL units of the same bitstream within a | |||
single RTP stream</t> | single RTP stream</li> | |||
<t>Media type parameters to be used with the Session Description | <li>media type parameters to be used with the Session Description | |||
Protocol (SDP) <xref target="RFC8866"/></t> | Protocol (SDP) <xref target="RFC8866"/></li> | |||
<t>Usage of RTCP feedback messages</t> | <li>usage of RTCP feedback messages</li> | |||
</list></t> | </ul> | |||
</section> | ||||
</section> | </section> | |||
</section> | <section anchor="conventions"> | |||
<section anchor="conventions"><name>Conventions</name> | <name>Conventions</name> | |||
<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14 | ||||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", | >REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14> | |||
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this d | SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bc | |||
ocument are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <x | p14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14> | |||
ref target="RFC8174"/> when, and only when, they appear in all capitals, as show | " in this document are to be interpreted as described in BCP 14 <xref target="RF | |||
n here.</t> | C2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capita | |||
ls, as shown here.</t> | ||||
</section> | </section> | |||
<section anchor="definitionsandabbr"><name>Definitions and Abbreviations</name> | <section anchor="definitionsandabbr"> | |||
<name>Definitions and Abbreviations</name> | ||||
<section anchor="definitions"><name>Definitions</name> | <section anchor="definitions"> | |||
<t>This document uses the terms and definitions of VVC. <xref target="definitio | <name>Definitions</name> | |||
nforvvc"/> | <t>This document uses the terms and definitions of VVC. <xref target="d | |||
efinitionforvvc"/> | ||||
lists relevant definitions from <xref target="VVC"/> for convenience. <xref tar get="def"/> | lists relevant definitions from <xref target="VVC"/> for convenience. <xref tar get="def"/> | |||
provides definitions specific to this memo. All the used terms and definitions | provides definitions specific to this memo. All the used terms and definitions | |||
in this memo are verbatim copies of <xref target="VVC"/> specification.</t> | in this memo are verbatim copies from the <xref target="VVC"/> specificat | |||
ion.</t> | ||||
<section anchor="definitionforvvc"><name>Definitions from the VVC Specification< | <!-- Start of DNE "All the used terms and definitions in this memo are verbatim | |||
/name> | copies from the VVC specification. | |||
--> | ||||
<t>Access unit (AU): A set of PUs that belong to different layers and | <section anchor="definitionforvvc"> | |||
<name>Definitions from the VVC Specification</name> | ||||
<dl newline="true" spacing="normal"> | ||||
<dt>Access unit (AU):</dt> | ||||
<dd>A set of PUs that belong to different layers and | ||||
contain coded pictures associated with the same time for output | contain coded pictures associated with the same time for output | |||
from the DPB.</t> | from the DPB.</dd> | |||
<dt>Adaptation parameter set (APS):</dt> | ||||
<t>Adaptation parameter set (APS): A syntax structure containing syntax | <dd>A syntax structure containing syntax | |||
elements that apply to zero or more slices as determined by zero or | elements that apply to zero or more slices as determined by zero or | |||
more syntax elements found in slice headers.</t> | more syntax elements found in slice headers.</dd> | |||
<dt>Bitstream:</dt> | ||||
<t>Bitstream: A sequence of bits, in the form of a NAL unit stream or | <dd>A sequence of bits, in the form of a NAL unit stream or | |||
a byte stream, that forms the representation of a sequence of AUs | a byte stream, that forms the representation of a sequence of AUs | |||
forming one or more coded video sequences (CVSs).</t> | forming one or more coded video sequences (CVSs).</dd> | |||
<dt>Coded picture:</dt> | ||||
<t>Coded picture: A coded representation of a picture comprising VCL | <dd>A coded representation of a picture comprising VCL | |||
NAL units with a particular value of nuh_layer_id within an AU and | NAL units with a particular value of nuh_layer_id within an AU and | |||
containing all CTUs of the picture.</t> | containing all CTUs of the picture.</dd> | |||
<dt>Clean random access (CRA) PU:</dt> | ||||
<t>Clean random access (CRA) PU: A PU in which the coded picture is a | <dd>A PU in which the coded picture is a | |||
CRA picture.</t> | CRA picture.</dd> | |||
<dt>Clean random access (CRA) picture:</dt> | ||||
<t>Clean random access (CRA) picture: An IRAP picture for which each | <dd>An IRAP picture for which each | |||
VCL NAL unit has nal_unit_type equal to CRA_NUT.</t> | VCL NAL unit has nal_unit_type equal to CRA_NUT.</dd> | |||
<dt>Coded video sequence (CVS):</dt> | ||||
<t>Coded video sequence (CVS): A sequence of AUs that consists, in | <dd>A sequence of AUs that consists, in | |||
decoding order, of a CVSS AU, followed by zero or more AUs that are | decoding order, of a CVSS AU, followed by zero or more AUs that are | |||
not CVSS AUs, including all subsequent AUs up to but not including | not CVSS AUs, including all subsequent AUs up to but not including | |||
any subsequent AU that is a CVSS AU.</t> | any subsequent AU that is a CVSS AU.</dd> | |||
<dt>Coded video sequence start (CVSS) AU:</dt> | ||||
<t>Coded video sequence start (CVSS) AU: An AU in which there is a PU | <dd>An AU in which there is a PU | |||
for each layer in the CVS and the coded picture in each PU is a CLVSS | for each layer in the CVS and the coded picture in each PU is a CLVSS | |||
picture.</t> | picture.</dd> | |||
<dt>Coded layer video sequence (CLVS):</dt> | ||||
<t>Coded layer video sequence (CLVS): A sequence of PUs with the same | <dd>A sequence of PUs with the same | |||
value of nuh_layer_id that consists, in decoding order, of a CLVSS PU, | value of nuh_layer_id that consists, in decoding order, of a CLVSS PU, | |||
followed by zero or more PUs that are not CLVSS PUs, including all | followed by zero or more PUs that are not CLVSS PUs, including all | |||
subsequent PUs up to but not including any subsequent PU that is a | subsequent PUs up to but not including any subsequent PU that is a | |||
CLVSS PU.</t> | CLVSS PU.</dd> | |||
<dt>Coded layer video sequence start (CLVSS) PU:</dt> | ||||
<t>Coded layer video sequence start (CLVSS) PU: A PU in which the coded | <dd>A PU in which the coded | |||
picture is a CLVSS picture.</t> | picture is a CLVSS picture.</dd> | |||
<dt>Coded layer video sequence start (CLVSS) picture:</dt> | ||||
<t>Coded layer video sequence start (CLVSS) picture: A coded picture that is an | <dd>A coded picture that is an IRAP picture with NoOutputBeforeRecover | |||
IRAP picture with NoOutputBeforeRecoveryFlag equal to 1 or a GDR picture with No | yFlag equal to 1 or a GDR picture with NoOutputBeforeRecoveryFlag equal to 1.</d | |||
OutputBeforeRecoveryFlag equal to 1.</t> | d> | |||
<dt>Coding Tree Block (CTB):</dt> | ||||
<t>Coding tree unit (CTU): A CTB of luma samples, two corresponding CTBs | <dd>An NxN block of samples for some value of N such that the division | |||
of a component | ||||
into CTBs is a partitioning.</dd> | ||||
<dt>Coding tree unit (CTU):</dt> | ||||
<dd>A CTB of luma samples, two corresponding CTBs | ||||
of chroma samples of a picture that has three sample arrays, or a CTB | of chroma samples of a picture that has three sample arrays, or a CTB | |||
of samples of a monochrome picture or a picture that is coded using | of samples of a monochrome picture or a picture that is coded using | |||
three separate colour planes and syntax structures used to code the | three separate colour planes and syntax structures used to code the | |||
samples.</t> | samples.</dd> | |||
<dt>Coding Unit (CU):</dt> | ||||
<t>Decoding Capability Information (DCI): A syntax structure containing | <dd>A coding block of luma samples, two corresponding coding | |||
syntax elements that apply to the entire bitstream.</t> | blocks of chroma samples of a picture that has three sample arrays in the | |||
single tree mode, or a coding block of luma samples of a picture that has | ||||
<t>Decoded picture buffer (DPB): A buffer holding decoded pictures for | three sample arrays in the dual tree mode, or two coding blocks of chroma | |||
samples of a picture that has three sample arrays in the dual tree mode, or | ||||
a coding block of samples of a monochrome picture, and syntax structures | ||||
used to code the samples.</dd> | ||||
<dt>Decoding Capability Information (DCI):</dt> | ||||
<dd>A syntax structure containing | ||||
syntax elements that apply to the entire bitstream.</dd> | ||||
<dt>Decoded picture buffer (DPB):</dt> | ||||
<dd>A buffer holding decoded pictures for | ||||
reference, output reordering, or output delay specified for the | reference, output reordering, or output delay specified for the | |||
hypothetical reference decoder.</t> | hypothetical reference decoder.</dd> | |||
<dt>Gradual decoding refresh (GDR) picture:</dt> | ||||
<t>Gradual decoding refresh (GDR) picture: A picture for which each VCL NAL unit | <dd>A picture for which each VCL NAL unit has nal_unit_type equal to G | |||
has nal_unit_type equal to GDR_NUT.</t> | DR_NUT.</dd> | |||
<dt>Instantaneous decoding refresh (IDR) PU:</dt> | ||||
<t>Instantaneous decoding refresh (IDR) PU: A PU in which the coded picture | <dd>A PU in which the coded picture | |||
is an IDR picture.</t> | is an IDR picture.</dd> | |||
<dt>Instantaneous decoding refresh (IDR) picture:</dt> | ||||
<t>Instantaneous decoding refresh (IDR) picture: An IRAP picture for | <dd>An IRAP picture for | |||
which each VCL NAL unit has nal_unit_type equal to IDR_W_RADL or IDR_N_LP.</t> | which each VCL NAL unit has nal_unit_type equal to IDR_W_RADL or IDR_N_LP.</dd> | |||
<dt>Intra random access point (IRAP) AU:</dt> | ||||
<t>Intra random access point (IRAP) AU: An AU in which there is a PU | <dd>An AU in which there is a PU | |||
for each layer in the CVS and the coded picture in each PU is an | for each layer in the CVS and the coded picture in each PU is an | |||
IRAP picture.</t> | IRAP picture.</dd> | |||
<dt>Intra random access point (IRAP) PU:</dt> | ||||
<t>Intra random access point (IRAP) PU: A PU in which the coded picture | <dd>A PU in which the coded picture | |||
is an IRAP picture.</t> | is an IRAP picture.</dd> | |||
<dt>Intra random access point (IRAP) picture:</dt> | ||||
<t>Intra random access point (IRAP) picture: A coded picture for which all VCL N | <dd>A coded picture for which all VCL NAL units have the same value of | |||
AL units have the same value of nal_unit_type in the range of IDR_W_RADL to CRA_ | nal_unit_type in the range of IDR_W_RADL to CRA_NUT, inclusive.</dd> | |||
NUT, inclusive.</t> | <dt>Layer:</dt> | |||
<dd>A set of VCL NAL units that all have a particular value of | ||||
<t>Layer: A set of VCL NAL units that all have a particular value of | nuh_layer_id and the associated non-VCL NAL units.</dd> | |||
nuh_layer_id and the associated non-VCL NAL units.</t> | <dt>Network abstraction layer (NAL) unit:</dt> | |||
<dd>A syntax structure containing | ||||
<t>Network abstraction layer (NAL) unit: A syntax structure containing | ||||
an indication of the type of data to follow and bytes containing | an indication of the type of data to follow and bytes containing | |||
that data in the form of an RBSP interspersed as necessary with emulation | that data in the form of an RBSP interspersed as necessary with emulation | |||
prevention bytes.</t> | prevention bytes.</dd> | |||
<dt>Network abstraction layer (NAL) unit stream:</dt> | ||||
<t>Network abstraction layer (NAL) unit stream: A sequence of NAL units.</t> | <dd>A sequence of NAL units.</dd> | |||
<dt>Output Layer Set (OLS):</dt> | ||||
<t>Output Layer Set (OLS): A set of layers for which one or more layers are spec | <dd>A set of layers for which one or more layers are specified as the | |||
ified as the output layers.</t> | output layers.</dd> | |||
<dt>Operation point (OP):</dt> | ||||
<t>Operation point (OP): A temporal subset of an OLS, identified by an | <dd>A temporal subset of an OLS, identified by an | |||
OLS index and a highest value of TemporalId.</t> | OLS index and a highest value of TemporalId.</dd> | |||
<dt>Picture Header (PH):</dt> | ||||
<t>Picture parameter set (PPS): A syntax structure containing syntax | <dd>A syntax structure containing syntax elements that | |||
apply to all slices of a coded picture.</dd> | ||||
<dt>Picture parameter set (PPS):</dt> | ||||
<dd>A syntax structure containing syntax | ||||
elements that apply to zero or more entire coded pictures as determined | elements that apply to zero or more entire coded pictures as determined | |||
by a syntax element found in each slice header.</t> | by a syntax element found in each slice header.</dd> | |||
<dt>Picture unit (PU):</dt> | ||||
<t>Picture unit (PU): A set of NAL units that are associated with each | <dd>A set of NAL units that are associated with each | |||
other according to a specified classification rule, are consecutive | other according to a specified classification rule, are consecutive | |||
in decoding order, and contain exactly one coded picture.</t> | in decoding order, and contain exactly one coded picture.</dd> | |||
<dt>Random access:</dt> | ||||
<t>Random access: The act of starting the decoding process for a | <dd>The act of starting the decoding process for a | |||
bitstream at a point other than the beginning of the stream.</t> | bitstream at a point other than the beginning of the bitstream.</dd> | |||
<dt>Raw Byte Sequence Payload (RBSP):</dt> | ||||
<t>Sequence parameter set (SPS): A syntax structure containing syntax | <dd>A syntax structure containing an integer | |||
number of bytes that is encapsulated in a NAL unit and is either empty or | ||||
has the form of a string of data bits containing syntax elements followed | ||||
by an RBSP stop bit and zero or more subsequent bits equal to 0.</dd> | ||||
<dt>Sequence parameter set (SPS):</dt> | ||||
<dd>A syntax structure containing syntax | ||||
elements that apply to zero or more entire CLVSs as determined by | elements that apply to zero or more entire CLVSs as determined by | |||
the content of a syntax element found in the PPS referred to by a | the content of a syntax element found in the PPS referred to by a | |||
syntax element found in each picture header.</t> | syntax element found in each picture header.</dd> | |||
<dt>Slice:</dt> | ||||
<t>Slice: An integer number of complete tiles or an integer number of | <dd>An integer number of complete tiles or an integer number of | |||
consecutive complete CTU rows within a tile of a picture that are | consecutive complete CTU rows within a tile of a picture that are | |||
exclusively contained in a single NAL unit.</t> | exclusively contained in a single NAL unit.</dd> | |||
<dt>Slice header (SH):</dt> | ||||
<t>Slice header (SH): A part of a coded slice containing the data elements | <dd>A part of a coded slice containing the data elements | |||
pertaining to all tiles or CTU rows within a tile represented in the slice.</t> | pertaining to all tiles or CTU rows within a tile represented in the slice.</dd> | |||
<dt>Sublayer:</dt> | ||||
<t>Sublayer: A temporal scalable layer of a temporal scalable bitstream | <dd>A temporal scalable layer of a temporal scalable bitstream | |||
consisting of VCL NAL units with a particular value of the TemporalId | consisting of VCL NAL units with a particular value of the TemporalId | |||
variable, and the associated non-VCL NAL units.</t> | variable, and the associated non-VCL NAL units.</dd> | |||
<dt>Subpicture:</dt> | ||||
<t>Subpicture: An rectangular region of one or more slices within a picture.</t> | <dd>A rectangular region of one or more slices within a picture.</dd> | |||
<dt>Sublayer representation:</dt> | ||||
<t>Sublayer representation: A subset of the bitstream consisting of NAL | <dd>A subset of the bitstream consisting of NAL | |||
units of a particular sublayer and the lower sublayers.</t> | units of a particular sublayer and the lower sublayers.</dd> | |||
<dt>Tile:</dt> | ||||
<t>Tile: A rectangular region of CTUs within a particular tile column and | <dd>A rectangular region of CTUs within a particular tile column and | |||
a particular tile row in a picture.</t> | a particular tile row in a picture.</dd> | |||
<dt>Tile column:</dt> | ||||
<t>Tile column: A rectangular region of CTUs having a height equal to | <dd>A rectangular region of CTUs having a height equal to | |||
the height of the picture and a width specified by syntax elements in | the height of the picture and a width specified by syntax elements in | |||
the picture parameter set.</t> | the picture parameter set.</dd> | |||
<dt>Tile row:</dt> | ||||
<t>Tile row: A rectangular region of CTUs having a height specified by | <dd>A rectangular region of CTUs having a height specified by | |||
syntax elements in the picture parameter set and a width equal to the | syntax elements in the picture parameter set and a width equal to the | |||
width of the picture.</t> | width of the picture.</dd> | |||
<dt>Video coding layer (VCL) NAL unit:</dt> | ||||
<t>Video coding layer (VCL) NAL unit: A collective term for coded slice NAL | <dd>A collective term for coded slice NAL | |||
units and the subset of NAL units that have reserved values of | units and the subset of NAL units that have reserved values of | |||
nal_unit_type that are classified as VCL NAL units in this Specification.</t> | nal_unit_type that are classified as VCL NAL units in this Specification.</dd> | |||
</dl> | ||||
</section> | </section> | |||
<section anchor="def"><name>Definitions Specific to This Memo</name> | <section anchor="def"> | |||
<name>Definitions Specific to This Memo</name> | ||||
<t>Media-Aware Network Element (MANE): A network element, such as a | <dl newline="true" spacing="normal"> | |||
<dt>Media-Aware Network Element (MANE):</dt> | ||||
<dd><t>A network element, such as a | ||||
middlebox, selective forwarding unit, or application-layer gateway | middlebox, selective forwarding unit, or application-layer gateway | |||
that is capable of parsing certain aspects of the RTP payload headers | that is capable of parsing certain aspects of the RTP payload headers | |||
or the RTP payload and reacting to their contents.</t> | or the RTP payload and reacting to their contents.</t> | |||
<aside> | ||||
<ul empty="true"><li> | <t>Informative note: The concept of a MANE goes beyond normal rout | |||
<t>Informative note: The concept of a MANE goes beyond normal routers | ers | |||
or gateways in that a MANE has to be aware of the signaling (e.g., | or gateways in that a MANE has to be aware of the signaling (e.g., | |||
to learn about the payload type mappings of the media streams), | to learn about the payload type mappings of the media streams), | |||
and in that it has to be trusted when working with Secure RTP | and in that it has to be trusted when working with Secure RTP | |||
(SRTP). The advantage of using MANEs is that they allow packets | (SRTP). The advantage of using MANEs is that they allow packets | |||
to be dropped according to the needs of the media coding. For | to be dropped according to the needs of the media coding. For | |||
example, if a MANE has to drop packets due to congestion on a | example, if a MANE has to drop packets due to congestion on a | |||
certain link, it can identify and remove those packets whose | certain link, it can identify and remove those packets whose | |||
elimination produces the least adverse effect on the user | elimination produces the least adverse effect on the user | |||
experience. After dropping packets, MANEs must rewrite RTCP | experience. After dropping packets, MANEs must rewrite RTCP | |||
packets to match the changes to the RTP stream, as specified in | packets to match the changes to the RTP stream, as specified in | |||
Section 7 of <xref target="RFC3550"/>.</t> | <xref target="RFC3550" section="7" sectionFormat="of" />.</t></aside></dd> | |||
</li></ul> | <dt>NAL unit decoding order:</dt> | |||
<dd>A NAL unit order that conforms to the | ||||
<t>NAL unit decoding order: A NAL unit order that conforms to the | ||||
constraints on NAL unit order given in Section 7.4.2.4 in <xref target="VVC"/>, | constraints on NAL unit order given in Section 7.4.2.4 in <xref target="VVC"/>, | |||
follow the Order of NAL units in the bitstream.</t> | follow the order of NAL units in the bitstream.</dd> | |||
<dt>RTP stream (see <xref target="RFC7656"/>):</dt> | ||||
<t>RTP stream (See <xref target="RFC7656"/>): Within the scope of this memo, on | <dd>Within the scope of this memo, one RTP stream is utilized to tra | |||
e RTP stream is utilized to transport a VVC bitstream, which may contain one or | nsport a VVC bitstream, which may contain one or more layers, and each layer may | |||
more layers, and each layer may contain one or more temporal sublayers.</t> | contain one or more temporal sublayers.</dd> | |||
<dt>Transmission order:</dt> | ||||
<t>Transmission order: The order of packets in ascending RTP sequence | <dd>The order of packets in ascending RTP sequence | |||
number order (in modulo arithmetic). Within an aggregation packet, | number order (in modulo arithmetic). Within an aggregation packet, | |||
the NAL unit transmission order is the same as the order of | the NAL unit transmission order is the same as the order of | |||
appearance of NAL units in the packet.</t> | appearance of NAL units in the packet.</dd> | |||
</dl> | ||||
</section> | <!-- End of DNE --> | |||
</section> | </section> | |||
<section anchor="abbreviations"><name>Abbreviations</name> | </section> | |||
<section anchor="abbreviations"> | ||||
<t>AU Access Unit</t> | <name>Abbreviations</name> | |||
<dl newline="false" spacing="normal" indent="8"> | ||||
<t>AP Aggregation Packet</t> | <dt>AU</dt> | |||
<dd>Access Unit</dd> | ||||
<t>APS Adaptation Parameter Set</t> | <dt>AP</dt> | |||
<dd>Aggregation Packet</dd> | ||||
<t>CTU Coding Tree Unit</t> | <dt>APS</dt> | |||
<dd>Adaptation Parameter Set</dd> | ||||
<t>CVS Coded Video Sequence</t> | <dt>CTU</dt> | |||
<dd>Coding Tree Unit</dd> | ||||
<t>DPB Decoded Picture Buffer</t> | <dt>CVS</dt> | |||
<dd>Coded Video Sequence</dd> | ||||
<t>DCI Decoding Capability Information</t> | <dt>DPB</dt> | |||
<dd>Decoded Picture Buffer</dd> | ||||
<t>DON Decoding Order Number</t> | <dt>DCI</dt> | |||
<dd>Decoding Capability Information</dd> | ||||
<t>FIR Full Intra Request</t> | <dt>DON</dt> | |||
<dd>Decoding Order Number</dd> | ||||
<t>FU Fragmentation Unit</t> | <dt>FIR</dt> | |||
<dd>Full Intra Request</dd> | ||||
<t>GDR Gradual Decoding Refresh</t> | <dt>FU</dt> | |||
<dd>Fragmentation Unit</dd> | ||||
<t>HRD Hypothetical Reference Decoder</t> | <dt>GDR</dt> | |||
<dd>Gradual Decoding Refresh</dd> | ||||
<t>IDR Instantaneous Decoding Refresh</t> | <dt>HRD</dt> | |||
<dd>Hypothetical Reference Decoder</dd> | ||||
<t>IRAP Intra Random Access Point</t> | <dt>IDR</dt> | |||
<dd>Instantaneous Decoding Refresh</dd> | ||||
<t>MANE Media-Aware Network Element</t> | <dt>IRAP</dt> | |||
<dd>Intra Random Access Point</dd> | ||||
<t>MTU Maximum Transfer Unit</t> | <dt>MANE</dt> | |||
<dd>Media-Aware Network Element</dd> | ||||
<t>NAL Network Abstraction Layer</t> | <dt>MTU</dt> | |||
<dd>Maximum Transfer Unit</dd> | ||||
<t>NALU Network Abstraction Layer Unit</t> | <dt>NAL</dt> | |||
<dd>Network Abstraction Layer</dd> | ||||
<t>OLS Output Layer Set</t> | <dt>NALU</dt> | |||
<dd>Network Abstraction Layer Unit</dd> | ||||
<t>PLI Picture Loss Indication</t> | <dt>OLS</dt> | |||
<dd>Output Layer Set</dd> | ||||
<t>PPS Picture Parameter Set | <dt>PLI</dt> | |||
<dd>Picture Loss Indication</dd> | ||||
<dt>PPS</dt> | ||||
<dd>Picture Parameter Set</dd> | ||||
<!-- | <!-- | |||
RPS Reference Picture Set --></t> | RPS Reference Picture Set --> | |||
<dt>RPSI</dt> | ||||
<t>RPSI Reference Picture Selection Indication</t> | <dd>Reference Picture Selection Indication</dd> | |||
<dt>SEI</dt> | ||||
<t>SEI Supplemental Enhancement Information</t> | <dd>Supplemental Enhancement Information</dd> | |||
<dt>SLI</dt> | ||||
<t>SLI Slice Loss Indication</t> | <dd>Slice Loss Indication</dd> | |||
<dt>SPS</dt> | ||||
<t>SPS Sequence Parameter Set</t> | <dd>Sequence Parameter Set</dd> | |||
<dt>VCL</dt> | ||||
<t>VCL Video Coding Layer</t> | <dd>Video Coding Layer</dd> | |||
<dt>VPS</dt> | ||||
<t>VPS Video Parameter Set</t> | <dd>Video Parameter Set</dd> | |||
</dl> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="RTPPayloadFormat"><name>RTP Payload Format</name> | <section anchor="RTPPayloadFormat"> | |||
<name>RTP Payload Format</name> | ||||
<section anchor="RTPHeaderUsage"><name>RTP Header Usage</name> | <section anchor="RTPHeaderUsage"> | |||
<name>RTP Header Usage</name> | ||||
<t>The format of the RTP header is specified in <xref target="RFC3550"/> (reprin | <t>The format of the RTP header is specified in <xref target="RFC3550"/> | |||
ted as | (reprinted as | |||
<xref target="rtp-hdr"/> for convenience). This payload format uses the fields of | <xref target="rtp-hdr"/> for convenience). This payload format uses the fields of | |||
the header in a manner consistent with that specification.</t> | the header in a manner consistent with that specification.</t> | |||
<t>The RTP payload (and the settings for some RTP header bits) for | ||||
<t>The RTP payload (and the settings for some RTP header bits) for | aggregation packets and fragmentation units are specified in Sections | |||
aggregation packets and fragmentation units are specified in | <xref target="aps" format="counter"/> and <xref target="funits" format="counter" | |||
<xref target="aps"/> and <xref target="funits"/>, respectively.</t> | />, respectively.</t> | |||
<figure anchor="rtp-hdr"> | ||||
<figure anchor="rtp-hdr"><sourcecode type="~"><![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=2|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> | ||||
RTP Header According to [RFC3550] | </figure> | |||
<t>The RTP header information to be set according to this RTP payload | ||||
]]></sourcecode></figure> | ||||
<t>The RTP header information to be set according to this RTP payload | ||||
format is set as follows:</t> | format is set as follows:</t> | |||
<dl newline="true" spacing="normal"> | ||||
<t>Marker bit (M): 1 bit</t> | <dt>Marker bit (M): 1 bit</dt> | |||
<dd>Set for the last packet, in transmission order, among each set of | ||||
<ul empty="true"><li> | packets that contain NAL units of one access unit. This is in line with the norm | |||
<t>Set for the last packet, in transmission order, among each set of packets t | al use of the M bit in | |||
hat contain NAL units of one access unit. This is in line with the normal use of | video formats to allow an efficient playout buffer handling.</dd> | |||
the M bit in | <dt>Payload Type (PT): 7 bits</dt> | |||
video formats to allow an efficient playout buffer handling.</t> | <dd>The assignment of an RTP payload type for this new packet format | |||
</li></ul> | ||||
<t>Payload Type (PT): 7 bits</t> | ||||
<ul empty="true"><li> | ||||
<t>The assignment of an RTP payload type for this new packet format | ||||
is outside the scope of this document and will not be specified | is outside the scope of this document and will not be specified | |||
here. The assignment of a payload type has to be performed either | here. The assignment of a payload type has to be performed either | |||
through the profile used or in a dynamic way.</t> | through the profile used or in a dynamic way.</dd> | |||
</li></ul> | <dt>Sequence Number (SN): 16 bits</dt> | |||
<dd>Set and used in accordance with <xref target="RFC3550"/>.</dd> | ||||
<t>Sequence Number (SN): 16 bits</t> | <dt>Timestamp: 32 bits</dt> | |||
<dd><t>The RTP timestamp is set to the sampling timestamp of the conte | ||||
<ul empty="true"><li> | nt. A 90 kHz clock rate <bcp14>MUST</bcp14> be used. If the NAL unit has no tim | |||
<t>Set and used in accordance with <xref target="RFC3550"/>.</t> | ing properties of its own (e.g., parameter set and SEI NAL units), the RTP times | |||
</li></ul> | tamp <bcp14>MUST</bcp14> be set to the RTP timestamp of the coded pictures of th | |||
e access unit in which the NAL unit (according to Section 7.4.2.4 of <xref targe | ||||
<t>Timestamp: 32 bits</t> | t="VVC" />) is included. Receivers <bcp14>MUST</bcp14> use the RTP timestamp for | |||
the display process, even when the bitstream contains picture timing SEI messag | ||||
<ul empty="true"><li> | es or decoding unit information SEI messages, as specified in <xref target="VVC" | |||
<t>The RTP timestamp is set to the sampling timestamp of the content. A 90 kHz | />.</t> | |||
clock rate MUST be used. If the NAL unit has no timing properties of its own ( | <aside><t>Informative note: When picture timing SEI messages are prese | |||
e.g., parameter set and SEI NAL units), the RTP timestamp MUST be set to the RTP | nt, the RTP sender is responsible to ensure that the RTP timestamps are consiste | |||
timestamp of the coded pictures of the access unit in which the NAL unit (accor | nt with the timing information carried in the picture timing SEI messages.</t></ | |||
ding to Section 7.4.2.4 of <xref target="VVC"/>) is included. Receivers MUST use | aside> | |||
the RTP timestamp for the display process, even when the bitstream contains pic | </dd> | |||
ture timing SEI messages or decoding unit information SEI messages as specified | <dt>Synchronization source (SSRC): 32 bits</dt> | |||
in <xref target="VVC"/>.</t> | <dd>Used to identify the source of the RTP packets. | |||
</li></ul> | A single SSRC is used for all parts of a single bitstream.</dd> | |||
</dl> | ||||
<ul empty="true"><li> | </section> | |||
<ul empty="true"><li> | <section anchor="PayloadHeaderUsage"> | |||
<t>Informative note: When picture timing SEI messages are present, the RTP s | <name>Payload Header Usage</name> | |||
ender is responsible to ensure that the RTP timestamps are consistent with the t | <t>The first two bytes of the payload of an RTP packet are referred to | |||
iming information carried in the picture timing SEI messages.</t> | ||||
</li></ul> | ||||
</li></ul> | ||||
<t>Synchronization source (SSRC): 32 bits</t> | ||||
<ul empty="true"><li> | ||||
<t>Used to identify the source of the RTP packets. | ||||
A single SSRC is used for all parts of a single bitstream.</t> | ||||
</li></ul> | ||||
</section> | ||||
<section anchor="PayloadHeaderUsage"><name>Payload Header Usage</name> | ||||
<t>The first two bytes of the payload of an RTP packet are referred to | ||||
as the payload header. The payload header consists of the same | as the payload header. The payload header consists of the same | |||
fields (F, Z, LayerId, Type, and TID) as the NAL unit header as shown | fields (F, Z, LayerId, Type, and TID) as the NAL unit header shown | |||
in <xref target="NALUnitHeader"/>, irrespective of the type of the payload struc ture.</t> | in <xref target="NALUnitHeader"/>, irrespective of the type of the payload struc ture.</t> | |||
<t>The TID value indicates (among other things) the relative importance | ||||
<t>The TID value indicates (among other things) the relative importance | ||||
of an RTP packet, for example, because NAL units belonging to higher | of an RTP packet, for example, because NAL units belonging to higher | |||
temporal sublayers are not used for the decoding of lower temporal | temporal sublayers are not used for the decoding of lower temporal | |||
sublayers. A lower value of TID indicates a higher importance. | sublayers. A lower value of TID indicates a higher importance. | |||
More-important NAL units MAY be better protected against transmission | More important NAL units <bcp14>MAY</bcp14> be better protected against transmis sion | |||
losses than less-important NAL units.</t> | losses than less-important NAL units.</t> | |||
</section> | ||||
</section> | <section anchor="PayloadStructures"> | |||
<section anchor="PayloadStructures"><name>Payload Structures</name> | <name>Payload Structures</name> | |||
<t>Three different types of RTP packet payload structures are specified. | ||||
<t>Three different types of RTP packet payload structures are specified. | ||||
A receiver can identify the type of an RTP packet payload through the | A receiver can identify the type of an RTP packet payload through the | |||
Type field in the payload header.</t> | Type field in the payload header.</t> | |||
<t>The three different payload structures are as follows:</t> | ||||
<t>The three different payload structures are as follows:</t> | <ul spacing="normal"> | |||
<li>Single NAL unit packet: Contains a single NAL unit in the payload, | ||||
<t><list style="symbols"> | ||||
<t>Single NAL unit packet: Contains a single NAL unit in the payload, | ||||
and the NAL unit header of the NAL unit also serves as the payload | and the NAL unit header of the NAL unit also serves as the payload | |||
header. This payload structure is specified in <xref target="SingleNALUnit"/>.< | header. This payload structure is specified in <xref target="SingleNALUnit"/>.< | |||
/t> | /li> | |||
<t>Aggregation Packet (AP): Contains more than one NAL unit within | <li>Aggregation Packet (AP): Contains more than one NAL unit within | |||
one access unit. This payload structure is specified in <xref target="aps"/>.</ | one access unit. This payload structure is specified in <xref target="aps"/>.</ | |||
t> | li> | |||
<t>Fragmentation Unit (FU): Contains a subset of a single NAL unit. | <li>Fragmentation Unit (FU): Contains a subset of a single NAL unit. | |||
This payload structure is specified in <xref target="funits"/>.</t> | This payload structure is specified in <xref target="funits"/>.</li> | |||
</list></t> | </ul> | |||
<section anchor="SingleNALUnit"> | ||||
<section anchor="SingleNALUnit"><name>Single NAL Unit Packets</name> | <name>Single NAL Unit Packets</name> | |||
<t>A single NAL unit packet contains exactly one NAL unit and consists | ||||
<t>A single NAL unit packet contains exactly one NAL unit, and consists | of a payload header, as defined in Table 5 of <xref target="VVC"/> (denoted here | |||
of a payload header as defined in Table 5 of <xref target="VVC"/> (denoted here | as PayloadHdr), | |||
as PayloadHdr), | following with a conditional 16-bit DONL field (in network byte order), and the | |||
following with a conditional 16-bit DONL field (in network byte order), and the | NAL unit payload data | |||
NAL unit payload data | ||||
(the NAL unit excluding its NAL unit header) of the contained NAL | (the NAL unit excluding its NAL unit header) of the contained NAL | |||
unit, as shown in <xref target="single-nhr"/>.</t> | unit, as shown in <xref target="single-nhr"/>.</t> | |||
<figure anchor="single-nhr"> | ||||
<figure anchor="single-nhr"><artwork><![CDATA[ | <name>The Structure of a Single NAL Unit Packet</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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| PayloadHdr | DONL (conditional) | | | PayloadHdr | DONL (conditional) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
| NAL unit payload data | | | NAL unit payload data | | |||
| | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| :...OPTIONAL RTP padding | | | :...OPTIONAL RTP padding | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ||||
The Structure of a Single NAL Unit Packet | </figure> | |||
<t>The DONL field, when present, specifies the value of the 16 least s | ||||
]]></artwork></figure> | ignificant bits of the decoding order number of the contained NAL | |||
unit. If sprop-max-don-diff (defined in <xref target="optionalParameters"/>) is | ||||
<t>The DONL field, when present, specifies the value of the 16 least | greater than 0, the DONL field <bcp14>MUST</bcp14> be present, and the variable | |||
significant bits of the decoding order number of the contained NAL | DON for the | |||
unit. If sprop-max-don-diff (see definition in <xref target="optionalParameters | ||||
"/>) is greater than 0, the DONL field MUST be present, and the variable DON for | ||||
the | ||||
contained NAL unit is derived as equal to the value of the DONL | contained NAL unit is derived as equal to the value of the DONL | |||
field. Otherwise (sprop-max-don-diff is equal to 0), the DONL field MUST NOT be | field. Otherwise (sprop-max-don-diff is equal to 0), the DONL field <bcp14>MUST | |||
present.</t> | NOT</bcp14> be present.</t> | |||
</section> | ||||
</section> | <section anchor="aps"> | |||
<section anchor="aps"><name>Aggregation Packets (APs)</name> | <name>Aggregation Packets (APs)</name> | |||
<t>Aggregation packets (APs) can reduce | ||||
<t>Aggregation Packets (APs) can reduce | ||||
packetization overhead for small NAL units, such as most of the non-VCL NAL unit s, which are often only a few octets in size.</t> | packetization overhead for small NAL units, such as most of the non-VCL NAL unit s, which are often only a few octets in size.</t> | |||
<t>An AP aggregates NAL units of one access unit, and it <bcp14>MUST N | ||||
<t>An AP aggregates NAL units of one access unit and it MUST NOT contain NAL uni | OT</bcp14> contain NAL units from more than one AU. Each NAL unit to be carried | |||
ts from more than one AU. Each NAL unit to be carried in an AP is encapsulated i | in an AP is encapsulated in an aggregation unit. NAL units aggregated in one AP | |||
n an aggregation unit. NAL units aggregated in one AP are included in NAL unit | are included in NAL-unit-decoding order.</t> | |||
decoding order.</t> | <t>An AP consists of a payload header, as defined in Table 5 of <xref | |||
target="VVC"/> (denoted here as PayloadHdr with Type=28), followed by two or mor | ||||
<t>An AP consists of a payload header as defined in Table 5 of <xref target="VVC | e aggregation units, as shown in <xref target="au-hdr"/>.</t> | |||
"/> (denoted here as PayloadHdr with Type=28) followed by two or more aggregatio | <figure anchor="au-hdr"> | |||
n units, as shown in <xref target="au-hdr"/>.</t> | <name>The Structure of an Aggregation Packet</name> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
<figure anchor="au-hdr"><artwork><![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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| PayloadHdr (Type=28) | | | | PayloadHdr (Type=28) | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| | | | | | |||
| two or more aggregation units | | | two or more aggregation units | | |||
| | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| :...OPTIONAL RTP padding | | | :...OPTIONAL RTP padding | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ||||
The Structure of an Aggregation Packet | </figure> | |||
<t>The fields in the payload header of an AP are set as follows. The | ||||
]]></artwork></figure> | F bit <bcp14>MUST</bcp14> | |||
<t>The fields in the payload header of an AP are set as follows. The F bit MUST | ||||
be equal to 0 if the F bit of each aggregated NAL unit is equal to | be equal to 0 if the F bit of each aggregated NAL unit is equal to | |||
zero; otherwise, it MUST be equal to 1. The Type field MUST be equal | zero; otherwise, it <bcp14>MUST</bcp14> be equal to 1. The Type field <bcp14>MU ST</bcp14> be equal | |||
to 28.</t> | to 28.</t> | |||
<t>The value of LayerId <bcp14>MUST</bcp14> be equal to the lowest val | ||||
<t>The value of LayerId MUST be equal to the lowest value of LayerId of | ue of LayerId of | |||
all the aggregated NAL units. The value of TID MUST be the lowest | all the aggregated NAL units. The value of TID <bcp14>MUST</bcp14> be the lowes | |||
t | ||||
value of TID of all the aggregated NAL units.</t> | value of TID of all the aggregated NAL units.</t> | |||
<aside><t>Informative note: All VCL NAL units in an AP have the sa | ||||
<ul empty="true"><li> | me TID | |||
<t>Informative note: All VCL NAL units in an AP have the same TID | ||||
value since they belong to the same access unit. However, an AP | value since they belong to the same access unit. However, an AP | |||
may contain non-VCL NAL units for which the TID value in the NAL | may contain non-VCL NAL units for which the TID value in the NAL | |||
unit header may be different than the TID value of the VCL NAL | unit header may be different than the TID value of the VCL NAL | |||
units in the same AP.</t> | units in the same AP.</t></aside> | |||
</li></ul> | <aside><t>Informative note: If a system envisions subpicture-level | |||
or picture-level modifications, for example, by removing subpictures or picture | ||||
<ul empty="true"><li> | s of a particular layer, a good design choice on the sender's side would be to a | |||
<t>Informative Note: If a system envisions sub-picture level or picture level | ggregate NAL units belonging to only the same subpicture or picture of a particu | |||
modifications, for example by removing sub-pictures or pictures of a particular | lar layer.</t></aside> | |||
layer, a good design choice on the sender’s side would be to aggregate NAL units | <t>An AP <bcp14>MUST</bcp14> carry at least two aggregation units and | |||
belonging to only the same sub-picture or picture of a particular layer.</t> | can carry as many | |||
</li></ul> | ||||
<t>An AP MUST carry at least two aggregation units and can carry as many | ||||
aggregation units as necessary; however, the total amount of data in | aggregation units as necessary; however, the total amount of data in | |||
an AP obviously MUST fit into an IP packet, and the size SHOULD be | an AP obviously <bcp14>MUST</bcp14> fit into an IP packet, and the size <bcp14>S HOULD</bcp14> be | |||
chosen so that the resulting IP packet is smaller than the MTU size | chosen so that the resulting IP packet is smaller than the MTU size | |||
so to avoid IP layer fragmentation. An AP MUST NOT contain FUs | in order to avoid IP layer fragmentation. An AP <bcp14>MUST NOT</bcp14> contain | |||
specified in <xref target="funits"/>. APs MUST NOT be nested; i.e., an AP can | the FUs | |||
not contain another AP.</t> | specified in <xref target="funits"/>. APs <bcp14>MUST NOT</bcp14> be nested, i. | |||
e., an AP cannot contain another AP.</t> | ||||
<t>The first aggregation unit in an AP consists of a conditional 16-bit | <t>The first aggregation unit in an AP consists of a conditional 16-bi | |||
DONL field (in network byte order) followed by a 16-bit unsigned size | t | |||
information (in network byte order) that indicates the size of the | DONL field (in network byte order), followed by 16 bits of unsigned size | |||
NAL unit in bytes (excluding these two octets, but including the NAL | information (in network byte order) that indicate the size of the | |||
NAL unit in bytes (excluding these two octets but including the NAL | ||||
unit header), followed by the NAL unit itself, including its NAL unit | unit header), followed by the NAL unit itself, including its NAL unit | |||
header, as shown in <xref target="au-first-nhdr"/>.</t> | header, as shown in <xref target="au-first-nhdr"/>.</t> | |||
<figure anchor="au-first-nhdr"> | ||||
<figure anchor="au-first-nhdr"><artwork><![CDATA[ | <name>The Structure of the First Aggregation Unit in an AP</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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| : DONL (conditional) | NALU size | | | : DONL (conditional) | NALU size | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| NALU size | | | | NALU size | | | |||
+-+-+-+-+-+-+-+-+ NAL unit | | +-+-+-+-+-+-+-+-+ NAL unit | | |||
| | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| : | | : | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ||||
The Structure of the First Aggregation Unit in an AP | </figure> | |||
<aside><t>Informative note: The first octet of <xref target="au-fi | ||||
]]></artwork></figure> | rst-nhdr"/> (indicated by the first colon) belongs to a previous aggregation uni | |||
t. It is depicted to emphasize that aggregation units are octet aligned only. Si | ||||
<ul empty="true"><li> | milarly, the NAL unit carried in the aggregation unit can terminate at the octet | |||
<t>Informative Note: The first octet of <xref target="au-first-nhdr"/> (indica | boundary.</t></aside> | |||
ted by the first colon) belongs to a previous aggregation unit. It is depicted t | <t>The DONL field, when present, specifies the value of the 16 least s | |||
o emphasize that aggregation units are octet-aligned only. Similarly, the NAL un | ignificant bits of the decoding order number of the aggregated NAL | |||
it carried in the aggregation unit can terminate at the octet boundary.</t> | ||||
</li></ul> | ||||
<t>The DONL field, when present, specifies the value of the 16 least | ||||
significant bits of the decoding order number of the aggregated NAL | ||||
unit.</t> | unit.</t> | |||
<t>If sprop-max-don-diff is greater than 0, the DONL field <bcp14>MUST | ||||
<t>If sprop-max-don-diff is greater than 0, the DONL field MUST be present in an | </bcp14> be present in an aggregation unit that is the first aggregation unit in | |||
aggregation unit that is the first aggregation unit in an AP, and the variable | an AP, and the variable DON for the aggregated NAL unit is derived as equal to | |||
DON for the aggregated NAL unit is derived as equal to the value of the DONL fie | the value of the DONL field, and the variable DON for an aggregation unit that i | |||
ld, and the variable DON for an aggregation unit that is not the first aggregati | s not the first aggregation unit in an AP-aggregated NAL unit is derived as equa | |||
on unit in an AP aggregated NAL unit is derived as equal to the DON of the prece | l to the DON of the preceding aggregated NAL unit in the same AP plus 1 modulo 6 | |||
ding aggregated NAL unit in the same AP plus 1 modulo 65536. Otherwise (sprop-ma | 5536. Otherwise (sprop-max-don-diff is equal to 0), the DONL field <bcp14>MUST N | |||
x-don-diff is equal to 0), the DONL field MUST NOT be present in an aggregation | OT</bcp14> be present in an aggregation unit that is the first aggregation unit | |||
unit that is the first aggregation unit in an AP.</t> | in an AP.</t> | |||
<t>An aggregation unit that is not the first aggregation unit in an AP | ||||
<t>An aggregation unit that is not the first aggregation unit in an AP | will be followed immediately by 16 bits of unsigned size information | |||
will be followed immediately by a 16-bit unsigned size information | (in network byte order) that indicate the | |||
(in network byte order) that indicates the | size of the NAL unit in bytes (excluding these two octets but | |||
size of the NAL unit in bytes (excluding these two octets, but | ||||
including the NAL unit header), followed by the NAL unit itself, | including the NAL unit header), followed by the NAL unit itself, | |||
including its NAL unit header, as shown in <xref target="au-not-first-nhdr"/>.</ t> | including its NAL unit header, as shown in <xref target="au-not-first-nhdr"/>.</ t> | |||
<figure anchor="au-not-first-nhdr"> | ||||
<figure anchor="au-not-first-nhdr"><artwork><![CDATA[ | <name>The Structure of an Aggregation Unit That Is Not the First Aggr | |||
egation Unit in an AP</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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| : NALU size | NAL unit | | | : NALU size | NAL unit | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| : | | : | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ||||
The Structure of an Aggregation Unit That Is Not the First | </figure> | |||
Aggregation Unit in an AP | <aside><t>Informative note: The first octet of <xref target="au-not-fi | |||
rst-nhdr"/> (indicated by the first colon) belongs to a previous aggregation uni | ||||
]]></artwork></figure> | t. It is depicted to emphasize that aggregation units are octet aligned only. Si | |||
milarly, the NAL unit carried in the aggregation unit can terminate at the octet | ||||
<ul empty="true"><li> | boundary.</t></aside> | |||
<t>Informative Note: The first octet of <xref target="au-not-first-nhdr"/> (in | <t><xref target="au-wout-donl"/> presents an example of an AP that con | |||
dicated by the first colon) belongs to a previous aggregation unit. It is depict | tains two aggregation | |||
ed to emphasize that aggregation units are octet-aligned only. Similarly, the NA | ||||
L unit carried in the aggregation unit can terminate at the octet boundary.</t> | ||||
</li></ul> | ||||
<t><xref target="au-wout-donl"/> presents an example of an AP that contains two | ||||
aggregation | ||||
units, labeled as 1 and 2 in the figure, without the DONL field | units, labeled as 1 and 2 in the figure, without the DONL field | |||
being present.</t> | being present.</t> | |||
<figure anchor="au-wout-donl"> | ||||
<figure anchor="au-wout-donl"><artwork><![CDATA[ | <name>An Example of an AP Packet Containing Two Aggregation Units wit | |||
hout the DONL Field</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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| RTP Header | | | RTP Header | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| PayloadHdr (Type=28) | NALU 1 Size | | | PayloadHdr (Type=28) | NALU 1 Size | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| NALU 1 HDR | | | | NALU 1 HDR | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ NALU 1 Data | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ NALU 1 Data | | |||
| . . . | | | . . . | | |||
| | | | | | |||
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| . . . | NALU 2 Size | NALU 2 HDR | | | . . . | NALU 2 Size | NALU 2 HDR | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| NALU 2 HDR | | | | NALU 2 HDR | | | |||
+-+-+-+-+-+-+-+-+ NALU 2 Data | | +-+-+-+-+-+-+-+-+ NALU 2 Data | | |||
| . . . | | | . . . | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| :...OPTIONAL RTP padding | | | :...OPTIONAL RTP padding | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ||||
An Example of an AP Packet Containing | </figure> | |||
Two Aggregation Units without the DONL Field | <t><xref target="au-with-donl"/> presents an example of an AP that con | |||
tains two aggregation | ||||
]]></artwork></figure> | ||||
<t><xref target="au-with-donl"/> presents an example of an AP that contains two | ||||
aggregation | ||||
units, labeled as 1 and 2 in the figure, with the DONL field being present.</t> | units, labeled as 1 and 2 in the figure, with the DONL field being present.</t> | |||
<figure anchor="au-with-donl"> | ||||
<figure anchor="au-with-donl"><artwork><![CDATA[ | <name>An Example of an AP Containing Two Aggregation Units with the D | |||
ONL Field</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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| RTP Header | | | RTP Header | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| PayloadHdr (Type=28) | NALU 1 DONL | | | PayloadHdr (Type=28) | NALU 1 DONL | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| NALU 1 Size | NALU 1 HDR | | | NALU 1 Size | NALU 1 HDR | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
skipping to change at line 1034 ¶ | skipping to change at line 884 ¶ | |||
| | | | | | |||
+ . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| : NALU 2 Size | | | : NALU 2 Size | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| NALU 2 HDR | | | | NALU 2 HDR | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ NALU 2 Data | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ NALU 2 Data | | |||
| | | | | | |||
| . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| :...OPTIONAL RTP padding | | | :...OPTIONAL RTP padding | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ||||
An Example of an AP Containing | </figure> | |||
Two Aggregation Units with the DONL Field | </section> | |||
<section anchor="funits"> | ||||
]]></artwork></figure> | <name>Fragmentation Units</name> | |||
<t>Fragmentation Units (FUs) are introduced to enable fragmenting a | ||||
</section> | ||||
<section anchor="funits"><name>Fragmentation Units</name> | ||||
<t>Fragmentation Units (FUs) are introduced to enable fragmenting a | ||||
single NAL unit into multiple RTP packets, possibly without | single NAL unit into multiple RTP packets, possibly without | |||
cooperation or knowledge of the <xref target="VVC"/> encoder. A fragment | cooperation or knowledge of the <xref target="VVC"/> encoder. A fragment | |||
of a NAL unit consists of an integer number of consecutive octets of | of a NAL unit consists of an integer number of consecutive octets of | |||
that NAL unit. Fragments of the same NAL unit MUST be sent in | that NAL unit. Fragments of the same NAL unit <bcp14>MUST</bcp14> be sent in | |||
consecutive order with ascending RTP sequence numbers (with no other | consecutive order with ascending RTP sequence numbers (with no other | |||
RTP packets within the same RTP stream being sent between the first | RTP packets within the same RTP stream being sent between the first | |||
and last fragment).</t> | and last fragment).</t> | |||
<t>When a NAL unit is fragmented and conveyed within FUs, it is referr | ||||
<t>When a NAL unit is fragmented and conveyed within FUs, it is referred | ed | |||
to as a fragmented NAL unit. APs MUST NOT be fragmented. FUs MUST | to as a fragmented NAL unit. APs <bcp14>MUST NOT</bcp14> be fragmented. FUs <b | |||
NOT be nested; i.e., an FU can not contain a subset of another FU.</t> | cp14>MUST | |||
NOT</bcp14> be nested, i.e., an FU cannot contain a subset of another FU.</t> | ||||
<t>The RTP timestamp of an RTP packet carrying an FU is set to the NALU- | <t>The RTP timestamp of an RTP packet carrying an FU is set to the NAL | |||
U- | ||||
time of the fragmented NAL unit.</t> | time of the fragmented NAL unit.</t> | |||
<t>An FU consists of a payload header as defined in Table 5 of <xref t | ||||
<t>An FU consists of a payload header as defined in Table 5 of <xref target="VVC | arget="VVC"/> (denoted here as PayloadHdr with Type=29), an FU header of one oct | |||
"/> (denoted here as PayloadHdr with Type=29), an FU header of one octet, a cond | et, a conditional 16-bit DONL field (in network byte order), and an FU payload ( | |||
itional 16-bit DONL field (in network byte order), and an FU payload, as shown i | as shown in <xref target="fu-payload"/>).</t> | |||
n <xref target="fu-payload"/>.</t> | <figure anchor="fu-payload"> | |||
<name> The Structure of an FU</name> | ||||
<figure anchor="fu-payload"><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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| PayloadHdr (Type=29) | FU header | DONL (cond) | | | PayloadHdr (Type=29) | FU header | DONL (cond) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| | |||
| DONL (cond) | | | | DONL (cond) | | | |||
|-+-+-+-+-+-+-+-+ | | |-+-+-+-+-+-+-+-+ | | |||
| FU payload | | | FU payload | | |||
| | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| :...OPTIONAL RTP padding | | | :...OPTIONAL RTP padding | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ||||
The Structure of an FU | </figure> | |||
<t>The fields in the payload header are set as follows. The Type fiel | ||||
]]></artwork></figure> | d | |||
<bcp14>MUST</bcp14> be equal to 29. The fields F, LayerId, and TID <bcp14>MUST< | ||||
<t>The fields in the payload header are set as follows. The Type field | /bcp14> be equal to | |||
MUST be equal to 29. The fields F, LayerId, and TID MUST be equal to | ||||
the fields F, LayerId, and TID, respectively, of the fragmented NAL | the fields F, LayerId, and TID, respectively, of the fragmented NAL | |||
unit.</t> | unit.</t> | |||
<t>The FU header consists of an S bit, an E bit, an R bit, and a 5-bit | ||||
<t>The FU header consists of an S bit, an E bit, an R bit and a 5-bit FuType | FuType | |||
field, as shown in <xref target="fu-hdr"/>.</t> | field, as shown in <xref target="fu-hdr"/>.</t> | |||
<figure anchor="fu-hdr"> | ||||
<figure anchor="fu-hdr"><artwork><![CDATA[ | <name>The Structure of the FU Header</name> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
+---------------+ | +---------------+ | |||
|0|1|2|3|4|5|6|7| | |0|1|2|3|4|5|6|7| | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
|S|E|P| FuType | | |S|E|P| FuType | | |||
+---------------+ | +---------------+ | |||
]]></artwork> | ||||
The Structure of FU Header | </figure> | |||
<t>The semantics of the FU header fields are as follows:</t> | ||||
]]></artwork></figure> | <dl newline="true" spacing="normal"> | |||
<dt>S: 1 bit</dt> | ||||
<t>The semantics of the FU header fields are as follows:</t> | <dd>When set to 1, the S bit indicates the start of a fragmented NAL | |||
<t>S: 1 bit</t> | ||||
<ul empty="true"><li> | ||||
<t>When set to 1, the S bit indicates the start of a fragmented NAL | ||||
unit, i.e., the first byte of the FU payload is also the first | unit, i.e., the first byte of the FU payload is also the first | |||
byte of the payload of the fragmented NAL unit. When the FU | byte of the payload of the fragmented NAL unit. When the FU | |||
payload is not the start of the fragmented NAL unit payload, the S | payload is not the start of the fragmented NAL unit payload, the S | |||
bit MUST be set to 0.</t> | bit <bcp14>MUST</bcp14> be set to 0.</dd> | |||
</li></ul> | <dt>E: 1 bit</dt> | |||
<dd>When set to 1, the E bit indicates the end of a fragmented NAL | ||||
<ul empty="true"><li> | ||||
</li></ul> | ||||
<t>E: 1 bit</t> | ||||
<ul empty="true"><li> | ||||
<t>When set to 1, the E bit indicates the end of a fragmented NAL | ||||
unit, i.e., the last byte of the payload is also the last byte of | unit, i.e., the last byte of the payload is also the last byte of | |||
the fragmented NAL unit. When the FU payload is not the last | the fragmented NAL unit. When the FU payload is not the last | |||
fragment of a fragmented NAL unit, the E bit MUST be set to 0.</t> | fragment of a fragmented NAL unit, the E bit <bcp14>MUST</bcp14> be set to 0.</d | |||
</li></ul> | d> | |||
<dt>P: 1 bit</dt> | ||||
<t>P: 1 bit</t> | <dd>When set to 1, the P bit indicates the last FU of the last VCL N | |||
AL unit of a coded picture, i.e., the last byte of the FU payload is also the la | ||||
<ul empty="true"><li> | st byte of the last VCL NAL unit of the coded picture. When the FU payload is n | |||
<t>When set to 1, the P bit indicates the last FU of the last VCL NAL unit of | ot the last fragment of the last VCL NAL unit of a coded picture, the P bit <bcp | |||
a coded picture, i.e., the last byte of the FU payload is also the last byte of | 14>MUST</bcp14> be set to 0.</dd> | |||
the last VCL NAL unit of the coded picture. When the FU payload is not the last | <dt>FuType: 5 bits</dt> | |||
fragment of the last VCL NAL unit of a coded picture, the P bit MUST be set to | <dd>The field FuType <bcp14>MUST</bcp14> be equal to the field Type | |||
0.</t> | of the fragmented | |||
</li></ul> | NAL unit.</dd> | |||
</dl> | ||||
<t>FuType: 5 bits</t> | <t>The DONL field, when present, specifies the value of the 16 least s | |||
ignificant bits of the decoding order number of the fragmented NAL | ||||
<ul empty="true"><li> | ||||
<t>The field FuType MUST be equal to the field Type of the fragmented | ||||
NAL unit.</t> | ||||
</li></ul> | ||||
<t>The DONL field, when present, specifies the value of the 16 least | ||||
significant bits of the decoding order number of the fragmented NAL | ||||
unit.</t> | unit.</t> | |||
<t>If sprop-max-don-diff is greater than 0, | ||||
<t>If sprop-max-don-diff is greater than 0, | and the S bit is equal to 1, the DONL field <bcp14>MUST</bcp14> be present in th | |||
and the S bit is equal to 1, the DONL field MUST be present in the | e | |||
FU, and the variable DON for the fragmented NAL unit is derived as | FU, and the variable DON for the fragmented NAL unit is derived as | |||
equal to the value of the DONL field. Otherwise (sprop-max-don-diff | equal to the value of the DONL field. Otherwise (sprop-max-don-diff | |||
is equal to 0, or the S bit is equal to 0), | is equal to 0, or the S bit is equal to 0), | |||
the DONL field MUST NOT be present in the FU.</t> | the DONL field <bcp14>MUST NOT</bcp14> be present in the FU.</t> | |||
<t>A non-fragmented NAL unit <bcp14>MUST NOT</bcp14> be transmitted in | ||||
<t>A non-fragmented NAL unit MUST NOT be transmitted in one FU; i.e., | one FU, i.e., | |||
the Start bit and End bit must not both be set to 1 in the same FU | the Start bit and End bit must not both be set to 1 in the same FU | |||
header.</t> | header.</t> | |||
<t>The FU payload consists of fragments of the payload of the fragment | ||||
<t>The FU payload consists of fragments of the payload of the fragmented | ed | |||
NAL unit so that if the FU payloads of consecutive FUs, starting with | NAL unit so that, if the FU payloads of consecutive FUs, starting with | |||
an FU with the S bit equal to 1 and ending with an FU with the E bit | an FU with the S bit equal to 1 and ending with an FU with the E bit | |||
equal to 1, are sequentially concatenated, the payload of the | equal to 1, are sequentially concatenated, the payload of the | |||
fragmented NAL unit can be reconstructed. The NAL unit header of the | fragmented NAL unit can be reconstructed. The NAL unit header of the | |||
fragmented NAL unit is not included as such in the FU payload, but | fragmented NAL unit is not included as such in the FU payload, but | |||
rather the information of the NAL unit header of the fragmented NAL | rather the information of the NAL unit header of the fragmented NAL | |||
unit is conveyed in F, LayerId, and TID fields of the FU payload | unit is conveyed in the F, LayerId, and TID fields of the FU payload | |||
headers of the FUs and the FuType field of the FU header of the FUs. | headers of the FUs and the FuType field of the FU header of the FUs. | |||
An FU payload MUST NOT be empty.</t> | An FU payload <bcp14>MUST NOT</bcp14> be empty.</t> | |||
<t>If an FU is lost, the receiver <bcp14>SHOULD</bcp14> discard all fo | ||||
<t>If an FU is lost, the receiver SHOULD discard all following | llowing | |||
fragmentation units in transmission order corresponding to the same | fragmentation units in transmission order, corresponding to the same | |||
fragmented NAL unit, unless the decoder in the receiver is known to | fragmented NAL unit, unless the decoder in the receiver is known to | |||
be prepared to gracefully handle incomplete NAL units.</t> | be prepared to gracefully handle incomplete NAL units.</t> | |||
<t>A receiver in an endpoint or in a MANE <bcp14>MAY</bcp14> aggregate | ||||
<t>A receiver in an endpoint or in a MANE MAY aggregate the first n-1 | the first n-1 | |||
fragments of a NAL unit to an (incomplete) NAL unit, even if fragment | fragments of a NAL unit to an (incomplete) NAL unit, even if fragment | |||
n of that NAL unit is not received. In this case, the | n of that NAL unit is not received. In this case, the | |||
forbidden_zero_bit of the NAL unit MUST be set to 1 to indicate a | forbidden_zero_bit of the NAL unit <bcp14>MUST</bcp14> be set to 1 to indicate a | |||
syntax violation.</t> | syntax violation.</t> | |||
</section> | ||||
</section> | </section> | |||
</section> | <section anchor="DON"> | |||
<section anchor="DON"><name>Decoding Order Number</name> | <name>Decoding Order Number</name> | |||
<t>For each NAL unit, the variable AbsDon is derived, representing the | ||||
<t>For each NAL unit, the variable AbsDon is derived, representing the | ||||
decoding order number that is indicative of the NAL unit decoding | decoding order number that is indicative of the NAL unit decoding | |||
order.</t> | order.</t> | |||
<t>Let NAL unit n be the n-th NAL unit in transmission order within an | ||||
<t>Let NAL unit n be the n-th NAL unit in transmission order within an | ||||
RTP stream.</t> | RTP stream.</t> | |||
<t>If sprop-max-don-diff is equal to 0, AbsDon[n], the value of AbsDon f | ||||
<t>If sprop-max-don-diff is equal to 0, AbsDon[n], the value of AbsDon for NAL u | or NAL unit n, is derived as equal to n.</t> | |||
nit n, is derived as equal to n.</t> | <t>Otherwise (sprop-max-don-diff is greater than 0), AbsDon[n] is derive | |||
d as follows, where DON[n] is the value | ||||
<t>Otherwise (sprop-max-don-diff is greater than 0), AbsDon[n] is derived as fol | ||||
lows, where DON[n] is the value | ||||
of the variable DON for NAL unit n:</t> | of the variable DON for NAL unit n:</t> | |||
<ul spacing="normal"> | ||||
<t><list style="symbols"> | <li>If n is equal to 0 (i.e., NAL unit n is the very first NAL unit | |||
<t>If n is equal to 0 (i.e., NAL unit n is the very first NAL unit | in transmission order), AbsDon[0] is set equal to DON[0].</li> | |||
in transmission order), AbsDon[0] is set equal to DON[0].</t> | <li>Otherwise (n is greater than 0), the following applies for | |||
<t>Otherwise (n is greater than 0), the following applies for | derivation of AbsDon[n]:</li> | |||
derivation of AbsDon[n]:</t> | </ul> | |||
</list></t> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
<figure><artwork><![CDATA[ | ||||
If DON[n] == DON[n-1], | If DON[n] == DON[n-1], | |||
AbsDon[n] = AbsDon[n-1] | AbsDon[n] = AbsDon[n-1] | |||
If (DON[n] > DON[n-1] and DON[n] - DON[n-1] < 32768), | If (DON[n] > DON[n-1] and DON[n] - DON[n-1] < 32768), | |||
AbsDon[n] = AbsDon[n-1] + DON[n] - DON[n-1] | AbsDon[n] = AbsDon[n-1] + DON[n] - DON[n-1] | |||
If (DON[n] < DON[n-1] and DON[n-1] - DON[n] >= 32768), | If (DON[n] < DON[n-1] and DON[n-1] - DON[n] >= 32768), | |||
AbsDon[n] = AbsDon[n-1] + 65536 - DON[n-1] + DON[n] | AbsDon[n] = AbsDon[n-1] + 65536 - DON[n-1] + DON[n] | |||
If (DON[n] > DON[n-1] and DON[n] - DON[n-1] >= 32768), | If (DON[n] > DON[n-1] and DON[n] - DON[n-1] >= 32768), | |||
AbsDon[n] = AbsDon[n-1] - (DON[n-1] + 65536 - DON[n]) | AbsDon[n] = AbsDon[n-1] - (DON[n-1] + 65536 - DON[n]) | |||
If (DON[n] < DON[n-1] and DON[n-1] - DON[n] < 32768), | If (DON[n] < DON[n-1] and DON[n-1] - DON[n] < 32768), | |||
AbsDon[n] = AbsDon[n-1] - (DON[n-1] - DON[n]) | AbsDon[n] = AbsDon[n-1] - (DON[n-1] - DON[n]) | |||
]]></artwork></figure> | ]]></artwork> | |||
<t>For any two NAL units (m and n), the following applies:</t> | ||||
<t>For any two NAL units m and n, the following applies:</t> | <ul spacing="normal"> | |||
<li>When AbsDon[n] is greater than AbsDon[m], this indicates that NAL | ||||
<t><list style="symbols"> | unit n follows NAL unit m in NAL unit decoding order.</li> | |||
<t>AbsDon[n] greater than AbsDon[m] indicates that NAL unit n follows NAL unit | <li>When AbsDon[n] is equal to AbsDon[m], the NAL unit decoding order | |||
m in NAL unit decoding order.</t> | of the two NAL units can be in either order.</li> | |||
<t>When AbsDon[n] is equal to AbsDon[m], the NAL unit decoding order of the tw | <li>When AbsDon[n] is less than AbsDon[m], this indicates that NAL uni | |||
o NAL units can be in either order.</t> | t n precedes NAL unit m in decoding order.</li> | |||
<t>AbsDon[n] less than AbsDon[m] indicates that NAL unit n precedes NAL unit m | </ul> | |||
in decoding order.</t> | <aside><t>Informative note: When two consecutive NAL units in the NAL | |||
</list></t> | ||||
<ul empty="true"><li> | ||||
<ul empty="true"><li> | ||||
<t>Informative note: When two consecutive NAL units in the NAL | ||||
unit decoding order have different values of AbsDon, the | unit decoding order have different values of AbsDon, the | |||
absolute difference between the two AbsDon values may be | absolute difference between the two AbsDon values may be | |||
greater than or equal to 1.</t> | greater than or equal to 1.</t></aside> | |||
</li></ul> | <aside><t>Informative note: There are multiple reasons to allow for | |||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<ul empty="true"><li> | ||||
<t>Informative note: There are multiple reasons to allow for | ||||
the absolute difference of the values of AbsDon for two | the absolute difference of the values of AbsDon for two | |||
consecutive NAL units in the NAL unit decoding order to | consecutive NAL units in the NAL unit decoding order to | |||
be greater than one. An increment by one is not required, | be greater than one. An increment by one is not required, as at the time of | |||
as at the time of associating values of AbsDon to NAL units, | associating values of AbsDon to NAL units, | |||
it may not be known whether all NAL units are to be | it may not be known whether all NAL units are to be | |||
delivered to the receiver. For example, a gateway might | delivered to the receiver. For example, a gateway might | |||
not forward VCL NAL units of higher sublayers or some | not forward VCL NAL units of higher sublayers or some | |||
SEI NAL units when there is congestion in the network. In another example, the f irst intra-coded picture of a pre-encoded clip is transmitted in advance to ensu re that it is readily available in the receiver, and when transmitting the first intra-coded picture, the originator | SEI NAL units when there is congestion in the network. In another example, the f irst intra-coded picture of a pre-encoded clip is transmitted in advance to ensu re that it is readily available in the receiver, and when transmitting the first intra-coded picture, the originator | |||
does not exactly know how many NAL units will be encoded | does not exactly know how many NAL units will be encoded | |||
before the first intra-coded picture of the pre-encoded | before the first intra-coded picture of the pre-encoded | |||
clip follows in decoding order. Thus, the values of | clip follows in decoding order. Thus, the values of | |||
AbsDon for the NAL units of the first intra-coded picture | AbsDon for the NAL units of the first intra-coded picture | |||
of the pre-encoded clip have to be estimated when | of the pre-encoded clip have to be estimated when | |||
they are transmitted, and gaps in values of AbsDon may occur.</t> | they are transmitted, and gaps in values of AbsDon may occur.</t></aside> | |||
</li></ul> | </section> | |||
</li></ul> | </section> | |||
<section anchor="PacketizationRules"> | ||||
</section> | <name>Packetization Rules</name> | |||
</section> | <t>The following packetization rules apply:</t> | |||
<section anchor="PacketizationRules"><name>Packetization Rules</name> | <ul spacing="normal"> | |||
<li>If sprop-max-don-diff is greater than 0, the transmission order of N | ||||
<t>The following packetization rules apply:</t> | AL units carried in the RTP | |||
stream <bcp14>MAY</bcp14> be different than the NAL unit decoding order. Otherwi | ||||
<t><list style="symbols"> | se (sprop-max-don-diff is equal to 0), the transmission order of NAL units carri | |||
<t>If sprop-max-don-diff is greater than 0, the transmission order of NAL unit | ed in the RTP stream <bcp14>MUST</bcp14> be the same as the NAL unit decoding or | |||
s carried in the RTP | der.</li> | |||
stream MAY be different than the NAL unit decoding order. Otherwise (sprop-max-d | <li>A NAL unit of a small size <bcp14>SHOULD</bcp14> be encapsulated in | |||
on-diff is equal to 0), the transmission order of NAL units carried in the RTP s | an | |||
tream MUST be the same as the NAL unit decoding order.</t> | ||||
<t>A NAL unit of a small size SHOULD be encapsulated in an | ||||
aggregation packet together with one or more other NAL units in | aggregation packet together with one or more other NAL units in | |||
order to avoid the unnecessary packetization overhead for small | order to avoid the unnecessary packetization overhead for small | |||
NAL units. For example, non-VCL NAL units such as access unit | NAL units. For example, non-VCL NAL units, such as access unit | |||
delimiters, parameter sets, or SEI NAL units are typically small | delimiters, parameter sets, or SEI NAL units, are typically small | |||
and can often be aggregated with VCL NAL units without violating | and can often be aggregated with VCL NAL units without violating | |||
MTU size constraints.</t> | MTU size constraints.</li> | |||
<t>Each non-VCL NAL unit SHOULD, when possible from an MTU size match | <li>Each non-VCL NAL unit <bcp14>SHOULD</bcp14>, when possible from an M | |||
TU size match | ||||
viewpoint, be encapsulated in an aggregation packet together with | viewpoint, be encapsulated in an aggregation packet together with | |||
its associated VCL NAL unit, as typically a non-VCL NAL unit would | its associated VCL NAL unit, as typically a non-VCL NAL unit would | |||
be meaningless without the associated VCL NAL unit being | be meaningless without the associated VCL NAL unit being | |||
available.</t> | available.</li> | |||
<t>For carrying exactly one NAL unit in an RTP packet, a single NAL | <li>For carrying exactly one NAL unit in an RTP packet, a single NAL | |||
unit packet MUST be used.</t> | unit packet <bcp14>MUST</bcp14> be used.</li> | |||
</list></t> | </ul> | |||
</section> | ||||
</section> | <section anchor="DepacketizationProcess"> | |||
<section anchor="DepacketizationProcess"><name>De-packetization Process</name> | <name>De-packetization Process</name> | |||
<t>The general concept behind de-packetization is to get the NAL units | ||||
<t>The general concept behind de-packetization is to get the NAL units | ||||
out of the RTP packets in an RTP stream and pass them to the decoder in the NAL | out of the RTP packets in an RTP stream and pass them to the decoder in the NAL | |||
unit decoding order.</t> | unit decoding order.</t> | |||
<t>The de-packetization process is implementation dependent. Therefore, | ||||
<t>The de-packetization process is implementation dependent. Therefore, | ||||
the following description should be seen as an example of a suitable | the following description should be seen as an example of a suitable | |||
implementation. Other schemes may be used as well, as long as the | implementation. Other schemes may be used as well, as long as the | |||
output for the same input is the same as the process described below. | output for the same input is the same as the process described below. | |||
The output is the same when the set of output NAL units and their | The output is the same when the set of output NAL units and their | |||
order are both identical. Optimizations relative to the described | order are both identical. Optimizations relative to the described | |||
algorithms are possible.</t> | algorithms are possible.</t> | |||
<t>All normal RTP mechanisms related to buffer management apply. In | ||||
<t>All normal RTP mechanisms related to buffer management apply. In | ||||
particular, duplicated or outdated RTP packets (as indicated by the | particular, duplicated or outdated RTP packets (as indicated by the | |||
RTP sequence number and the RTP timestamp) are removed. To | RTP sequence number and the RTP timestamp) are removed. To | |||
determine the exact time for decoding, factors such as a possible | determine the exact time for decoding, factors, such as a possible | |||
intentional delay to allow for proper inter-stream synchronization | intentional delay to allow for proper inter-stream synchronization, | |||
MUST be factored in.</t> | <bcp14>MUST</bcp14> be factored in.</t> | |||
<t>NAL units with NAL unit type values in the range of 0 to 27, | ||||
<t>NAL units with NAL unit type values in the range of 0 to 27, | ||||
inclusive, may be passed to the decoder. NAL-unit-like structures | inclusive, may be passed to the decoder. NAL-unit-like structures | |||
with NAL unit type values in the range of 28 to 31, inclusive, MUST | with NAL unit type values in the range of 28 to 31, inclusive, <bcp14>MUST | |||
NOT be passed to the decoder.</t> | NOT</bcp14> be passed to the decoder.</t> | |||
<t>The receiver includes a receiver buffer, which is used to compensate | ||||
<t>The receiver includes a receiver buffer, which is used to compensate | for transmission delay jitter within individual RTP streams and to reorder NAL u | |||
for transmission delay jitter within individual RTP stream, and to reorder NAL u | nits from transmission order to the NAL unit decoding order. In this section, t | |||
nits from transmission order to the NAL unit decoding order. In this section, t | he | |||
he | ||||
receiver operation is described under the assumption that there is no | receiver operation is described under the assumption that there is no | |||
transmission delay jitter within an RTP stream. To make a difference from a prac tical receiver buffer that is also used for compensation of transmission delay j itter, the | transmission delay jitter within an RTP stream. To make a difference from a prac tical receiver buffer that is also used for compensation of transmission delay j itter, the | |||
receiver buffer is hereafter called the de-packetization buffer in | receiver buffer is hereafter called the de-packetization buffer in | |||
this section. Receivers should also prepare for transmission delay | this section. Receivers should also prepare for transmission delay | |||
jitter; that is, either reserve separate buffers for transmission | jitter, that is, either reserve separate buffers for transmission | |||
delay jitter buffering and de-packetization buffering or use a | delay jitter buffering and de-packetization buffering or use a | |||
receiver buffer for both transmission delay jitter and de- | receiver buffer for both transmission delay jitter and de- | |||
packetization. Moreover, receivers should take transmission delay | packetization. Moreover, receivers should take transmission delay | |||
jitter into account in the buffering operation, e.g., by additional | jitter into account in the buffering operation, e.g., by additional | |||
initial buffering before starting of decoding and playback.</t> | initial buffering before starting of decoding and playback.</t> | |||
<t>The de-packetization process extracts the NAL units from the RTP packet | ||||
<t>The de-packetization process extracts the NAL units from the RTP packets in a | s in an RTP stream as follows. When an RTP packet carries a single NAL unit pac | |||
n RTP stream as follows. When an RTP packet carries a single NAL unit packet, t | ket, the payload of the RTP packet is extracted as a single NAL unit, excluding | |||
he payload of the RTP packet is extracted as a single NAL unit, excluding the DO | the DONL field, i.e., third and fourth bytes, when sprop-max-don-diff is greater | |||
NL field, i.e., third and fourth bytes, when sprop-max-don-diff is greater than | than 0. When an RTP packet carries an aggregation packet, several NAL units ar | |||
0. When an RTP packet carries an Aggregation Packet, several NAL units are extr | e extracted from the payload of the RTP packet. In this case, each NAL unit cor | |||
acted from the payload of the RTP packet. In this case, each NAL unit correspon | responds to the part of the payload of each aggregation unit that follows the NA | |||
ds to the part of the payload of each aggregation unit that follows the NALU siz | LU size field, as described in <xref target="aps"/>. When an RTP packet carries | |||
e field as described in Section 4.3.2. When an RTP packet carries a Fragmentati | a Fragmentation Unit (FU), all RTP packets from the first FU (with the S field | |||
on Unit (FU), all RTP packets from the first FU (with the S field equal to 1) of | equal to 1) of the fragmented NAL unit up to the last FU (with the E field equal | |||
the fragmented NAL unit up to the last FU (with the E field equal to 1) of the | to 1) of the fragmented NAL unit are collected. The NAL unit is extracted from | |||
fragmented NAL unit are collected. The NAL unit is extracted from these RTP pac | these RTP packets by concatenating all FU payloads in the same order as the cor | |||
kets by concatenating all FU payloads in the same order as the corresponding RTP | responding RTP packets and appending the NAL unit header with the fields F, Laye | |||
packets and appending the NAL unit header with the fields F, LayerId, and TID, | rId, and TID set to equal the values of the fields F, LayerId, and TID in the pa | |||
set to equal to the values of the fields F, LayerId, and TID in the payload head | yload header of the FUs, respectively, and with the NAL unit type set equal to t | |||
er of the FUs respectively, and with the NAL unit type set equal to the value of | he value of the field FuType in the FU header of the FUs, as described in <xref | |||
the field FuType in the FU header of the FUs, as described in Section 4.3.3.</t | target="funits"/>.</t> | |||
> | <t>When sprop-max-don-diff is equal to 0, the de-packetization buffer size | |||
is zero bytes, and the NAL units carried in the single RTP stream are directly | ||||
<t>When sprop-max-don-diff is equal to 0, the de-packetization buffer size is ze | passed to the decoder in their transmission order, which is identical to their d | |||
ro bytes, and the NAL units carried in the single RTP stream are directly passed | ecoding order.</t> | |||
to the decoder in their transmission order, which is identical to their decodin | ||||
g order.</t> | ||||
<!-- > Informative note: The mapping between RTP and NTP timestamps is | ||||
conveyed in RTCP SR packets. In addition, the mechanisms for | ||||
faster media timestamp synchronization discussed in {{RFC6051}} may | ||||
be used to speed up the acquisition of the RTP-to-wall-clock | ||||
mapping. --> | ||||
<t>When sprop-max-don-diff is greater than 0, the process described in the remai nder of this section | <t>When sprop-max-don-diff is greater than 0, the process described in the remai nder of this section | |||
applies.</t> | applies.</t> | |||
<t>There are two buffering states in the receiver: initial buffering and | ||||
<t>There are two buffering states in the receiver: initial buffering and | ||||
buffering while playing. Initial buffering starts when the reception | buffering while playing. Initial buffering starts when the reception | |||
is initialized. After initial buffering, decoding and playback are | is initialized. After initial buffering, decoding and playback are | |||
started, and the buffering-while-playing mode is used.</t> | started, and the buffering-while-playing mode is used.</t> | |||
<t>Regardless of the buffering state, the receiver stores incoming NAL uni | ||||
<t>Regardless of the buffering state, the receiver stores incoming NAL units in | ts in reception order into the de-packetization buffer. NAL units carried in RT | |||
reception order into the de-packetization buffer. NAL units carried in RTP pack | P packets are stored in the de-packetization | |||
ets are stored in the de-packetization | ||||
buffer individually, and the value of AbsDon is calculated and stored for each N AL unit.</t> | buffer individually, and the value of AbsDon is calculated and stored for each N AL unit.</t> | |||
<t>Initial buffering lasts until the difference between the greatest and s | ||||
<t>Initial buffering lasts until the difference between the greatest and smalles | mallest AbsDon values of the NAL units in the de-packetization buffer is greater | |||
t AbsDon values of the NAL units in the de-packetization buffer is greater than | than or equal to the value of sprop-max-don-diff.</t> | |||
or equal to the value of sprop-max-don-diff.</t> | <t>After initial buffering, whenever the difference between the greatest a | |||
nd smallest AbsDon values of the NAL units in the de-packetization buffer is gre | ||||
<t>After initial buffering, whenever the difference between the greatest and sma | ater than or equal to the value of sprop-max-don-diff, the following operation i | |||
llest AbsDon values of the NAL units in the de-packetization buffer is greater t | s repeatedly applied until this difference is smaller than sprop-max-don-diff:</ | |||
han or equal to the value of sprop-max-don-diff, the following operation is repe | t> | |||
atedly applied until this difference is smaller than sprop-max-don-diff:</t> | <t indent="3">The NAL unit in the de-packetization buffer with the smalles | |||
t | ||||
<t><list style="symbols"> | ||||
<t>The NAL unit in the de-packetization buffer with the smallest | ||||
value of AbsDon is removed from the de-packetization buffer and | value of AbsDon is removed from the de-packetization buffer and | |||
passed to the decoder.</t> | passed to the decoder.</t> | |||
</list></t> | <t>When no more NAL units are flowing into the de-packetization buffer, | |||
<t>When no more NAL units are flowing into the de-packetization buffer, | ||||
all NAL units remaining in the de-packetization buffer are removed | all NAL units remaining in the de-packetization buffer are removed | |||
from the buffer and passed to the decoder in the order of increasing | from the buffer and passed to the decoder in the order of increasing | |||
AbsDon values.</t> | AbsDon values.</t> | |||
</section> | ||||
<section anchor="PayloadFormatParameters"> | ||||
<name>Payload Format Parameters</name> | ||||
<t>This section specifies the optional parameters. | ||||
A mapping of the parameters with Session Description Protocol (SDP) <xref | ||||
target="RFC8866"/> is also provided for applications that use SDP.</t> | ||||
<t>Parameters starting with the string "sprop" for stream properties can b | ||||
e used by a sender to provide a receiver with the properties of the stream that | ||||
is or will be sent. The media sender (and not the receiver) selects whether, and | ||||
with what values, "sprop" parameters are being sent. This uncommon characterist | ||||
ic of the "sprop" parameters may not be intuitive in the context of some signali | ||||
ng protocol concepts, especially with offer/answer. Please see <xref target="sd | ||||
poa"/> for guidance specific to the use of sprop parameters in the offer/answer | ||||
case.</t> | ||||
<section anchor="oparams"> | ||||
<name>Media Type Registration</name> | ||||
<t>The receiver <bcp14>MUST</bcp14> ignore any parameter unspecified in | ||||
this memo.</t> | ||||
<dl newline="false" spacing="normal"> | ||||
<dt>Type name:</dt> | ||||
<dd>video</dd> | ||||
<dt>Subtype name:</dt> | ||||
<dd>H266</dd> | ||||
<dt>Required parameters:</dt> | ||||
<dd>N/A</dd> | ||||
<dt>Optional parameters:</dt> | ||||
<dd>profile-id, tier-flag, sub-profile-id, interop-constraints, level- | ||||
id, sprop-sublayer-id, sprop-ols-id, recv-sublayer-id, recv-ols-id, max-recv-lev | ||||
el-id, sprop-dci, sprop-vps, sprop-sps, sprop-pps, sprop-sei, max-lsr, max-fps, | ||||
sprop-max-don-diff, sprop-depack-buf-bytes, depack-buf-cap (refer to <xref targe | ||||
t="optionalParameters"/> for definitions).</dd> | ||||
<dt>Encoding considerations:</dt> | ||||
<dd>This type is only defined for transfer via RTP <xref target="RFC35 | ||||
50"/>.</dd> | ||||
<dt>Security considerations:</dt> | ||||
<dd>See <xref target="Security"/> of RFC 9328.</dd> | ||||
<dt>Interoperability considerations:</dt> | ||||
<dd>N/A</dd> | ||||
<dt>Published specification:</dt> | ||||
<dd>Please refer to RFC 9328 and VVC coding specification <xref target | ||||
="VVC"/>.</dd> | ||||
<dt>Applications that use this media type:</dt> | ||||
<dd>Any application that relies on VVC-based video services over RTP</ | ||||
dd> | ||||
<dt>Fragment identifier considerations:</dt> | ||||
<dd>N/A</dd> | ||||
<dt>Additional information:</dt> | ||||
<dd>N/A</dd> | ||||
<dt>Person & email address to contact for further information:</dt | ||||
> | ||||
<dd><br/>Stephan Wenger (stewe@stewe.org)</dd> | ||||
<dt>Intended usage:</dt> | ||||
<dd>COMMON</dd> | ||||
<dt>Restrictions on usage:</dt> | ||||
<dd>N/A</dd> | ||||
<dt>Author:</dt> | ||||
<dd>See Authors' Addresses section of RFC 9328.</dd> | ||||
<dt>Change controller:</dt> | ||||
<dd>IETF <avtcore@ietf.org></dd> | ||||
</dl> | ||||
</section> | ||||
<section anchor="optionalParameters"> | ||||
<name>Optional Parameters Definition</name> | ||||
<dl newline="true" spacing="normal"> | ||||
<dt>profile-id, tier-flag, sub-profile-id, interop-constraints, and le | ||||
vel-id:</dt> | ||||
<dd><t>These parameters indicate the profile, the tier, the default le | ||||
vel, the sub-profile, and some constraints of the bitstream carried by the RTP s | ||||
tream, or a specific set of the profile, the tier, the default level, the sub-pr | ||||
ofile, and some constraints the receiver supports.</t> | ||||
<t>The subset of coding tools that may have been used to generate th | ||||
e bitstream or that the receiver supports, as well as some additional constraint | ||||
s, are indicated collectively by profile-id, sub-profile-id, and interop-constra | ||||
ints.</t> | ||||
<aside><t>Informative note: There are 128 values of profile-id. The | ||||
subset of coding tools identified by profile-id can be further constrained with | ||||
up to 255 instances of sub-profile-id. In addition, 68 bits included in intero | ||||
p-constraints, which can be extended up to 324 bits, provide means to further re | ||||
strict tools from existing profiles. To be able to support this fine-granular s | ||||
ignaling of coding-tool subsets with profile-id, sub-profile-id, and interop-con | ||||
straints, it would be safe to require symmetric use of these parameters in SDP o | ||||
ffer/answer unless recv-ols-id is included in the SDP answer for choosing one of | ||||
the layers offered.</t></aside> | ||||
<t>The tier is indicated by tier-flag. The default level is indicat | ||||
ed by level-id. The tier and the default level specify the limits on values of | ||||
syntax elements or arithmetic combinations of values of syntax elements that are | ||||
followed when generating the bitstream or that the receiver supports.</t> | ||||
<t>In SDP offer/answer, when the SDP answer does not include the rec | ||||
v-ols-id parameter that is less than the sprop-ols-id parameter in the SDP offer | ||||
, the following applies:</t> | ||||
<ul spacing="normal"> | ||||
<li>The tier-flag, profile-id, sub-profile-id, and interop-constra | ||||
ints parameters <bcp14>MUST</bcp14> be used symmetrically, i.e., the value of ea | ||||
ch of these parameters in the offer <bcp14>MUST</bcp14> be the same as that in t | ||||
he answer, either explicitly signaled or implicitly inferred.</li> | ||||
</section> | <li>The level-id parameter is changeable as long as the highest le | |||
<section anchor="PayloadFormatParameters"><name>Payload Format Parameters</name> | vel indicated by the answer is either equal to or lower than that in the offer. | |||
Note that the highest level higher than level-id in the offer for receiving can | ||||
<t>This section specifies the optional parameters. A mapping of the parameters w | be included as max-recv-level-id.</li> | |||
ith Session Description Protocol (SDP) <xref target="RFC4556"/> is also provide | </ul> | |||
d for applications that use SDP.</t> | <t>In SDP offer/answer, when the SDP answer does include the recv-ol | |||
s-id parameter that is less than the sprop-ols-id parameter in the SDP offer, th | ||||
<t>Parameters starting with the string "sprop" for stream properties can be used | e set of tier-flag, profile-id, sub-profile-id, interop-constraints, and level-i | |||
by a sender to provide a receiver with the properties of the stream that is or | d parameters included in the answer <bcp14>MUST</bcp14> be consistent with that | |||
will be sent. The media sender (and not the receiver) selects whether, and with | for the chosen output layer set as indicated in the SDP offer, with the exceptio | |||
what values, "sprop" parameters are being sent. This uncommon characteristic of | n that the level-id parameter in the SDP answer is changeable as long as the hig | |||
the "sprop" parameters may not be intuitive in the context of some signaling pro | hest level indicated by the answer is either lower than or equal to that in the | |||
tocol concepts, especially with offer/answer. Please see <xref target="sdpoa"/> | offer.</t> | |||
for guidance specific to the use of sprop parameters in the Offer/Answer case.< | <t>More specifications of these parameters, including how they relat | |||
/t> | e to syntax elements specified in <xref target="VVC"/>, are provided below.</t> | |||
</dd> | ||||
<section anchor="oparams"><name>Media Type Registration</name> | <dt>profile-id:</dt> | |||
<dd> | ||||
<t>The receiver MUST ignore any parameter unspecified in this memo.</t> | <t>When profile-id is not present, a value of 1 (i.e., the Main 10 p | |||
rofile) <bcp14>MUST</bcp14> be inferred.</t> | ||||
<t>Type name: video</t> | <t>When used to indicate properties of a bitstream, profile-id is de | |||
rived from the general_profile_idc syntax element that applies to the bitstream | ||||
<t>Subtype name: H266</t> | in an instance of the profile_tier_level( ) syntax structure.</t> | |||
<t>VVC bitstreams transported over RTP using the technologies of thi | ||||
<t>Required parameters: N/A</t> | s memo <bcp14>SHOULD</bcp14> contain only a single profile_tier_level( ) structu | |||
re in the DCI, unless the sender can assure that a receiver can correctly decode | ||||
<t>Optional parameters:</t> | the VVC bitstream, regardless of which profile_tier_level( ) structure containe | |||
d in the DCI was used for deriving profile-id and other parameters for the SDP o | ||||
<ul empty="true"><li> | ffer/answer exchange.</t> | |||
<t>profile-id, tier-flag, sub-profile-id, interop-constraints, level-id, sprop | <t>As specified in <xref target="VVC"/>, a profile_tier_level( ) syn | |||
-sublayer-id, sprop-ols-id, recv-sublayer-id, recv-ols-id, max-recv-level-id, sp | tax structure may be contained in an SPS NAL unit, and one or more profile_tier_ | |||
rop-dci, sprop-vps, sprop-sps, sprop-pps, sprop-sei, max-lsr, max-fps, sprop-max | level( ) syntax structures may be contained in a VPS NAL unit and in a DCI NAL u | |||
-don-diff, sprop-depack-buf-bytes, depack-buf-cap (Refer to <xref target="option | nit. One of the following three cases applies to the container NAL unit of the | |||
alParameters"/> for definitions).</t> | profile_tier_level( ) syntax structure containing syntax elements used to derive | |||
</li></ul> | the values of profile-id, tier-flag, level-id, sub-profile-id, or interop-const | |||
raints:</t> | ||||
<t>Encoding considerations:</t> | <ol type="1"> | |||
<li>The container NAL unit is an SPS, the bitstream is a single-lay | ||||
<ul empty="true"><li> | er bitstream, and the profile_tier_level( ) syntax structures in all SPSs refere | |||
<t>This type is only defined for transfer via RTP (RFC 3550).</t> | nced by the CVSs in the bitstream have the same values respectively for those pr | |||
</li></ul> | ofile_tier_level( ) syntax elements.</li> | |||
<li>The container NAL unit is a VPS, the profile_tier_level( ) synt | ||||
<t>Security considerations:</t> | ax structure is the one in the VPS that applies to the OLS corresponding to the | |||
bitstream, and the profile_tier_level( ) syntax structures applicable to the OLS | ||||
<ul empty="true"><li> | corresponding to the bitstream in all VPSs referenced by the CVSs in the bitstr | |||
<t>See <xref target="Security"/> of RFC XXXX.</t> | eam have the same values respectively for those profile_tier_level( ) syntax ele | |||
</li></ul> | ments.</li> | |||
<li>The container NAL unit is a DCI NAL unit, and the profile_tier_ | ||||
<t>Interoperability considerations: N/A</t> | level( ) syntax structures in all DCI NAL units in the bitstream have the same v | |||
alues respectively for those profile_tier_level( ) syntax elements.</li> | ||||
<t>Published specification:</t> | </ol> | |||
<t><xref target="VVC"/> allows for multiple profile_tier_level( ) st | ||||
<ul empty="true"><li> | ructures in a DCI NAL unit, which may contain different values for the syntax el | |||
<t>Please refer to RFC XXXX and VVC coding specification <xref target="VVC"/>. | ements used to derive the values of profile-id, tier-flag, level-id, sub-profile | |||
</t> | -id, or interop-constraints in the different entries. However, herein defined i | |||
</li></ul> | s only a single profile-id, tier-flag, level-id, sub-profile-id, or interop-cons | |||
traints. When signaling these parameters and a DCI NAL unit is present with mul | ||||
<t>Applications that use this media type:</t> | tiple profile_tier_level( ) structures, these values <bcp14>SHOULD</bcp14> be th | |||
e same as the first profile_tier_level structure in the DCI, unless the sender h | ||||
<ul empty="true"><li> | as ensured that | |||
<t>Any application that relies on VVC-based video services over RTP</t> | ||||
</li></ul> | ||||
<t>Fragment identifier considerations: N/A</t> | ||||
<t>Additional information: N/A</t> | ||||
<t>Person & email address to contact for further information:</t> | ||||
<ul empty="true"><li> | ||||
<t>Stephan Wenger (stewe@stewe.org)</t> | ||||
</li></ul> | ||||
<t>Intended usage: COMMON</t> | ||||
<t>Restrictions on usage: N/A</t> | ||||
<t>Author: See Authors' Addresses section of RFC XXXX.</t> | ||||
<t>Change controller:</t> | ||||
<ul empty="true"><li> | ||||
<t>IETF <avtcore@ietf.org></t> | ||||
</li></ul> | ||||
</section> | ||||
<section anchor="optionalParameters"><name>Optional Parameters Definition</name> | ||||
<t>profile-id, tier-flag, sub-profile-id, interop-constraints, and level-id:</t> | ||||
<ul empty="true"><li> | ||||
<t>These parameters indicate the profile, tier, default level, sub-profile, an | ||||
d some constraints of the bitstream carried by the RTP stream, or a specific set | ||||
of the profile, tier, default level, sub-profile and some constraints the recei | ||||
ver supports.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>The subset of coding tools that may have been used to generate the bitstrea | ||||
m or that the receiver supports, as well as some additional constraints are indi | ||||
cated collectively by profile-id, sub-profile-id, and interop-constraints.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<ul empty="true"><li> | ||||
<t>Informative note: There are 128 values of profile-id. The subset of codi | ||||
ng tools identified by the profile-id can be further constrained with up to 255 | ||||
instances of sub-profile-id. In addition, 68 bits included in interop-constrain | ||||
ts, which can be extended up to 324 bits provide means to further restrict tools | ||||
from existing profiles. To be able to support this fine-granular signaling of | ||||
coding tool subsets with profile-id, sub-profile-id and interop-constraints, it | ||||
would be safe to require symmetric use of these parameters in SDP offer/answer u | ||||
nless recv-ols-id is included in the SDP answer for choosing one of the layers o | ||||
ffered.</t> | ||||
</li></ul> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>The tier is indicated by tier-flag. The default level is indicated by leve | ||||
l-id. The tier and the default level specify the limits on values of syntax ele | ||||
ments or arithmetic combinations of values of syntax elements that are followed | ||||
when generating the bitstream or that the receiver supports.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>In SDP offer/answer, when the SDP answer does not include the recv-ols-id p | ||||
arameter that is less than the sprop-ols-id parameter in the SDP offer, the foll | ||||
owing applies:</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t><list style="symbols"> | ||||
<t>The tier-flag, profile-id, sub-profile-id, and interop-constraints parame | ||||
ters MUST be used symmetrically, i.e., the value of each of these parameters in | ||||
the offer MUST be the same as that in the answer, either explicitly signaled or | ||||
implicitly inferred.</t> | ||||
</list></t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t><list style="symbols"> | ||||
<t>The level-id parameter is changeable as long as the highest level indicat | ||||
ed by the answer is either equal to or lower than that in the offer. Note that | ||||
a highest level higher than level-id in the offer for receiving can be included | ||||
as max-recv-level-id.</t> | ||||
</list></t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<ul empty="true"><li> | ||||
<t>In SDP offer/answer, when the SDP answer does include the recv-ols-id par | ||||
ameter that is less than the sprop-ols-id parameter in the SDP offer, the set of | ||||
tier-flag, profile-id, sub-profile-id, interop-constraints, and level-id parame | ||||
ters included in the answer MUST be consistent with that for the chosen output l | ||||
ayer set as indicated in the SDP offer, with the exception that the level-id par | ||||
ameter in the SDP answer is changeable as long as the highest level indicated by | ||||
the answer is either lower than or equal to that in the offer.</t> | ||||
</li></ul> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>More specifications of these parameters, including how they relate to synta | ||||
x elements specified in <xref target="VVC"/> are provided below.</t> | ||||
</li></ul> | ||||
<t>profile-id:</t> | ||||
<ul empty="true"><li> | ||||
<t>When profile-id is not present, a value of 1 (i.e., the Main 10 profile) MU | ||||
ST be inferred.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>When used to indicate properties of a bitstream, profile-id is derived from | ||||
the general_profile_idc syntax element that applies to the bitstream in an inst | ||||
ance of the profile_tier_level( ) syntax structure.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>VVC bitstreams transported over RTP using the technologies of this memo SHO | ||||
ULD contain only a single profile_tier_level( ) structure in the DCI, unless the | ||||
sender can assure that a receiver can correctly decode the VVC bitstream regard | ||||
less of which profile_tier_level( ) structure contained in the DCI was used for | ||||
deriving profile-id and other parameters for the SDP O/A exchange.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>As specified in <xref target="VVC"/>, a profile_tier_level( ) syntax struct | ||||
ure may be contained in an SPS NAL unit, and one or more profile_tier_level( ) s | ||||
yntax structures may be contained in a VPS NAL unit and in a DCI NAL unit. One | ||||
of the following three cases applies to the container NAL unit of the profile_ti | ||||
er_level( ) syntax structure containing syntax elements used to derive the value | ||||
s of profile-id, tier-flag, level-id, sub-profile-id, or interop-constraints: 1) | ||||
The container NAL unit is an SPS, the bitstream is a single-layer bitstream, an | ||||
d the profile_tier_level( ) syntax structures in all SPSs referenced by the CVSs | ||||
in the bitstream has the same values respectively for those profile_tier_level( | ||||
) syntax elements; 2) The container NAL unit is a VPS, the profile_tier_level( | ||||
) syntax structure is the one in the VPS that applies to the OLS corresponding t | ||||
o the bitstream, and the profile_tier_level( ) syntax structures applicable to t | ||||
he OLS corresponding to the bitstream in all VPSs referenced by the CVSs in the | ||||
bitstream have the same values respectively for those profile_tier_level( ) synt | ||||
ax elements; 3) The container NAL unit is a DCI NAL unit and the profile_tier_le | ||||
vel( ) syntax structures in all DCI NAL units in the bitstream has the same valu | ||||
es respectively for those profile_tier_level( ) syntax elements.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t><xref target="VVC"/> allows for multiple profile_tier_level( ) structures i | ||||
n a DCI NAL unit, which may contain different values for the syntax elements use | ||||
d to derive the values of profile-id, tier-flag, level-id, sub-profile-id, or in | ||||
terop-constraints in the different entries. However, herein defined is only a s | ||||
ingle profile-id, tier-flag, level-id, sub-profile-id, or interop-constraints. | ||||
When signaling these parameters and a DCI NAL unit is present with multiple prof | ||||
ile_tier_level( ) structures, these values SHOULD be the same as the first profi | ||||
le_tier_level structure in the DCI, unless the sender has ensured that | ||||
the receiver can decode the bitstream when a different value is chosen.</t> | the receiver can decode the bitstream when a different value is chosen.</t> | |||
</li></ul> | </dd> | |||
<dt>tier-flag, level-id:</dt> | ||||
<t>tier-flag, level-id:</t> | <dd> | |||
<t>The value of tier-flag <bcp14>MUST</bcp14> be in the range of 0 t | ||||
<ul empty="true"><li> | o 1, inclusive. The value of level-id <bcp14>MUST</bcp14> be in the range of 0 | |||
<t>The value of tier-flag MUST be in the range of 0 to 1, inclusive. The valu | to 255, inclusive.</t> | |||
e of level-id MUST be in the range of 0 to 255, inclusive.</t> | <t>If the tier-flag and level-id parameters are used to indicate pro | |||
</li></ul> | perties of a bitstream, they indicate the tier and the highest level the bitstre | |||
am complies with.</t> | ||||
<ul empty="true"><li> | <t>If the tier-flag and level-id parameters are used for capability | |||
<t>If the tier-flag and level-id parameters are used to indicate properties of | exchange, the following applies. If max-recv-level-id is not present, the defau | |||
a bitstream, they indicate the tier and the highest level the bitstream complie | lt level defined by level-id indicates the highest level the codec wishes to sup | |||
s with.</t> | port. Otherwise, max-recv-level-id indicates the highest level the codec support | |||
</li></ul> | s for receiving. For either receiving or sending, all levels that are lower tha | |||
n the highest level supported <bcp14>MUST</bcp14> also be supported.</t> | ||||
<ul empty="true"><li> | <t>If no tier-flag is present, a value of 0 <bcp14>MUST</bcp14> be i | |||
<t>If the tier-flag and level-id parameters are used for capability exchange, | nferred; if no level-id is present, a value of 51 (i.e., level 3.1) <bcp14>MUST< | |||
the following applies. If max-recv-level-id is not present, the default level d | /bcp14> be inferred.</t> | |||
efined by level-id indicates the highest level the codec wishes to support. Othe | <aside><t>Informative note: The level values currently defined in t | |||
rwise, max-recv-level-id indicates the highest level the codec supports for rece | he VVC specification are in the form of "majorNum.minorNum", and the value of th | |||
iving. For either receiving or sending, all levels that are lower than the high | e level-id for each of the levels is equal to majorNum * 16 + minorNum * 3. It | |||
est level supported MUST also be supported.</t> | is expected that, if any levels are defined in the future, the same convention w | |||
</li></ul> | ill be used, but this cannot be guaranteed.</t></aside> | |||
<t>When used to indicate properties of a bitstream, the tier-flag an | ||||
<ul empty="true"><li> | d level-id parameters are derived respectively from the syntax element general_t | |||
<t>If no tier-flag is present, a value of 0 MUST be inferred; if no level-id i | ier_flag, and the syntax element general_level_idc or sub_layer_level_idc[j], th | |||
s present, a value of 51 (i.e., level 3.1) MUST be inferred.</t> | at apply to the bitstream in an instance of the profile_tier_level( ) syntax str | |||
</li></ul> | ucture.</t> | |||
<t>If the tier-flag and level-id are derived from the profile_tier_l | ||||
<ul empty="true"><li> | evel( ) syntax structure in a DCI NAL unit, the following applies:</t> | |||
<ul empty="true"><li> | <ul spacing="normal"> | |||
<t>Informative note: The level values currently defined in the VVC specific | <li>tier-flag = general_tier_flag</li> | |||
ation are in the form of "majorNum.minorNum", and the value of the level-id for | <li>level-id = general_level_idc</li> | |||
each of the levels is equal to majorNum * 16 + minorNum * 3. It is expected tha | </ul> | |||
t if any levels are defined in the future, the same convention will be used, but | <t>Otherwise, if the tier-flag and level-id are derived from the pro | |||
this cannot be guaranteed.</t> | file_tier_level( ) syntax structure in an SPS or VPS NAL unit, and the bitstream | |||
</li></ul> | contains the highest sublayer representation in the OLS corresponding to the bi | |||
</li></ul> | tstream, the following applies:</t> | |||
<ul spacing="normal"> | ||||
<ul empty="true"><li> | <li>tier-flag = general_tier_flag</li> | |||
<t>When used to indicate properties of a bitstream, the tier-flag and level-id | <li>level-id = general_level_idc</li> | |||
parameters are derived respectively from the syntax element general_tier_flag, | </ul> | |||
and the syntax element general_level_idc or sub_layer_level_idc[j], that apply t | <t>Otherwise, if the tier-flag and level-id are derived from the pro | |||
o the bitstream, in an instance of the profile_tier_level( ) syntax structure.</ | file_tier_level( ) syntax structure in an SPS or VPS NAL unit, and the bitstream | |||
t> | does not contain the highest sublayer representation in the OLS corresponding t | |||
</li></ul> | o the bitstream, the following applies, with j being the value of the sprop-subl | |||
ayer-id parameter:</t> | ||||
<ul empty="true"><li> | <ul spacing="normal"> | |||
<t>If the tier-flag and level-id are derived from the profile_tier_level( ) sy | <li>tier-flag = general_tier_flag</li> | |||
ntax structure in a DCI NAL unit, the following applies:</t> | <li>level-id = sub_layer_level_idc[j]</li> | |||
</li></ul> | </ul> | |||
</dd> | ||||
<ul empty="true"><li> | <dt>sub-profile-id:</dt> | |||
<t><list style="symbols"> | <dd><t>The value of the parameter is a comma-separated (',') list of dat | |||
<t>tier-flag = general_tier_flag</t> | a using base64 encoding (<xref target="RFC4648" section="4" sectionFormat="of" / | |||
<t>level-id = general_level_idc</t> | >) representation without "==" padding.</t> | |||
</list></t> | <t>When used to indicate properties of a bitstream, sub-profile-id is de | |||
</li></ul> | rived from each of the ptl_num_sub_profiles general_sub_profile_idc[i] syntax el | |||
ements that apply to the bitstream in a profile_tier_level( ) syntax structure.< | ||||
<ul empty="true"><li> | /t></dd> | |||
<t>Otherwise, if the tier-flag and level-id are derived from the profile_tier_ | <dt>interop-constraints:</dt> | |||
level( ) syntax structure in an SPS or VPS NAL unit, and the bitstream contains | <dd><t>A base64 encoding (<xref target="RFC4648" section="4" sectionForm | |||
the highest sublayer representation in the OLS corresponding to the bitstream, t | at="of" />) | |||
he following applies:</t> | representation of the | |||
</li></ul> | data that includes the ptl_frame_only_constraint_flag syntax element, | |||
the ptl_multilayer_enabled_flag syntax element, and the | ||||
<ul empty="true"><li> | general_constraints_info( ) syntax structure that apply to the | |||
<t><list style="symbols"> | bitstream in an instance of the profile_tier_level( ) syntax | |||
<t>tier-flag = general_tier_flag</t> | structure.</t> | |||
<t>level-id = general_level_idc</t> | <t>If the interop-constraints parameter is not present, the followin | |||
</list></t> | g <bcp14>MUST</bcp14> be inferred:</t> | |||
</li></ul> | <ul spacing="normal"> | |||
<li>ptl_frame_only_constraint_flag = 1</li> | ||||
<ul empty="true"><li> | <li>ptl_multilayer_enabled_flag = 0</li> | |||
<ul empty="true"><li> | <li>gci_present_flag in the general_constraints_info( ) syntax str | |||
<t>Otherwise, if the tier-flag and level-id are derived from the profile_tie | ucture = 0</li> | |||
r_level( ) syntax structure in an SPS or VPS NAL unit, and the bitstream does no | </ul> | |||
t contain the highest sublayer representation in the OLS corresponding to the bi | <t>Using interop-constraints for capability exchange results in a re | |||
tstream, the following applies, with j being the value of the sprop-sublayer-id | quirement on any bitstream to be compliant with the interop-constraints.</t> | |||
parameter:</t> | </dd> | |||
</li></ul> | <dt>sprop-sublayer-id:</dt> | |||
</li></ul> | <dd> | |||
<t>This parameter <bcp14>MAY</bcp14> be used to indicate the highest | ||||
<ul empty="true"><li> | allowed value of TID in the bitstream. When not present, the value of sprop-su | |||
<t><list style="symbols"> | blayer-id is inferred to be equal to 6.</t> | |||
<t>tier-flag = general_tier_flag</t> | <t>The value of sprop-sublayer-id <bcp14>MUST</bcp14> be in the rang | |||
<t>level-id = sub_layer_level_idc[j]</t> | e of 0 to 6, inclusive.</t> | |||
</list></t> | </dd> | |||
</li></ul> | <dt>sprop-ols-id:</dt> | |||
<dd> | ||||
<t>sub-profile-id:</t> | <t>This parameter <bcp14>MAY</bcp14> be used to indicate the OLS tha | |||
t the bitstream applies to. When not present, the value of sprop-ols-id is infe | ||||
<ul empty="true"><li> | rred to be equal to TargetOlsIdx, as specified in Section 8.1.1 of <xref target= | |||
<t>The value of the parameter is a comma-separated (',') list of data using ba | "VVC"/>. If this optional parameter is present, sprop-vps <bcp14>MUST</bcp14> al | |||
se64 encoding (Section 4 of <xref target="RFC4648"/>) representation without "== | so be present or its content <bcp14>MUST</bcp14> be known a priori at the receiv | |||
" padding.</t> | er.</t> | |||
</li></ul> | <t>The value of sprop-ols-id <bcp14>MUST</bcp14> be in the range of | |||
0 to 256, inclusive.</t> | ||||
<ul empty="true"><li> | <aside><t>Informative note: VVC allows having up to 257 output layer | |||
<t>When used to indicate properties of a bitstream, sub-profile-id is derived | sets indicated in the VPS, as the number of output layer sets minus 2 is indica | |||
from each of the ptl_num_sub_profiles general_sub_profile_idc[i] syntax elements | ted with a field of 8 bits.</t></aside> | |||
that apply to the bitstream in a profile_tier_level( ) syntax structure.</t> | </dd> | |||
</li></ul> | <dt>recv-sublayer-id:</dt> | |||
<dd><t>This parameter <bcp14>MAY</bcp14> be used to signal a recei | ||||
<t>interop-constraints:</t> | ver's choice of the offered or declared sublayer representations in sprop-vps an | |||
d sprop-sps. The value of recv-sublayer-id indicates the TID of the highest subl | ||||
<ul empty="true"><li> | ayer that a receiver supports. When not present, the value of recv-sublayer-id | |||
<t>A base64 encoding (Section 4 of <xref target="RFC4648"/>) representation of | is inferred to be equal to the value of the sprop-sublayer-id parameter in the S | |||
the data that includes the syntax elements ptl_frame_only_constraint_flag and p | DP offer.</t> | |||
tl_multilayer_enabled_flag and the general_constraints_info( ) syntax structure | <t>The value of recv-sublayer-id <bcp14>MUST</bcp14> be in the ran | |||
that apply to the bitstream in an instance of the profile_tier_level( ) syntax s | ge of 0 to 6, inclusive.</t></dd> | |||
tructure.</t> | <dt>recv-ols-id:</dt> | |||
</li></ul> | <dd> | |||
<t>This parameter <bcp14>MAY</bcp14> be used to signal a receiver's | ||||
<ul empty="true"><li> | choice of the offered or declared output layer sets in sprop-vps. The value of | |||
<t>If the interop-constraints parameter is not present, the following MUST be | recv-ols-id indicates the OLS index of the bitstream that a receiver supports. | |||
inferred:</t> | When not present, the value of recv-ols-id is inferred to be equal to the value | |||
</li></ul> | of the sprop-ols-id parameter inferred from or indicated in the SDP offer. When | |||
present, the value of recv-ols-id must be included only when sprop-ols-id was r | ||||
<ul empty="true"><li> | eceived and must refer to an output layer set in the VPS that includes no layers | |||
<t><list style="symbols"> | other than all or a subset of the layers of the OLS referred to by sprop-ols-id | |||
<t>ptl_frame_only_constraint_flag = 1</t> | . If this optional parameter is present, sprop-vps must have been received or i | |||
<t>ptl_multilayer_enabled_flag = 0</t> | ts content must be known a priori at the receiver.</t> | |||
<t>gci_present_flag in the general_constraints_info( ) syntax structure = 0< | <t>The value of recv-ols-id <bcp14>MUST</bcp14> be in the range of 0 | |||
/t> | to 256, inclusive.</t> | |||
</list></t> | </dd> | |||
</li></ul> | <dt>max-recv-level-id:</dt> | |||
<dd> | ||||
<ul empty="true"><li> | <t>This parameter <bcp14>MAY</bcp14> be used to indicate the highest | |||
<t>Using interop-constraints for capability exchange results in a requirement | level a receiver supports.</t> | |||
on any bitstream to be compliant with the interop-constraints.</t> | <t>The value of max-recv-level-id <bcp14>MUST</bcp14> be in the rang | |||
</li></ul> | e of 0 to 255, inclusive.</t> | |||
<t>When max-recv-level-id is not present, the value is inferred to b | ||||
<t>sprop-sublayer-id:</t> | e equal to level-id.</t> | |||
<t>max-recv-level-id <bcp14>MUST NOT</bcp14> be present when the hig | ||||
<ul empty="true"><li> | hest level the receiver supports is not higher than the default level.</t> | |||
<t>This parameter MAY be used to indicate the highest allowed value of TID in | </dd> | |||
the bitstream. When not present, the value of sprop-sublayer-id is inferred to | <dt>sprop-dci:</dt> | |||
be equal to 6.</t> | <dd>This parameter <bcp14>MAY</bcp14> be used to convey a decoding cap | |||
</li></ul> | ability information NAL unit of the bitstream for out-of-band transmission. The | |||
parameter <bcp14>MAY</bcp14> also be used for capability exchange. | ||||
<ul empty="true"><li> | The value of the parameter is a base64 encoding (<xref target="RFC4648" | |||
<t>The value of sprop-sublayer-id MUST be in the range of 0 to 6, inclusive.</ | section="4" sectionFormat="of" />) representation of the decoding capability in | |||
t> | formation NAL unit, as specified in Section 7.3.2.1 of <xref target="VVC"/>.</dd | |||
</li></ul> | > | |||
<dt>sprop-vps:</dt> | ||||
<t>sprop-ols-id:</t> | <dd> | |||
<t>This parameter <bcp14>MAY</bcp14> be used to convey any video par | ||||
<ul empty="true"><li> | ameter set to the NAL unit of the bitstream for out-of-band transmission of vide | |||
<t>This parameter MAY be used to indicate the OLS that the bitstream applies t | o parameter sets. The parameter <bcp14>MAY</bcp14> also be used for capability | |||
o. When not present, the value of sprop-ols-id is inferred to be equal to Targe | exchange and to indicate substream characteristics (i.e., properties of output l | |||
tOlsIdx as specified in 8.1.1 in <xref target="VVC"/>. If this optional paramete | ayer sets and sublayer representations, as defined in <xref target="VVC"/>). The | |||
r is present, sprop-vps MUST also be present or its content MUST be known a prio | value of the parameter is a comma-separated (',') list of base64 encoding (<xre | |||
ri at the receiver.</t> | f target="RFC4648" section="4" sectionFormat="of" />) representations of the vid | |||
</li></ul> | eo parameter set NAL units, as specified in Section 7.3.2.3 of <xref target="VVC | |||
"/>.</t> | ||||
<ul empty="true"><li> | <t>The sprop-vps parameter <bcp14>MAY</bcp14> contain one or more th | |||
<t>The value of sprop-ols-id MUST be in the range of 0 to 256, inclusive.</t> | an one video parameter set NAL units. However, all other video parameter sets co | |||
</li></ul> | ntained in the sprop-vps parameter <bcp14>MUST</bcp14> be consistent with the fi | |||
rst video parameter set in the sprop-vps parameter. A video parameter set vpsB i | ||||
<ul empty="true"><li> | s said to be consistent with another video parameter set vpsA if the number of O | |||
<ul empty="true"><li> | LSs in vpsA and vpsB are the same and any decoder that conforms to the profile, | |||
<t>Informative note: VVC allows having up to 257 output layer sets indicated | tier, level, and constraints indicated by the data starting from the syntax elem | |||
in the VPS as the number of output layer sets minus 2 is indicated with a field | ent general_profile_idc to the syntax structure general_constraints_info(), incl | |||
of 8 bits.</t> | usive, in the profile_tier_level( ) syntax structure corresponding to any OLS w | |||
</li></ul> | ith index olsIdx in vpsA can decode any CVS(s) referencing vpsB when TargetOlsId | |||
</li></ul> | x is equal to olsIdx that conforms to the profile, tier, level, and constraints | |||
indicated by the data starting from the syntax element general_profile_idc to th | ||||
<t>recv-sublayer-id:</t> | e syntax structure general_constraints_info(), inclusive, in the profile_tier_l | |||
evel( ) syntax structure corresponding to the OLS with index TargetOlsIdx in vps | ||||
<ul empty="true"><li> | B.</t> | |||
<t>This parameter MAY be used to signal a receiver's choice of the offered or | </dd> | |||
declared sublayer representations in the sprop-vps and sprop-sps. The value of r | <dt>sprop-sps:</dt> | |||
ecv-sublayer-id indicates the TID of the highest sublayer that a receiver suppor | <dd> | |||
ts. When not present, the value of recv-sublayer-id is inferred to be equal to | <t>This parameter <bcp14>MAY</bcp14> be used to convey sequence para | |||
the value of the sprop-sublayer-id parameter in the SDP offer.</t> | meter set NAL units of the bitstream for out-of-band transmission of sequence pa | |||
</li></ul> | rameter sets. The value of the parameter is a comma-separated (',') list of bas | |||
e64 encoding (<xref target="RFC4648" section="4" sectionFormat="of" />) represen | ||||
<ul empty="true"><li> | tations of the sequence parameter set NAL units, as specified in Section 7.3.2.4 | |||
<t>The value of recv-sublayer-id MUST be in the range of 0 to 6, inclusive.</t | of <xref target="VVC"/>.</t> | |||
> | <t>A sequence parameter set spsB is said to be consistent with anot | |||
</li></ul> | her sequence parameter set spsA if any decoder that conforms to the profile, tie | |||
r, level, and constraints indicated by the data starting from the syntax element | ||||
<t>recv-ols-id:</t> | general_profile_idc to the syntax structure general_constraints_info(), inclusi | |||
ve, in the profile_tier_level( ) syntax structure in spsA can decode any CLVS(s | ||||
<ul empty="true"><li> | ) referencing spsB that conforms to the profile, tier, level, and constraints in | |||
<t>This parameter MAY be used to signal a receiver's choice of the offered or | dicated by the data starting from the syntax element general_profile_idc to the | |||
declared output layer sets in the sprop-vps. The value of recv-ols-id indicates | syntax structure general_constraints_info(), inclusive, in the profile_tier_leve | |||
the OLS index of the bitstream that a receiver supports. When not present, the | l( ) syntax structure in spsB.</t> | |||
value of recv-ols-id is inferred to be equal to value of the sprop-ols-id param | </dd> | |||
eter inferred from or indicated in the SDP offer. When present, the value of re | <dt>sprop-pps:</dt> | |||
cv-ols-id must be included only when sprop-ols-id was received and must refer to | <dd> | |||
an output layer set in the VPS that includes no layers other than all or a subs | <t>This parameter <bcp14>MAY</bcp14> be used to convey picture param | |||
et of the layers of the OLS referred to by sprop-ols-id. If this optional param | eter set NAL units of the bitstream for out-of-band transmission of picture para | |||
eter is present, sprop-vps must have been received or its content must be known | meter sets. The value of the parameter is a comma-separated (',') list of base6 | |||
a priori at the receiver.</t> | 4 encoding (<xref target="RFC4648" section="4" sectionFormat="of" />) representa | |||
</li></ul> | tions of the picture parameter set NAL units, as specified in Section 7.3.2.5 of | |||
<xref target="VVC"/>.</t> | ||||
<ul empty="true"><li> | </dd> | |||
<t>The value of recv-ols-id MUST be in the range of 0 to 256, inclusive.</t> | <dt>sprop-sei:</dt> | |||
</li></ul> | <dd> | |||
<t>This parameter <bcp14>MAY</bcp14> be used to convey one or more S | ||||
<t>max-recv-level-id:</t> | EI messages that describe bitstream characteristics. When present, a decoder ca | |||
n rely on the bitstream characteristics that are described in the SEI messages f | ||||
<ul empty="true"><li> | or the entire duration of the session, independently from the persistence scopes | |||
<t>This parameter MAY be used to indicate the highest level a receiver support | of the SEI messages, as specified in <xref target="VSEI"/>.</t> | |||
s.</t> | <t>The value of the parameter is a comma-separated (',') list of bas | |||
</li></ul> | e64 encoding (<xref target="RFC4648" section="4" sectionFormat="of" />) represen | |||
tations of SEI NAL units, as specified in <xref target="VSEI"/>.</t> | ||||
<ul empty="true"><li> | <aside><t>Informative note: Intentionally, no list of applicable or | |||
<t>The value of max-recv-level-id MUST be in the range of 0 to 255, inclusive. | inapplicable SEI messages is specified here. Conveying certain SEI messages in | |||
</t> | sprop-sei may be sensible in some application scenarios and meaningless in other | |||
</li></ul> | s. However, a few examples are described below:</t> | |||
<t>In an environment where the bitstream was created from film-based | ||||
<ul empty="true"><li> | source material, and no splicing is going to occur during the lifetime of the s | |||
<t>When max-recv-level-id is not present, the value is inferred to be equal to | ession, the film grain characteristics SEI message is likely meaningful, and sen | |||
level-id.</t> | ding it in sprop-sei, rather than in the bitstream at each entry point, may help | |||
</li></ul> | with saving bits and allows one to configure the renderer only once, avoiding u | |||
nwanted artifacts.</t> | ||||
<ul empty="true"><li> | <t>Examples for SEI messages that would be meaningless to be conveyed | |||
<t>max-recv-level-id MUST NOT be present when the highest level the receiver s | in sprop-sei include the decoded picture hash SEI message (it is close to impos | |||
upports is not higher than the default level.</t> | sible that all decoded pictures have the same hashtag) or the filler payload SEI | |||
</li></ul> | message (as there is no point in just having more bits in SDP).</t> | |||
</aside> | ||||
<t>sprop-dci:</t> | </dd> | |||
<dt>max-lsr:</dt> | ||||
<ul empty="true"><li> | <dd> | |||
<t>This parameter MAY be used to convey a decoding capability information NAL | <t>The max-lsr <bcp14>MAY</bcp14> be used to signal the capabilities | |||
unit of the bitstream for out-of-band transmission. The parameter MAY also be u | of a receiver implementation and <bcp14>MUST NOT</bcp14> be used for any other | |||
sed for capability exchange. The value of the parameter a base64 encoding (Sect | purpose. The value of max-lsr is an integer indicating the maximum processing ra | |||
ion 4 of <xref target="RFC4648"/>) representations of the decoding capability in | te in units of luma samples per second. The max-lsr parameter signals that the | |||
formation NAL unit as specified in Section 7.3.2.1 of <xref target="VVC"/>.</t> | receiver is capable of decoding video at a higher rate than is required by the h | |||
</li></ul> | ighest level.</t> | |||
<aside><t>Informative note: When the <bcp14>OPTIONAL</bcp14> media t | ||||
<t>sprop-vps:</t> | ype parameters are | |||
used to signal the properties of a bitstream, and max-lsr is | ||||
<ul empty="true"><li> | not present, the values of tier-flag, profile-id, sub-profile-id, | |||
<t>This parameter MAY be used to convey any video parameter set NAL unit of th | interop-constraints, and level-id must always be such that | |||
e bitstream for out-of-band transmission of video parameter sets. The parameter | the bitstream complies fully with the specified profile, | |||
MAY also be used for capability exchange and to indicate sub-stream characteris | sub-profile, tier, level, and interop-constraints.</t></aside> | |||
tics (i.e., properties of output layer sets and sublayer representations as defi | <t>When max-lsr is signaled, the receiver <bcp14>MUST</bcp14> be abl | |||
ned in <xref target="VVC"/>). The value of the parameter is a comma-separated (' | e to decode bitstreams that conform to the highest level, with the exception tha | |||
,') list of base64 encoding (Section 4 of <xref target="RFC4648"/>) representati | t the MaxLumaSr value in Table A.3 of <xref target="VVC"/> for the highest level | |||
ons of the video parameter set NAL units as specified in Section 7.3.2.3 of <xre | is replaced with the value of max-lsr. Senders <bcp14>MAY</bcp14> use this kno | |||
f target="VVC"/>.</t> | wledge to send pictures of a given size at a higher picture rate than is indicat | |||
</li></ul> | ed in the highest level.</t> | |||
<t>When not present, the value of max-lsr is inferred to be equal to | ||||
<ul empty="true"><li> | the value of MaxLumaSr given in Table A.3 of <xref target="VVC"/> for the highe | |||
<t>The sprop-vps parameter MAY contain one or more than one video parameter se | st level.</t> | |||
t NAL units. However, all other video parameter sets contained in the sprop-vps | <t>The value of max-lsr <bcp14>MUST</bcp14> be in the range of MaxLu | |||
parameter MUST be consistent with the first video parameter set in the sprop-vps | maSr to 16 * MaxLumaSr, inclusive, where MaxLumaSr is given in Table A.3 of <xre | |||
parameter. A video parameter set vpsB is said to be consistent with another vi | f target="VVC"/> for the highest level.</t> | |||
deo parameter set vpsA if the number of OLSs in vpsA and vpsB is the same and an | </dd> | |||
y decoder that conforms to the profile, tier, level, and constraints indicated b | <dt>max-fps:</dt> | |||
y the data starting from the syntax element general_profile_idc to the syntax st | <dd> | |||
ructure general_constraints_info(), inclusive, in the profile_tier_level( ) syn | <t>The value of max-fps is an integer indicating the maximum picture | |||
tax structure corresponding to any OLS with index olsIdx in vpsA can decode any | rate in units of pictures per 100 seconds that can be effectively processed by | |||
CVS(s) referencing vpsB when TargetOlsIdx is equal to olsIdx that conforms to th | the receiver. The max-fps parameter <bcp14>MAY</bcp14> be used to signal that t | |||
e profile, tier, level, and constraints indicated by the data starting from the | he receiver has a constraint in that it is not capable of processing video effec | |||
syntax element general_profile_idc to the syntax structure general_constraints_i | tively at the full picture rate that is implied by the highest level and, when p | |||
nfo(), inclusive, in the profile_tier_level( ) syntax structure corresponding t | resent, max-lsr.</t> | |||
o the OLS with index TargetOlsIdx in vpsB.</t> | <t>The value of max-fps is not necessarily the picture rate at which | |||
</li></ul> | the maximum picture size can be sent; it constitutes a constraint on maximum pi | |||
cture rate for all resolutions.</t> | ||||
<t>sprop-sps:</t> | <aside><t>Informative note: The max-fps parameter is semantically di | |||
fferent from max-lsr in that max-fps is used to signal a constraint, lowering th | ||||
<ul empty="true"><li> | e maximum picture rate from what is implied by other parameters.</t></aside> | |||
<t>This parameter MAY be used to convey sequence parameter set NAL units of th | <t>The encoder <bcp14>MUST</bcp14> use a picture rate equal to or le | |||
e bitstream for out-of-band transmission of sequence parameter sets. The value | ss than this value. In cases where the max-fps parameter is absent, the encoder | |||
of the parameter is a comma-separated (',') list of base64 encoding (Section 4 o | is free to choose any picture rate according to the highest level and any signa | |||
f <xref target="RFC4648"/>) representations of the sequence parameter set NAL un | led optional parameters.</t> | |||
its as specified in Section 7.3.2.4 of <xref target="VVC"/>.</t> | <t>The value of max-fps <bcp14>MUST</bcp14> be smaller than or equal | |||
</li></ul> | to the full picture rate that is implied by the highest level and, when present | |||
, max-lsr.</t> | ||||
<ul empty="true"><li> | </dd> | |||
<t>A sequence parameter set spsB is said to be consistent with another sequen | <dt>sprop-max-don-diff:</dt> | |||
ce parameter set spsA if any decoder that conforms to the profile, tier, level, | <dd> | |||
and constraints indicated by the data starting from the syntax element general_p | <t>If there is no NAL unit naluA that is followed in transmission or | |||
rofile_idc to the syntax structure general_constraints_info(), inclusive, in the | der by any NAL unit preceding naluA in decoding order (i.e., the transmission or | |||
profile_tier_level( ) syntax structure in spsA can decode any CLVS(s) referenc | der of the NAL units is the same as the decoding order), the value of this param | |||
ing spsB that conforms to the profile, tier, level, and constraints indicated by | eter <bcp14>MUST</bcp14> be equal to 0.</t> | |||
the data starting from the syntax element general_profile_idc to the syntax str | <t>Otherwise, this parameter specifies the maximum absolute differen | |||
ucture general_constraints_info(), inclusive, in the profile_tier_level( ) synta | ce between the decoding order number (i.e., AbsDon) values of any two NAL units | |||
x structure in spsB.</t> | naluA and naluB, where naluA follows naluB in decoding order and precedes naluB | |||
</li></ul> | in transmission order.</t> | |||
<t>The value of sprop-max-don-diff <bcp14>MUST</bcp14> be an integer | ||||
<t>sprop-pps:</t> | in the range of 0 to 32767, inclusive.</t> | |||
<t>When not present, the value of sprop-max-don-diff is inferred to | ||||
<ul empty="true"><li> | be equal to 0.</t> | |||
<t>This parameter MAY be used to convey picture parameter set NAL units of the | </dd> | |||
bitstream for out-of-band transmission of picture parameter sets. The value of | <dt>sprop-depack-buf-bytes:</dt> | |||
the parameter is a comma-separated (',') list of base64 encoding (Section 4 of | <dd> | |||
<xref target="RFC4648"/>) representations of the picture parameter set NAL units | <t>This parameter signals the required size of the de-packetization | |||
as specified in Section 7.3.2.5 of <xref target="VVC"/>.</t> | buffer in units of bytes. The value of the parameter <bcp14>MUST</bcp14> be gre | |||
</li></ul> | ater than or equal to the maximum buffer occupancy (in units of bytes) of the de | |||
-packetization buffer, as specified in <xref target="DepacketizationProcess"/>.< | ||||
<t>sprop-sei:</t> | /t> | |||
<t>The value of sprop-depack-buf-bytes <bcp14>MUST</bcp14> be an int | ||||
<ul empty="true"><li> | eger in the range of 0 to 4294967295, inclusive.</t> | |||
<t>This parameter MAY be used to convey one or more SEI messages that describe | <t>When sprop-max-don-diff is present and greater than 0, this param | |||
bitstream characteristics. When present, a decoder can rely on the bitstream c | eter <bcp14>MUST</bcp14> be present and the value <bcp14>MUST</bcp14> be greater | |||
haracteristics that are described in the SEI messages for the entire duration of | than 0. When not present, the value of sprop-depack-buf-bytes is inferred to b | |||
the session, independently from the persistence scopes of the SEI messages as s | e equal to 0.</t> | |||
pecified in <xref target="VSEI"/>.</t> | <aside><t>Informative note: The value of sprop-depack-buf-bytes indi | |||
</li></ul> | cates the required size of the de-packetization buffer only. When network jitte | |||
r can occur, an appropriately sized jitter buffer has to be available as well.</ | ||||
<ul empty="true"><li> | t></aside> | |||
<t>The value of the parameter is a comma-separated (',') list of base64 encodi | </dd> | |||
ng (Section 4 of <xref target="RFC4648"/>) representations of SEI NAL units as s | <dt>depack-buf-cap:</dt> | |||
pecified in <xref target="VSEI"/>.</t> | <dd> | |||
</li></ul> | <t>This parameter signals the capabilities of a receiver implementat | |||
ion and indicates the amount of de-packetization buffer space in units of bytes | ||||
<ul empty="true"><li> | that the receiver has available for reconstructing the NAL unit decoding order f | |||
<ul empty="true"><li> | rom NAL units carried in the RTP stream. A receiver is able to handle any RTP s | |||
<t>Informative note: Intentionally, no list of applicable or inapplicable SE | tream for which the value of the sprop-depack-buf-bytes parameter is smaller tha | |||
I messages is specified here. Conveying certain SEI messages in sprop-sei may b | n or equal to this parameter.</t> | |||
e sensible in some application scenarios and meaningless in others. However, a | <t>When not present, the value of depack-buf-cap is inferred to be e | |||
few examples are described below:</t> | qual to 4294967295. The value of depack-buf-cap <bcp14>MUST</bcp14> be an integ | |||
</li></ul> | er in the range of 1 to 4294967295, inclusive.</t> | |||
</li></ul> | <aside><t>Informative note: depack-buf-cap indicates the maximum pos | |||
sible size of the de-packetization buffer of the receiver only, without allowing | ||||
<ul empty="true"><li> | for network jitter.</t></aside> | |||
<ul empty="true"><li> | </dd> | |||
<t>1) In an environment where the bitstream was created from film-based sour | </dl> | |||
ce material, and no splicing is going to occur during the lifetime of the sessio | </section> | |||
n, the film grain characteristics SEI message is likely meaningful, and sending | <section anchor="sdp-parameters"> | |||
it in sprop-sei rather than in the bitstream at each entry point may help with s | <name>SDP Parameters</name> | |||
aving bits and allows one to configure the renderer only once, avoiding unwanted | <t>The receiver <bcp14>MUST</bcp14> ignore any parameter unspecified in | |||
artifacts.</t> | this memo.</t> | |||
</li></ul> | <section anchor="mapping-of-payload-type-parameters-to-sdp"> | |||
</li></ul> | <name>Mapping of Payload Type Parameters to SDP</name> | |||
<t>The media type video/H266 string is mapped to fields in the Session | ||||
<ul empty="true"><li> | ||||
<ul empty="true"><li> | ||||
<t>2) Examples for SEI messages that would be meaningless to be conveyed in | ||||
sprop-sei include the decoded picture hash SEI message (it is close to impossibl | ||||
e that all decoded pictures have the same hashtag) or the filler payload SEI mes | ||||
sage (as there is no point in just having more bits in SDP).</t> | ||||
</li></ul> | ||||
</li></ul> | ||||
<t>max-lsr:</t> | ||||
<ul empty="true"><li> | ||||
<t>The max-lsr MAY be used to signal the capabilities of a receiver implementa | ||||
tion and MUST NOT be used for any other purpose. The value of max-lsr is an inte | ||||
ger indicating the maximum processing rate in units of luma samples per second. | ||||
The max-lsr parameter signals that the receiver is capable of decoding video at | ||||
a higher rate than is required by the highest level.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<ul empty="true"><li> | ||||
<t>Informative note: When the OPTIONAL media type parameters are used to sig | ||||
nal the properties of a bitstream, and max-lsr is not present, the values of tie | ||||
r-flag, profile-id, sub-profile-id interop-constraints, and level-id must always | ||||
be such that the bitstream complies fully with the specified profile, tier, and | ||||
level.</t> | ||||
</li></ul> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>When max-lsr is signaled, the receiver MUST be able to decode bitstreams th | ||||
at conform to the highest level, with the exception that the MaxLumaSr value in | ||||
Table 136 of <xref target="VVC"/> for the highest level is replaced with the val | ||||
ue of max-lsr. Senders MAY use this knowledge to send pictures of a given size | ||||
at a higher picture rate than is indicated in the highest level.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>When not present, the value of max-lsr is inferred to be equal to the value | ||||
of MaxLumaSr given in Table 136 of <xref target="VVC"/> for the highest level.< | ||||
/t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>The value of max-lsr MUST be in the range of MaxLumaSr to 16 * MaxLumaSr, i | ||||
nclusive, where MaxLumaSr is given in Table 136 of <xref target="VVC"/> for the | ||||
highest level.</t> | ||||
</li></ul> | ||||
<t>max-fps:</t> | ||||
<ul empty="true"><li> | ||||
<t>The value of max-fps is an integer indicating the maximum picture rate in u | ||||
nits of pictures per 100 seconds that can be effectively processed by the receiv | ||||
er. The max-fps parameter MAY be used to signal that the receiver has a constra | ||||
int in that it is not capable of processing video effectively at the full pictur | ||||
e rate that is implied by the highest level and, when present, max-lsr.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>The value of max-fps is not necessarily the picture rate at which the maxim | ||||
um picture size can be sent, it constitutes a constraint on maximum picture rate | ||||
for all resolutions.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<ul empty="true"><li> | ||||
<t>Informative note: The max-fps parameter is semantically different from ma | ||||
x-lsr in that max-fps is used to signal a constraint, lowering the maximum pictu | ||||
re rate from what is implied by other parameters.</t> | ||||
</li></ul> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>The encoder MUST use a picture rate equal to or less than this value. In c | ||||
ases where the max-fps parameter is absent, the encoder is free to choose any pi | ||||
cture rate according to the highest level and any signaled optional parameters.< | ||||
/t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>The value of max-fps MUST be smaller than or equal to the full picture rate | ||||
that is implied by the highest level and, when present, max-lsr.</t> | ||||
</li></ul> | ||||
<t>sprop-max-don-diff:</t> | ||||
<ul empty="true"><li> | ||||
<t>If there is no NAL unit naluA that is followed in transmission order by any | ||||
NAL unit preceding naluA in decoding order (i.e., the transmission order of the | ||||
NAL units is the same as the decoding order), the value of this parameter MUST | ||||
be equal to 0.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>Otherwise, this parameter specifies the maximum absolute difference between | ||||
the decoding order number (i.e., AbsDon) values of any two NAL units naluA and | ||||
naluB, where naluA follows naluB in decoding order and precedes naluB in transmi | ||||
ssion order.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>The value of sprop-max-don-diff MUST be an integer in the range of 0 to 327 | ||||
67, inclusive.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>When not present, the value of sprop-max-don-diff is inferred to be equal t | ||||
o 0.</t> | ||||
</li></ul> | ||||
<t>sprop-depack-buf-bytes:</t> | ||||
<ul empty="true"><li> | ||||
<t>This parameter signals the required size of the de-packetization buffer in | ||||
units of bytes. The value of the parameter MUST be greater than or equal to the | ||||
maximum buffer occupancy (in units of bytes) of the de-packetization buffer as | ||||
specified in Section 6.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>The value of sprop-depack-buf-bytes MUST be an integer in the range of 0 to | ||||
4294967295, inclusive.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>When sprop-max-don-diff is present and greater than 0, this parameter MUST | ||||
be present and the value MUST be greater than 0. When not present, the value of | ||||
sprop-depack-buf-bytes is inferred to be equal to 0.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<ul empty="true"><li> | ||||
<t>Informative note: The value of sprop-depack-buf-bytes indicates the requi | ||||
red size of the de-packetization buffer only. When network jitter can occur, an | ||||
appropriately sized jitter buffer has to be available as well.</t> | ||||
</li></ul> | ||||
</li></ul> | ||||
<t>depack-buf-cap:</t> | ||||
<ul empty="true"><li> | ||||
<t>This parameter signals the capabilities of a receiver implementation and in | ||||
dicates the amount of de-packetization buffer space in units of bytes that the r | ||||
eceiver has available for reconstructing the NAL unit decoding order from NAL un | ||||
its carried in the RTP stream. A receiver is able to handle any RTP stream for | ||||
which the value of the sprop-depack-buf-bytes parameter is smaller than or equal | ||||
to this parameter.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t>When not present, the value of depack-buf-cap is inferred to be equal to 42 | ||||
94967295. The value of depack-buf-cap MUST be an integer in the range of 1 to 4 | ||||
294967295, inclusive.</t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<ul empty="true"><li> | ||||
<t>Informative note: depack-buf-cap indicates the maximum possible size of t | ||||
he de-packetization buffer of the receiver only, without allowing for network ji | ||||
tter.</t> | ||||
</li></ul> | ||||
</li></ul> | ||||
</section> | ||||
<section anchor="sdp-parameters"><name>SDP Parameters</name> | ||||
<t>The receiver MUST ignore any parameter unspecified in this memo.</t> | ||||
<section anchor="mapping-of-payload-type-parameters-to-sdp"><name>Mapping of Pay | ||||
load Type Parameters to SDP</name> | ||||
<t>The media type video/H266 string is mapped to fields in the Session | ||||
Description Protocol (SDP) <xref target="RFC8866"/> as follows:</t> | Description Protocol (SDP) <xref target="RFC8866"/> as follows:</t> | |||
<ul spacing="normal"> | ||||
<t><list style="symbols"> | <li>The media name in the "m=" line of SDP <bcp14>MUST</bcp14> be vi | |||
<t>The media name in the "m=" line of SDP MUST be video.</t> | deo.</li> | |||
<t>The encoding name in the "a=rtpmap" line of SDP MUST be H266 (the media sub | <li>The encoding name in the "a=rtpmap" line of SDP <bcp14>MUST</bcp | |||
type).</t> | 14> be H266 (the media subtype).</li> | |||
<t>The clock rate in the "a=rtpmap" line MUST be 90000.</t> | <li>The clock rate in the "a=rtpmap" line <bcp14>MUST</bcp14> be 900 | |||
<t>The OPTIONAL parameters profile-id, tier-flag, sub-profile-id, interop-cons | 00.</li> | |||
traints, level-id, sprop-sublayer-id, sprop-ols-id, recv-sublayer-id, recv-ols-i | <li>The <bcp14>OPTIONAL</bcp14> parameters profile-id, tier-flag, su | |||
d, max-recv-level-id, max-lsr, max-fps, sprop-max-don-diff, sprop-depack-buf-byt | b-profile-id, interop-constraints, level-id, sprop-sublayer-id, sprop-ols-id, re | |||
es and depack-buf-cap, when present, MUST be included in the "a=fmtp" line of SD | cv-sublayer-id, recv-ols-id, max-recv-level-id, max-lsr, max-fps, sprop-max-don- | |||
P. The fmtp line is expressed as a media type string, in the form of a semicolo | diff, sprop-depack-buf-bytes, and depack-buf-cap, when present, <bcp14>MUST</bcp | |||
n-separated list of parameter=value pairs.</t> | 14> be included in the "a=fmtp" line of SDP. The fmtp line is expressed as a me | |||
<t>The OPTIONAL parameter sprop-vps, sprop-sps, sprop-pps, sprop-sei, and spro | dia type string, in the form of a semicolon-separated list of parameter=value pa | |||
p-dci, when present, MUST be included in the "a=fmtp" line of SDP or conveyed us | irs.</li> | |||
ing the "fmtp" source attribute as specified in Section 6.3 of <xref target="RFC | <li><t>The <bcp14>OPTIONAL</bcp14> parameters sprop-vps, sprop-sps, | |||
5576"/>. For a particular media format (i.e., RTP payload type), sprop-vps, spro | sprop-pps, sprop-sei, and sprop-dci, when present, <bcp14>MUST</bcp14> be includ | |||
p-sps, sprop-pps, sprop-sei, or sprop-dci MUST NOT be both included in the "a=fm | ed in the "a=fmtp" line of SDP or conveyed using the "fmtp" source attribute as | |||
tp" line of SDP and conveyed using the "fmtp" source attribute. When included i | specified in <xref target="RFC5576" section="6.3" sectionFormat="of" />. For a p | |||
n the "a=fmtp" line of SDP, those parameters are expressed as a media type strin | articular media format (i.e., RTP payload type), sprop-vps, sprop-sps, sprop-pps | |||
g, in the form of a semicolon-separated list of parameter=value pairs. When con | , sprop-sei, or sprop-dci <bcp14>MUST NOT</bcp14> be both included in the "a=fmt | |||
veyed in the "a=fmtp" line of SDP for a particular payload type, the parameters | p" line of SDP and conveyed using the "fmtp" source attribute. When included in | |||
sprop-vps, sprop-sps, sprop-pps, sprop-sei, and sprop-dci MUST be applied to eac | the "a=fmtp" line of SDP, those parameters are expressed as a media type string | |||
h SSRC with the payload type. When conveyed using the "fmtp" source attribute, | , in the form of a semicolon-separated list of parameter=value pairs. When conv | |||
these parameters are only associated with the given source and payload type as p | eyed in the "a=fmtp" line of SDP for a particular payload type, the parameters s | |||
arts of the "fmtp" source attribute.</t> | prop-vps, sprop-sps, sprop-pps, sprop-sei, and sprop-dci <bcp14>MUST</bcp14> be | |||
</list></t> | applied to each SSRC with the payload type. When conveyed using the "fmtp" sour | |||
ce attribute, these parameters are only associated with the given source and pay | ||||
<ul empty="true"><li> | load type as parts of the "fmtp" source attribute.</t> | |||
<ul empty="true"><li> | </li> | |||
<t>Informative note: Conveyance of sprop-vps, sprop-sps, and sprop-pps using | </ul> | |||
the "fmtp" source attribute allows for out-of-band transport of parameter sets | <aside><t>Informative note: Conveyance of sprop-vps, sprop-sps, an | |||
in topologies like Topo-Video-switch-MCU as specified in <xref target="RFC7667"/ | d sprop-pps using the "fmtp" source attribute allows for out-of-band transport o | |||
></t> | f parameter sets in topologies like Topo-Video-switch-MCU, as specified in <xref | |||
</li></ul> | target="RFC7667"/>.</t></aside> | |||
</li></ul> | <t>A general usage of media representation in SDP is as follows:</t> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
<t>An general usage of media representation in SDP is as follows:</t> | ||||
<figure><artwork><![CDATA[ | ||||
m=video 49170 RTP/AVP 98 | m=video 49170 RTP/AVP 98 | |||
a=rtpmap:98 H266/90000 | a=rtpmap:98 H266/90000 | |||
a=fmtp:98 profile-id=1; | a=fmtp:98 profile-id=1; | |||
sprop-vps=<video parameter sets data>; | sprop-vps=<video parameter sets data>; | |||
sprop-sps=<sequence parameter set data>; | sprop-sps=<sequence parameter set data>; | |||
sprop-pps=<picture parameter set data>; | sprop-pps=<picture parameter set data>; | |||
]]></artwork></figure> | ]]></artwork> | |||
<t>A SIP offer/answer exchange wherein both parties are expected to bo | ||||
<t>A SIP Offer/Answer exchange wherein both parties are expected to both send an | th send and receive could look like the following. Only the media codec-specifi | |||
d receive could look like the following. Only the media codec-specific parts of | c parts of the SDP are shown. Some lines are wrapped due to text constraints.</ | |||
the SDP are shown. Some lines are wrapped due to text constraints.</t> | t> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
<figure><artwork><![CDATA[ | ||||
Offerer->Answerer: | Offerer->Answerer: | |||
m=video 49170 RTP/AVP 98 | m=video 49170 RTP/AVP 98 | |||
a=rtpmap:98 H266/90000 | a=rtpmap:98 H266/90000 | |||
a=fmtp:98 profile-id=1; level_id=83; | a=fmtp:98 profile-id=1; level_id=83; | |||
]]></artwork></figure> | ]]></artwork> | |||
<t>The above represents an offer for symmetric video communication usi | ||||
<t>The above represents an offer for symmetric video communication using <xref t | ng <xref target="VVC"/> and its payload specification at the main profile and le | |||
arget="VVC"/> and it's payload specification, at the main profile and level 5.1 | vel 5.1 (and as the levels are downgradable, all lower levels). Informally spea | |||
(and, as the levels are downgradable, all lower levels. Informally speaking, th | king, this offer tells the receiver of the offer that the sender is willing to r | |||
is offer tells the receiver of the offer that the sender is willing to receive u | eceive up to 4Kp60 resolution at the maximum bitrates specified in <xref target= | |||
p to 4Kp60 resolution at the maximum bitrates specified in <xref target="VVC"/>. | "VVC"/>. At the same time, if this offer were accepted "as is", the offer can e | |||
At the same time, if this offer were accepted “as is”, the offer can expect th | xpect that the answerer would be able to receive and properly decode H.266 media | |||
at the answerer would be able to receive and properly decode H.266 media up to a | up to and including level 5.1.</t> | |||
nd including level 5.1.</t> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
<figure><artwork><![CDATA[ | ||||
Answerer->Offerer: | Answerer->Offerer: | |||
m=video 49170 RTP/AVP 98 | m=video 49170 RTP/AVP 98 | |||
a=rtpmap:98 H266/90000 | a=rtpmap:98 H266/90000 | |||
a=fmtp:98 profile-id=1; level_id=67 | a=fmtp:98 profile-id=1; level_id=67 | |||
]]></artwork></figure> | ]]></artwork> | |||
<t>With this answer to the offer above, the system receiving the offer | ||||
<t>With this answer to the offer above, the system receiving the offer advises t | advises the offerer that it is incapable of handing H.266 at level 5.1 but is c | |||
he offerer that it is incapable of handing H.266 at level 5.1 but is capable of | apable of decoding 1080p60. As H.266 video codecs must support decoding at all | |||
decoding 1080p60. As H.266 video codecs must support decoding at all levels bel | levels below the maximum level they implement, the resulting user experience wou | |||
ow the maximum level they implement, the resulting user experience would likely | ld likely be that both systems send video at 1080p60. However, nothing prevents | |||
be that both systems send video at 1080p60. However, nothing prevents an encode | an encoder from further downgrading its sending to, for example, 720p30 if it w | |||
r from further downgrading its sending to, for example 720p30 if it were short o | ere short of cycles or bandwidth or for other reasons.</t> | |||
f cycles, bandwidth, or for other reasons.</t> | </section> | |||
<section anchor="sdpoa"> | ||||
</section> | <name>Usage with SDP Offer/Answer Model</name> | |||
<section anchor="sdpoa"><name>Usage with SDP Offer/Answer Model</name> | <t>This section describes the negotiation of unicast messages using th | |||
e offer/answer model as described in <xref target="RFC3264"/> and its updates. | ||||
<t>This section describes the negotiation of unicast messages using the offer-an | The section is split into subsections, covering a) media format configurations n | |||
swer model as described in <xref target="RFC3264"/> and its updates. The sectio | ot involving non-temporal scalability; b) scalable media format configurations; | |||
n is split into subsections, covering a) media format configurations not involvi | c) the description of the use of those parameters not involving the media config | |||
ng non-temporal scalability; b) scalable media format configurations; c) the des | uration itself but rather the parameters of the payload format design; and d) mu | |||
cription of the use of those parameters not involving the media configuration it | lticast.</t> | |||
self but rather the parameters of the payload format design; and d) multicast.</ | <section anchor="non-scalable-media-format-configuration"> | |||
t> | <name>Non-scalable Media Format Configuration</name> | |||
<t>A non-scalable VVC media configuration is such a configuration wh | ||||
<section anchor="non-scalable-media-format-configuration"><name>Non-scalable med | ere no non-temporal scalability mechanisms are allowed. In <xref target="VVC"/> | |||
ia format configuration</name> | version 1, it is implied that general_profile_idc indicates one of the followin | |||
g profiles: Main 10, Main 10 Still Picture, Main 10 4:4:4, or Main 10 4:4:4 Stil | ||||
<t>A non-scalable VVC media configuration is such a configuration where no non-t | l Picture, with general_profile_idc values of 1, 65, 33, and 97, respectively. | |||
emporal scalability mechanisms are allowed. In <xref target="VVC"/> version 1, | Note that non-scalable media configurations include temporal scalability inline | |||
that implies that general_profile_idc indicates one of the following profiles: M | with VVC's design philosophy and profile structure.</t> | |||
ain10, Main10 Still Picture, Main 10 4:4:4, Main10 4:4:4 Still Picture, with gen | <t>The following limitations and rules pertaining to the media confi | |||
eral_profile_idc values of 1, 65, 33, and 97, respectively. Note that non-scala | guration apply:</t> | |||
ble media configurations includes temporal scalability, inline with VVC’s design | <ul spacing="normal"> | |||
philosophy and profile structure.</t> | <li><t>The parameters identifying a media format configuration for | |||
VVC are profile-id, tier-flag, sub-profile-id, level-id, and interop-constraint | ||||
<t>The following limitations and rules pertaining to the media configuration app | s. These media configuration parameters, except level-id, <bcp14>MUST</bcp14> b | |||
ly:</t> | e used symmetrically.</t> | |||
<t>The answerer <bcp14>MUST</bcp14> structure its answer accordi | ||||
<t><list style="symbols"> | ng to one of the following three options:</t> | |||
<t>The parameters identifying a media format configuration for VVC are profile | <ol spacing="normal"> | |||
-id, tier-flag, sub-profile-id, level-id, and interop-constraints. These media | <li>maintain all configuration parameters with the values remai | |||
configuration parameters, except level-id, MUST be used symmetrically.</t> | ning the same as in the offer for the media format (payload type), with the exce | |||
</list></t> | ption that the value of level-id is changeable as long as the highest level indi | |||
cated by the answer is not higher than that indicated by the offer;</li> | ||||
<ul empty="true"><li> | <li>include in the answer the recv-sublayer-id parameter, with | |||
<t>The answerer MUST structure its answer in according to one of the following | a value less than the sprop-sublayer-id parameter in the offer, for the media fo | |||
three options:</t> | rmat (payload type), and maintain all configuration parameters with the values r | |||
</li></ul> | emaining the same as in the offer for the media format (payload type), with the | |||
exception that the value of level-id is changeable as long as the highest level | ||||
<ul empty="true"><li> | indicated by the answer is not higher than the level indicated by sprop-sps or s | |||
<t>1) maintain all configuration parameters with the values remaining the same | prop-vps in offer for the chosen sublayer representation; or</li> | |||
as in the offer for the media format (payload type), with the exception that th | <li>remove the media format (payload type) completely (when one | |||
e value of level-id is changeable as long as the highest level indicated by the | or more of the parameter values are not supported).</li> | |||
answer is not higher than that indicated by the offer;</t> | </ol> | |||
</li></ul> | </li> | |||
</ul> | ||||
<ul empty="true"><li> | <aside><t>Informative note: The above requirement for symmetric use | |||
<t>2) include in the answer the recv-sublayer-id parameter, with a value less | does not apply for level-id and does not apply for the other bitstream or RTP st | |||
than the sprop-sublayer-id parameter in the offer, for the media format (payload | ream properties and capability parameters, as described in <xref target="payload | |||
type), and maintain all configuration parameters with the values remaining the | formatconfig"/> below.</t></aside> | |||
same as in the offer for the media format (payload type), with the exception tha | <ul spacing="normal"> | |||
t the value of level-id is changeable as long as the highest level indicated by | <li>To simplify handling and matching of these configurations, the | |||
the answer is not higher than the level indicated by the sprop-sps or sprop-vps | same RTP payload type number used in the offer <bcp14>SHOULD</bcp14> also be us | |||
in offer for the chosen sublayer representation; or</t> | ed in the answer, as specified in <xref target="RFC3264"/>.</li> | |||
</li></ul> | <li><t>The same RTP payload type number used in the offer for the | |||
media subtype H266 <bcp14>MUST</bcp14> be used in the answer when the answer inc | ||||
<ul empty="true"><li> | ludes recv-sublayer-id. When the answer does not include recv-sublayer-id, the | |||
<t>3) remove the media format (payload type) completely (when one or more of t | answer <bcp14>MUST NOT</bcp14> contain a payload type number used in the offer f | |||
he parameter values are not supported).</t> | or the media subtype H266 unless the configuration is exactly the same as in the | |||
</li></ul> | offer or the configuration in the answer only differs from that in the offer wi | |||
th a different value of level-id. The answer <bcp14>MAY</bcp14> contain the rec | ||||
<ul empty="true"><li> | v-sublayer-id parameter if a VVC bitstream contains multiple operation points (u | |||
<ul empty="true"><li> | sing temporal scalability and sublayers) and sprop-sps or sprop-vps is included | |||
<ul empty="true"><li> | in the offer where information of sublayers are present in the first sequence pa | |||
<t>Informative note: The above requirement for symmetric use does not appl | rameter set or video parameter set contained in sprop-sps or sprop-vps, respecti | |||
y for level-id, and does not apply for the other bitstream or RTP stream propert | vely. If sprop-sps or sprop-vps is provided in an offer, an answerer <bcp14>MAY | |||
ies and capability parameters as described in <xref target="payloadformatconfig" | </bcp14> select a particular operation point indicated in the first sequence par | |||
/> below.</t> | ameter set or video parameter set contained in sprop-sps or sprop-vps, respectiv | |||
</li></ul> | ely. When the answer includes a recv-sublayer-id that is less than a sprop-subl | |||
</li></ul> | ayer-id in the offer, the following applies:</t> | |||
</li></ul> | <ol spacing="normal"> | |||
<li>When the sprop-sps parameter is present, all sequence paramete | ||||
<t><list style="symbols"> | r sets contained in the sprop-sps parameter in the | |||
<t>To simplify handling and matching of these configurations, the same RTP pay | SDP answer and all sequence parameter sets sent in-band for either the offerer-t | |||
load type number used in the offer SHOULD also be used in the answer, as specifi | o-answerer direction or the answerer-to-offerer direction <bcp14>MUST</bcp14> be | |||
ed in <xref target="RFC3264"/>.</t> | consistent with the first sequence parameter set in the sprop-sps parameter of | |||
<t>The same RTP payload type number used in the offer for the media subtype H2 | the offer (see the semantics of sprop-sps in <xref target="oparams"/> of this do | |||
66 MUST be used in the answer when the answer includes recv-sublayer-id. When t | cument on one sequence parameter set being consistent with another sequence para | |||
he answer does not include recv-sublayer-id, the answer MUST NOT contain a paylo | meter set).</li> | |||
ad type number used in the offer for the media subtype H266 unless the configura | <li>When the sprop-vps parameter is present, all video parameter s | |||
tion is exactly the same as in the offer or the configuration in the answer only | ets contained in the sprop-vps parameter in the | |||
differs from that in the offer with a different value of level-id. The answer | SDP answer and all video parameter sets sent in-band for either the offerer-to-a | |||
MAY contain the recv-sublayer-id parameter if an VVC bitstream contains multiple | nswerer direction or the answerer-to-offerer direction <bcp14>MUST</bcp14> be co | |||
operation points (using temporal scalability and sublayers) and sprop-sps or sp | nsistent with the first video parameter set in the sprop-vps parameter of the of | |||
rop-vps is included in the offer where information of sublayers are present in t | fer (see the semantics of sprop-vps in <xref target="oparams"/> of this document | |||
he first sequence parameter set or video parameter set contained in sprop-sps or | on one video parameter set being consistent with another video parameter set).< | |||
sprop-vps respectively. If the sprop-sps or sprop-vps is provided in an offer, | /li> | |||
an answerer MAY select a particular operation point indicated in the first sequ | <li>The bitstream sent in either direction <bcp14>MUST</bcp14> con | |||
ence parameter set or video parameter set contained in sprop-sps or sprop-vps re | form to the profile, tier, level, and constraints of the chosen sublayer represe | |||
spectively. When the answer includes a recv-sublayer-id that is less than a spr | ntation, as indicated by the profile_tier_level( ) syntax structure in the first | |||
op-sublayer-id in the offer, the following applies:</t> | sequence parameter set in the sprop-sps parameter or by the first profile_tier_ | |||
</list></t> | level( ) syntax structure in the first video parameter set in the sprop-vps para | |||
meter of the offer.</li> | ||||
<ul empty="true"><li> | </ol> | |||
<t>1) When sprop-sps parameter is present, all sequence parameter sets contain | </li> | |||
ed in the sprop-sps parameter in the | </ul> | |||
SDP answer and all sequence parameter sets sent in-band for either the offerer-t | <aside><t>Informative note: When an offerer receives an answer that | |||
o-answerer direction or the answerer-to-offerer direction MUST be consistent wit | does not include recv-sublayer-id, it has to compare payload types not declared | |||
h the first sequence parameter set in the sprop-sps parameter of the offer (see | in the offer based on the media type (i.e., video/H266) and the above media conf | |||
the semantics of sprop-sps in <xref target="oparams"/> of this document on one s | iguration parameters with any payload types it has already declared. This will | |||
equence parameter set being consistent with another sequence parameter set).</t> | enable it | |||
</li></ul> | to determine whether the configuration in question is new or if it is equivalent | |||
to configuration already offered, since a different payload type number may be | ||||
<ul empty="true"><li> | used in the answer. The ability to perform operation point selection enables a | |||
<t>2) When sprop-vps parameter is present, all video parameter sets contained | receiver to utilize the temporal scalable nature of a VVC bitstream.</t></aside> | |||
in the sprop-vps parameter in the | </section> | |||
SDP answer and all video parameter sets sent in-band for either the offerer-to-a | <section anchor="scalable-media-format-configuration"> | |||
nswerer direction or the answerer-to-offerer direction MUST be consistent with t | <name>Scalable Media Format Configuration</name> | |||
he first video parameter set in the sprop-vps parameter of the offer (see the se | <t>A scalable VVC media configuration is such a configuration where | |||
mantics of sprop-vps in <xref target="oparams"/> of this document on one video p | non-temporal scalability mechanisms are allowed. In <xref target="VVC"/> versio | |||
arameter set being consistent with another video parameter set).</t> | n 1, it is implied that general_profile_idc indicates one of the following prof | |||
</li></ul> | iles: Multilayer Main 10 and Multilayer Main 10 4:4:4, with general_profile_idc | |||
values of 17 and 49, respectively.</t> | ||||
<ul empty="true"><li> | <t>The following limitations and rules pertaining to the media confi | |||
<t>3) The bitstream sent in either direction MUST conform to the profile, tier | guration apply. They are listed in an order that would be logical for an implem | |||
, level, and constraints of the chosen sublayer representation as indicated by t | entation to follow:</t> | |||
he profile_tier_level( ) syntax structure in the first sequence parameter set in | <ul spacing="normal"> | |||
the sprop-sps parameter or by the first profile_tier_level( ) syntax structure | <li>The parameters identifying a media format configuration for sc | |||
in the first video parameter set in the sprop-vps parameter of the offer.</t> | alable VVC are profile-id, tier-flag, sub-profile-id, level-id, interop-constrai | |||
</li></ul> | nts, and sprop-vps. These media configuration parameters, except level-id, <bcp | |||
14>MUST</bcp14> be used symmetrically, except as noted below.</li> | ||||
<ul empty="true"><li> | <li>The answerer <bcp14>MAY</bcp14> include a level-id that <bcp14 | |||
<ul empty="true"><li> | >MUST</bcp14> be lower than or equal to the level-id indicated in the offer (eit | |||
<ul empty="true"><li> | her expressed by level-id in the offer or implied by the default level, as speci | |||
<t>Informative note: When an offerer receives an answer that does not incl | fied in <xref target="oparams"/>).</li> | |||
ude recv-sublayer-id, it has to compare payload types not declared in the offer | <li>When sprop-ols-id is present in an offer, sprop-vps <bcp14>MUS | |||
based on the media type (i.e., video/H266) and the above media configuration par | T</bcp14> also be present in the same offer and include at least one valid VPS s | |||
ameters with any payload types it has already declared. This will enable it | o to allow the answerer to meaningfully interpret sprop-ols-id and select recv-o | |||
to determine whether the configuration in question is new or if it is equivalent | ls-id (see below).</li> | |||
to configuration already offered, since a different payload type number may be | <li><t>The answerer <bcp14>MUST NOT</bcp14> include recv-ols-id un | |||
used in the answer. The ability to perform operation point selection enables a | less the offer includes sprop-ols-id. When present, recv-ols-id <bcp14>MUST</bcp | |||
receiver to utilize the temporal scalable nature of an VVC bitstream.</t> | 14> indicate a supported output layer set in the VPS that includes no layers oth | |||
</li></ul> | er than all or a subset of the layers of the OLS referred to by sprop-ols-id. I | |||
</li></ul> | f unable, the answerer <bcp14>MUST</bcp14> remove the media format.</t></li> | |||
</li></ul> | </ul> | |||
<aside><t>Informative note: If an offerer wants to offer more than | ||||
</section> | one output layer set, it can do so by offering multiple VVC media with differen | |||
<section anchor="scalable-media-format-configuration"><name>Scalable media forma | t payload types.</t></aside> | |||
t configuration</name> | <ul spacing="normal"> | |||
<li>The offerer <bcp14>MAY</bcp14> include sprop-sublayer-id, whic | ||||
<t>A scalable VVC media configuration is such a configuration where non-temporal | h indicates the highest allowed value of TID in the bitstream. The answerer <bc | |||
scalability mechanisms are allowed. In <xref target="VVC"/> version 1, that im | p14>MAY</bcp14> include recv-sublayer-id, which can be used to reduce the number | |||
plies that general_profile_idc indicates one of the following profiles: Multilay | of sublayers from the value of sprop-sublayer-id.</li> | |||
er Main 10, and Multilayer Main 10 4:4:4, with general_profile_idc values of 17 | <li>When the answerer includes recv-ols-id and configuration param | |||
and 49, respectively.</t> | eters profile-id, tier-flag, sub-profile-id, level-id, and interop-constraints, | |||
it <bcp14>MUST</bcp14> use the configuration parameter values as signaled in the | ||||
<t>The following limitations and rules pertaining to the media configuration app | sprop-vps for the operating point with the largest number of sublayers for the | |||
ly. They are listed in an order that would be logical for an implementation to | chosen output layer set, with the exception that the value of level-id is change | |||
follow:</t> | able as long as the highest level indicated by the answer is not higher than the | |||
level indicated by sprop-vps in offer for the operating point with the largest | ||||
<t><list style="symbols"> | number of sublayers for the chosen output layer set.</li> | |||
<t>The parameters identifying a media format configuration for scalable VVC ar | </ul> | |||
e profile-id, tier-flag, sub-profile-id, level-id, interop-constraints, and spro | </section> | |||
p-vps. These media configuration parameters, except level-id, MUST be used symm | <section anchor="payloadformatconfig"> | |||
etrically, except as noted below.</t> | <name>Payload Format Configuration</name> | |||
<t>The answerer MAY include a level-id that MUST be lower than or equal to the | <t>The following limitations and rules pertain to the configuration | |||
level-id indicated in the offer (either expressed by level-id in the offer, or | of the payload format buffer management mostly and apply to both scalable and no | |||
implied by the default level as specific in <xref target="oparams"/>).</t> | n-scalable VVC.</t> | |||
<t>When sprop-ols-id is present in an offer, sprop-vps MUST also be present in | <ul spacing="normal"> | |||
the same offer and including at least one valid VPS, so to allow the answerer t | <li><t>The parameters sprop-max-don-diff and sprop-depack-buf-byte | |||
o meaningfully interpret sprop-ols-id and select recv-ols-id (see below).</t> | s describe the properties of an RTP stream that the offerer or the answerer is s | |||
<t>The answerer MUST NOT include recv-ols-id unless the offer includes sprop-o | ending for the media format configuration. This differs from the normal usage o | |||
ls-id. When present, recv-ols-id MUST indicate a supported output layer set in t | f the offer/answer parameters; normally, such parameters declare the properties | |||
he VPS that includes no layers other than all or a subset of the layers of the O | of the bitstream or RTP stream that the offerer or the answerer is able to recei | |||
LS referred to by sprop-ols-id. If unable, the answerer MUST remove the media f | ve. When dealing with VVC, the offerer assumes that the answerer will be able t | |||
ormat.</t> | o receive media encoded using the configuration being offered.</t></li> | |||
</list></t> | </ul> | |||
<aside><t>Informative note: The above parameters apply for any RTP | ||||
<ul empty="true"><li> | stream, when present, sent by a declaring entity with the same configuration. I | |||
<ul empty="true"><li> | n other words, the applicability of the above parameters to RTP streams depends | |||
<t>Informative note: if an offerer wants to offer more than one output layer | on the source endpoint. Rather than being bound to the payload type, the values | |||
set, it can do so by offering multiple VVC media with different payload types.< | may have to be applied to another payload type when being sent, as they apply fo | |||
/t> | r the configuration.</t></aside> | |||
</li></ul> | <ul spacing="normal"> | |||
</li></ul> | <li>The capability parameter max-lsr <bcp14>MAY</bcp14> be used to | |||
declare further capabilities of the offerer or answerer for receiving. It <bcp1 | ||||
<t><list style="symbols"> | 4>MUST NOT</bcp14> be present when the direction attribute is sendonly.</li> | |||
<t>The offerer MAY include sprop-sublayer-id which indicates the highest allow | <li>The capability parameter max-fps <bcp14>MAY</bcp14> be used to | |||
ed value of TID in the bitstream. The answerer MAY include recv-sublayer-id whi | declare lower capabilities of the offerer or answerer for receiving. It <bcp14 | |||
ch can be used to reduce the number of sublayers from the value of sprop-sublaye | >MUST NOT</bcp14> be present when the direction attribute is sendonly.</li> | |||
r-id.</t> | <li>When an offerer offers an interleaved stream, indicated by the | |||
<t>When the answerer includes recv-ols-id and configuration parameters profile | presence of sprop-max-don-diff with a value larger than zero, the offerer <bcp1 | |||
-id, tier-flag, sub-profile-id, level-id, and interop-constraints, it MUST use t | 4>MUST</bcp14> include the size of the de-packetization buffer sprop-depack-buf- | |||
he configuration parameter values as signaled in the sprop-vps for the operating | bytes.</li> | |||
point with the largest number of sublayers for the chosen output layer set, wit | <li>To enable the offerer and answerer to inform each other about | |||
h the exception that the value of level-id is changeable as long as the highest | their capabilities for de-packetization buffering in receiving RTP streams, both | |||
level indicated by the answer is not higher than the level indicated by the spro | parties are <bcp14>RECOMMENDED</bcp14> to include depack-buf-cap.</li> | |||
p-vps in offer for the operating point with the largest number of sublayers for | <li>The parameters sprop-dci, sprop-vps, sprop-sps, or sprop-pps, | |||
the chosen output layer set.</t> | when present (included in the "a=fmtp" line of SDP or conveyed using the "fmtp" | |||
</list></t> | source attribute, as specified in <xref target="RFC5576" section="6.3" sectionFo | |||
rmat="of" />), are used for out-of-band transport of the parameter sets (DCI, VP | ||||
</section> | S, SPS, or PPS, respectively).</li> | |||
<section anchor="payloadformatconfig"><name>Payload format configuration</name> | <li>The answerer <bcp14>MAY</bcp14> use either out-of-band or in-b | |||
and transport of parameter sets for the bitstream it is sending, regardless of w | ||||
<t>The following limitations and rules pertain to the configuration of the paylo | hether out-of-band parameter sets transport has been used in the offerer-to-answ | |||
ad format buffer management mostly and apply to both scalable and non-scalable V | erer direction. Parameter sets included in an answer are independent of those p | |||
VC.</t> | arameter sets included in the offer, as they are used for decoding two different | |||
bitstreams; one from the answerer to the offerer and the other in the opposite | ||||
<t><list style="symbols"> | direction. In case some RTP packets are sent before the SDP offer/answer settle | |||
<t>The parameters sprop-max-don-diff, and sprop-depack-buf-bytes describe the | s down, in-band parameter sets <bcp14>MUST</bcp14> be used for those RTP stream | |||
properties of an RTP stream that the offerer or the answerer is sending for the | parts sent before the SDP offer/answer.</li> | |||
media format configuration. This differs from the normal usage of the offer/ans | <li><t>The following rules apply to transport of parameter sets in | |||
wer parameters: normally such parameters declare the properties of the bitstream | the offerer-to-answerer direction.</t> | |||
or RTP stream that the offerer or the answerer is able to receive. When dealin | <ul spacing="normal"> | |||
g with VVC, the offerer assumes that the answerer will be able to receive media | <li>An offer <bcp14>MAY</bcp14> include sprop-dci, sprop-vps, sp | |||
encoded using the configuration being offered.</t> | rop-sps, and/or sprop-pps. If none of these parameters are present in the offer, | |||
</list></t> | then only in-band transport of parameter sets is used.</li> | |||
<li>If the level to use in the offerer-to-answerer direction is | ||||
<ul empty="true"><li> | equal to the default level in the offer, the answerer <bcp14>MUST</bcp14> be pre | |||
<ul empty="true"><li> | pared to use the parameter sets included in sprop-vps, sprop-sps, and sprop-pps | |||
<t>Informative note: The above parameters apply for any RTP stream, when pr | (either included in the "a=fmtp" line of SDP or conveyed using the "fmtp" source | |||
esent, sent by a declaring entity with the same configuration. In other words, | attribute) for decoding the incoming bitstream, e.g., by passing these paramete | |||
the applicability of the above parameters to RTP streams depends on the source e | r set NAL units to the video decoder before passing any NAL units carried in the | |||
ndpoint. Rather than being bound to the payload type, the values may have to be | RTP streams. Otherwise, the answerer <bcp14>MUST</bcp14> ignore sprop-vps, spr | |||
applied to another payload type when being sent, as they apply for the configura | op-sps, and sprop-pps (either included in the "a=fmtp" line of SDP or conveyed u | |||
tion.</t> | sing the "fmtp" source attribute) and the offerer <bcp14>MUST</bcp14> transmit p | |||
</li></ul> | arameter sets in-band.</li> | |||
</li></ul> | </ul> | |||
</li> | ||||
<t><list style="symbols"> | <li><t>The following rules apply to transport of parameter sets in | |||
<t>The capability parameter max-lsr MAY be used to declare further capabilitie | the answerer-to-offerer direction.</t> | |||
s of the offerer or answerer for receiving. It MUST NOT be present when the dire | <ul spacing="normal"> | |||
ction attribute is sendonly.</t> | <li>An answer <bcp14>MAY</bcp14> include sprop-dci, sprop-vps, | |||
<t>The capability parameter max-fps MAY be used to declare lower capabilities | sprop-sps, and/or sprop-pps. If none of these parameters are present in the ans | |||
of the offerer or answerer for receiving. It MUST NOT be present when the direc | wer, then only in-band transport of parameter sets is used.</li> | |||
tion attribute is sendonly.</t> | <li>The offerer <bcp14>MUST</bcp14> be prepared to use the par | |||
<t>When an offerer offers an interleaved stream, indicated by the presence of | ameter sets included in sprop-vps, sprop-sps, and sprop-pps (either included in | |||
sprop-max-don-diff with a value larger than zero, the offerer MUST include the s | the "a=fmtp" line of SDP or conveyed using the "fmtp" source attribute) for deco | |||
ize of the de-packetization buffer sprop-depack-buf-bytes.</t> | ding the incoming bitstream, e.g., by passing these parameter set NAL units to t | |||
<t>To enable the offerer and answerer to inform each other about their capabil | he video decoder before passing any NAL units carried in the RTP streams.</li> | |||
ities for de-packetization buffering in receiving RTP streams, both parties are | </ul> | |||
RECOMMENDED to include depack-buf-cap.</t> | </li> | |||
<t>The sprop-dci, sprop-vps, sprop-sps, or sprop-pps, when present (included i | <li>When sprop-dci, sprop-vps, sprop-sps, and/or sprop-pps are con | |||
n the "a=fmtp" line of SDP or conveyed using the "fmtp" source attribute as spec | veyed using the "fmtp" source attribute, as specified in <xref target="RFC5576" | |||
ified in Section 6.3 of <xref target="RFC5576"/>), are used for out-of-band tran | section="6.3" sectionFormat="of" />, the receiver of the parameters <bcp14>MUST< | |||
sport of the parameter sets (DCI, VPS, SPS, or PPS, respectively).</t> | /bcp14> store the parameter sets | |||
<t>The answerer MAY use either out-of-band or in-band transport of parameter s | included in sprop-dci, sprop-vps, sprop-sps, and/or sprop-pps and associate them | |||
ets for the bitstream it is sending, regardless of whether out-of-band parameter | with the source given as part of the "fmtp" source attribute. Parameter sets as | |||
sets transport has been used in the offerer-to-answerer direction. Parameter s | sociated with one source (given as part of the "fmtp" source attribute) <bcp14>M | |||
ets included in an answer are independent of those parameter sets included in th | UST</bcp14> only be used to decode NAL units conveyed in RTP packets from the sa | |||
e offer, as they are used for decoding two different bitstreams, one from the an | me source (given as part of the "fmtp" source attribute). When this mechanism i | |||
swerer to the offerer and the other in the opposit direction. In case some RTP | s in use, SSRC collision detection and resolution <bcp14>MUST</bcp14> be perform | |||
packets are sent before the SDP offer/answer settles down, in-band parameter set | ed as specified in <xref target="RFC5576"/>.</li> | |||
s MUST be used for those RTP stream parts sent before the SDP offer/answer.</t> | </ul> | |||
<t>The following rules apply to transport of parameter set in the offerer-to-a | <t><xref target="parameters"/> lists the interpretation of all the p | |||
nswerer direction.</t> | arameters that <bcp14>MAY</bcp14> be | |||
</list></t> | ||||
<ul empty="true"><li> | ||||
<t><list style="symbols"> | ||||
<t>An offer MAY include sprop-dci, sprop-vps, sprop-sps, and/or sprop-pps. I | ||||
f none of these parameters is present in the offer, then only in-band transport | ||||
of parameter sets is used.</t> | ||||
</list></t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t><list style="symbols"> | ||||
<t>If the level to use in the offerer-to-answerer direction is equal to the | ||||
default level in the offer, the answerer MUST be prepared to use the parameter s | ||||
ets included in sprop-vps, sprop-sps, and sprop-pps (either included in the "a=f | ||||
mtp" line of SDP or conveyed using the "fmtp" source attribute) for decoding the | ||||
incoming bitstream, e.g., by passing these parameter set NAL units to the video | ||||
decoder before passing any NAL units carried in the RTP streams. Otherwise, th | ||||
e answerer MUST ignore sprop-vps, sprop-sps, and sprop-pps (either included in t | ||||
he "a=fmtp" line of SDP or conveyed using the "fmtp" source attribute) and the o | ||||
fferer MUST transmit parameter sets in-band.</t> | ||||
</list></t> | ||||
</li></ul> | ||||
<t><list style="symbols"> | ||||
<t>The following rules apply to transport of parameter set in the answerer-to- | ||||
offerer direction.</t> | ||||
</list></t> | ||||
<ul empty="true"><li> | ||||
<t><list style="symbols"> | ||||
<t>An answer MAY include sprop-dci, sprop-vps, sprop-sps, and/or sprop-pps. | ||||
If none of these parameters is present in the answer, then only in-band transpor | ||||
t of parameter sets is used.</t> | ||||
</list></t> | ||||
</li></ul> | ||||
<ul empty="true"><li> | ||||
<t><list style="symbols"> | ||||
<t>The offerer MUST be prepared to use the parameter sets included in sprop- | ||||
vps, sprop-sps, and sprop-pps (either included in the "a=fmtp" line of SDP or co | ||||
nveyed using the "fmtp" source attribute) for decoding the incoming bitstream, e | ||||
.g., by passing these parameter set NAL units to the video decoder before passin | ||||
g any NAL units carried in the RTP streams.</t> | ||||
</list></t> | ||||
</li></ul> | ||||
<t><list style="symbols"> | ||||
<t>When sprop-dci, sprop-vps, sprop-sps, and/or sprop-pps are conveyed using t | ||||
he "fmtp" source attribute as specified in Section 6.3 of <xref target="RFC5576" | ||||
/>, the receiver of the parameters MUST store the parameter sets | ||||
included in sprop-dci, sprop-vps, sprop-sps, and/or sprop-pps and associate them | ||||
with the source given as part of the "fmtp" source attribute. Parameter sets as | ||||
sociated with one source (given as part of the "fmtp" source attribute) MUST onl | ||||
y be used to decode NAL units conveyed in RTP packets from the same source (give | ||||
n as part of the "fmtp" source attribute). When this mechanism is in use, SSRC | ||||
collision detection and resolution MUST be performed as specified in <xref targe | ||||
t="RFC5576"/>.</t> | ||||
</list></t> | ||||
<t>Table 1 lists the interpretation of all the parameters that MAY be | ||||
used for the various combinations of offer, answer, and direction | used for the various combinations of offer, answer, and direction | |||
attributes. Note that the two columns wherein the recv-ols-id | attributes.</t> | |||
parameter is used only apply to answers, whereas the other columns | <figure anchor="parameters"> | |||
apply to both offers and answers.</t> | <name>Interpretation of Parameters for Various Combinations | |||
of Offers, Answers, and Direction Attributes, with and without recv-ols-id | ||||
<figure><artwork><![CDATA[ | .</name> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
sendonly --+ | sendonly --+ | |||
answer: recvonly, recv-ols-id --+ | | answer: recvonly, recv-ols-id --+ | | |||
recvonly w/o recv-ols-id --+ | | | recvonly w/o recv-ols-id --+ | | | |||
answer: sendrecv, recv-ols-id --+ | | | | answer: sendrecv, recv-ols-id --+ | | | | |||
sendrecv w/o recv-ols-id --+ | | | | | sendrecv w/o recv-ols-id --+ | | | | | |||
| | | | | | | | | | | | |||
profile-id C D C D P | profile-id C D C D P | |||
tier-flag C D C D P | tier-flag C D C D P | |||
level-id D D D D P | level-id D D D D P | |||
sub-profile-id C D C D P | sub-profile-id C D C D P | |||
skipping to change at line 2055 ¶ | skipping to change at line 1487 ¶ | |||
sprop-dci P P - - P | sprop-dci P P - - P | |||
sprop-sei P P - - P | sprop-sei P P - - P | |||
sprop-vps P P - - P | sprop-vps P P - - P | |||
sprop-sps P P - - P | sprop-sps P P - - P | |||
sprop-pps P P - - P | sprop-pps P P - - P | |||
sprop-sublayer-id P P - - P | sprop-sublayer-id P P - - P | |||
recv-sublayer-id O O O O - | recv-sublayer-id O O O O - | |||
sprop-ols-id P P - - P | sprop-ols-id P P - - P | |||
recv-ols-id X O X O - | recv-ols-id X O X O - | |||
Table 1. Interpretation of parameters for various combinations of | ||||
offers, answers, direction attributes, with and without recv-ols-id. | ||||
Columns that do not indicate offer or answer apply to both. | ||||
Legend: | Legend: | |||
C: configuration for sending and receiving bitstreams | C: configuration for sending and receiving bitstreams | |||
D: changeable configuration, same as C except possible | D: changeable configuration, same as C, except possible | |||
to answer with a different but consistent value (see the | to answer with a different but consistent value (see the | |||
semantics of the six parameters related to profile, tier, | semantics of the six parameters related to profile, tier, | |||
and level on these parameters being consistent) | and level on these parameters being consistent) | |||
P: properties of the bitstream to be sent | P: properties of the bitstream to be sent | |||
R: receiver capabilities | R: receiver capabilities | |||
O: operation point selection | O: operation point selection | |||
X: MUST NOT be present | X: MUST NOT be present | |||
-: not usable, when present MUST be ignored | -: not usable, when present MUST be ignored | |||
]]></artwork></figure> | ]]></artwork> | |||
</figure> | ||||
<t>Parameters used for declaring receiver capabilities are, in general, | <t>Parameters used for declaring receiver capabilities are, in gener | |||
downgradable; i.e., they express the upper limit for a sender's | al, | |||
possible behavior. Thus, a sender MAY select to set its encoder | downgradable, i.e., they express the upper limit for a sender's | |||
possible behavior. Thus, a sender <bcp14>MAY</bcp14> select to set its encoder | ||||
using only lower/lesser or equal values of these parameters.</t> | using only lower/lesser or equal values of these parameters.</t> | |||
<t>When the answer does not include a recv-ols-id that is less | ||||
<t>When the answer does not include a recv-ols-id that is less | ||||
than the sprop-ols-id in the offer, parameters declaring a | than the sprop-ols-id in the offer, parameters declaring a | |||
configuration point are not changeable, with the exception of the | configuration point are not changeable, with the exception of the | |||
level-id parameter for unicast usage, and these parameters express | level-id parameter for unicast usage, and these parameters express | |||
values a receiver expects to be used and MUST be used verbatim in the | values a receiver expects to be used and <bcp14>MUST</bcp14> be used verbatim in the | |||
answer as in the offer.</t> | answer as in the offer.</t> | |||
<t>When a sender's capabilities are declared with the configuration | ||||
<t>When a sender's capabilities are declared with the configuration | ||||
parameters, these parameters express a configuration that is | parameters, these parameters express a configuration that is | |||
acceptable for the sender to receive bitstreams. In order to achieve | acceptable for the sender to receive bitstreams. In order to achieve | |||
high interoperability levels, it is often advisable to offer multiple | high interoperability levels, it is often advisable to offer multiple | |||
alternative configurations. It is impossible to offer multiple | alternative configurations. It is impossible to offer multiple | |||
configurations in a single payload type. Thus, when multiple | configurations in a single payload type. Thus, when multiple | |||
configuration offers are made, each offer requires its own RTP | configuration offers are made, each offer requires its own RTP | |||
payload type associated with the offer. However, it is possible to | payload type associated with the offer. However, it is possible to | |||
offer multiple operation points using one configuration in a single | offer multiple operation points using one configuration in a single | |||
payload type by including sprop-vps in the offer and recv-ols-id in the answer.< /t> | payload type by including sprop-vps in the offer and recv-ols-id in the answer.< /t> | |||
<t>An implementation <bcp14>SHOULD</bcp14> be able to understand all | ||||
<t>An implementation SHOULD be able to understand all media type parameters | media type parameters | |||
(including all optional media type parameters), even if it doesn’t support | (including all optional media type parameters), even if it doesn't support | |||
the functionality related to the parameter. This, in conjunction with proper | the functionality related to the parameter. This, in conjunction with proper | |||
application logic in the implementation allows the implementation, | application logic in the implementation, allows the implementation, | |||
after having received an offer, to create an answer by potentially downgrading | after having received an offer, to create an answer by potentially downgrading | |||
one or more of the optional parameters to the point where the implementation | one or more of the optional parameters to the point where the implementation | |||
can cope, leading to higher chances of interoperability beyond the most basic | can cope, leading to higher chances of interoperability beyond the most basic | |||
interop points (for which, as described above, no optional parameters are necess ary).</t> | interop points (for which, as described above, no optional parameters are necess ary).</t> | |||
<aside><t>Informative note: In implementations of previous H.26x | ||||
<ul empty="true"><li> | payload formats, it was | |||
<t>Informative note: in implementations of previous H.26x payload formats it w | ||||
as | ||||
occasionally observed that implementations were incapable of parsing most (or al l) | occasionally observed that implementations were incapable of parsing most (or al l) | |||
of the optional parameters. As a result, the offer-answer exchange resulted in a | of the optional parameters. As a result, the offer/answer exchange resulted in a | |||
baseline performance (using the default values for the optional parameters) with | baseline performance (using the default values for the optional parameters) with | |||
the resulting suboptimal user experience. However, there are valid reasons to f orego | the resulting suboptimal user experience. However, there are valid reasons to f orego | |||
the implementation complexity of implementing the parsing of some or all of the optional | the implementation complexity of implementing the parsing of some or all of the optional | |||
parameters, for example, when there is pre-determined knowledge, not negotiated by an | parameters, for example, when there is predetermined knowledge, not negotiated b y an | |||
SDP-based offer/answer process, of the capabilities of the involved systems | SDP-based offer/answer process, of the capabilities of the involved systems | |||
(walled gardens, baseline requirements defined in application standards higher u | (walled gardens, baseline requirements defined in application standards higher u | |||
p in the stack, and similar).</t> | p in the stack, and similar).</t></aside> | |||
</li></ul> | <t>An answerer <bcp14>MAY</bcp14> extend the offer with additional m | |||
edia format | ||||
<t>An answerer MAY extend the offer with additional media format | configurations. However, to enable their usage, in most cases, a | |||
configurations. However, to enable their usage, in most cases a | ||||
second offer is required from the offerer to provide the bitstream | second offer is required from the offerer to provide the bitstream | |||
property parameters that the media sender will use. This also has | property parameters that the media sender will use. This also has | |||
the effect that the offerer has to be able to receive this media | the effect that the offerer has to be able to receive this media | |||
format configuration, not only to send it.</t> | format configuration, not only to send it.</t> | |||
</section> | ||||
</section> | </section> | |||
</section> | <section anchor="multicast"> | |||
<section anchor="multicast"><name>Multicast</name> | <name>Multicast</name> | |||
<t>For bitstreams being delivered over multicast, the following rules | ||||
<t>For bitstreams being delivered over multicast, the following rules apply:</t> | apply:</t> | |||
<ul spacing="normal"> | ||||
<t><list style="symbols"> | <li>The media format configuration is identified by profile-id, tier | |||
<t>The media format configuration is identified by profile-id, tier-flag, sub- | -flag, sub-profile-id, level-id, and interop-constraints. These media format co | |||
profile-id, level-id, and interop-constraints. These media format configuration | nfiguration parameters, including level-id, <bcp14>MUST</bcp14> be used symmetri | |||
parameters, including level-id, MUST be used symmetrically; that is, the answer | cally; that is, the answerer <bcp14>MUST</bcp14> either maintain all configurati | |||
er MUST either maintain all configuration parameters or remove the media format | on parameters or remove the media format (payload type) completely. Note that t | |||
(payload type) completely. Note that this implies that the level-id for offer/a | his implies that the level-id for offer/answer in multicast is not changeable.</ | |||
nswer in multicast is not changeable.</t> | li> | |||
<t>To simplify the handling and matching of these configurations, the same RTP | <li>To simplify the handling and matching of these configurations, t | |||
payload type number used in the offer SHOULD also be used in the answer, as spe | he same RTP payload type number used in the offer <bcp14>SHOULD</bcp14> also be | |||
cified in <xref target="RFC3264"/>. An answer MUST NOT contain a payload type n | used in the answer, as specified in <xref target="RFC3264"/>. An answer <bcp14> | |||
umber used in the offer unless the configuration is the same as in the offer.</t | MUST NOT</bcp14> contain a payload type number used in the offer unless the conf | |||
> | iguration is the same as in the offer.</li> | |||
<t>Parameter sets received MUST be associated with the originating source and | <li>Parameter sets received <bcp14>MUST</bcp14> be associated with t | |||
MUST only be used in decoding the incoming bitstream from the same source.</t> | he originating source and <bcp14>MUST</bcp14> only be used in decoding the incom | |||
<t>The rules for other parameters are the same as above for unicast as long as | ing bitstream from the same source.</li> | |||
the three above rules are obeyed.</t> | <li>The rules for other parameters are the same as above for unicast | |||
</list></t> | as long as the three above rules are obeyed.</li> | |||
</ul> | ||||
</section> | </section> | |||
<section anchor="usage-in-declarative-session-descriptions"><name>Usage in Decla | <section anchor="usage-in-declarative-session-descriptions"> | |||
rative Session Descriptions</name> | <name>Usage in Declarative Session Descriptions</name> | |||
<t>When VVC over RTP is offered with SDP in a declarative style, as in | ||||
<t>When VVC over RTP is offered with SDP in a declarative style, as in Real Time | Real Time Streaming Protocol (RTSP) <xref target="RFC7826"/> or Session Announc | |||
Streaming Protocol (RTSP) <xref target="RFC7826"/> or Session Announcement Prot | ement Protocol (SAP) <xref target="RFC2974"/>, the following considerations are | |||
ocol (SAP) <xref target="RFC2974"/>, the following considerations are necessary. | necessary.</t> | |||
</t> | <ul spacing="normal"> | |||
<li><t>All parameters capable of indicating both bitstream propertie | ||||
<t><list style="symbols"> | s and receiver capabilities are used to indicate only bitstream properties. For | |||
<t>All parameters capable of indicating both bitstream properties and receiver | example, in this case, the parameters profile-id, | |||
capabilities are used to indicate only bitstream properties. For example, in t | tier-id, and level-id declare the values used by the bitstream, not the capabili | |||
his case, the parameter profile-id, | ties for receiving bitstreams. As a result, the following interpretation of the | |||
tier-id, level-id declares the values used by the bitstream, not the capabilitie | parameters <bcp14>MUST</bcp14> be used:</t> | |||
s for receiving bitstreams. As a result, the following interpretation of the pa | <ul spacing="normal"> | |||
rameters MUST be used:</t> | <li><t>Declaring actual configuration or bitstream properties:</ | |||
</list></t> | t> | |||
<ul spacing="normal"> | ||||
<ul empty="true"><li> | <li>profile-id</li> | |||
<t><list style="symbols"> | <li>tier-flag</li> | |||
<t>Declaring actual configuration or bitstream properties: | <li>level-id</li> | |||
<list style="symbols"> | <li>interop-constraints</li> | |||
<t>profile-id</t> | <li>sub-profile-id</li> | |||
<t>tier-flag</t> | <li>sprop-dci</li> | |||
<t>level-id</t> | <li>sprop-vps</li> | |||
<t>interop-constraints</t> | <li>sprop-sps</li> | |||
<t>sub-profile-id</t> | <li>sprop-pps</li> | |||
<t>sprop-dci</t> | <li>sprop-max-don-diff</li> | |||
<t>sprop-vps</t> | <li>sprop-depack-buf-bytes</li> | |||
<t>sprop-sps</t> | <li>sprop-sublayer-id</li> | |||
<t>sprop-pps</t> | <li>sprop-ols-id</li> | |||
<t>sprop-max-don-diff</t> | <li>sprop-sei</li> | |||
<t>sprop-depack-buf-bytes</t> | </ul> | |||
<t>sprop-sublayer-id</t> | </li> | |||
<t>sprop-ols-id</t> | <li> | |||
<t>sprop-sei</t> | <t>Not usable (when present, they <bcp14>MUST</bcp14> be ignor | |||
</list></t> | ed):</t> | |||
</list></t> | <ul spacing="normal"> | |||
</li></ul> | <li>max-lsr</li> | |||
<li>max-fps</li> | ||||
<ul empty="true"><li> | <li>max-recv-level-id</li> | |||
<t><list style="symbols"> | <li>depack-buf-cap</li> | |||
<t>Not usable (when present, they MUST be ignored): | <li>recv-sublayer-id</li> | |||
<list style="symbols"> | <li>recv-ols-id</li> | |||
<t>max-lsr</t> | </ul> | |||
<t>max-fps</t> | </li> | |||
<t>max-recv-level-id</t> | <li>A receiver of the SDP is required to support all parameters | |||
<t>depack-buf-cap</t> | and values of the parameters provided; otherwise, the receiver <bcp14>MUST</bcp1 | |||
<t>recv-sublayer-id</t> | 4> reject (RTSP) or not participate in (SAP) the session. It falls on the creat | |||
<t>recv-ols-id</t> | or of the session to use values that are expected to be supported by the receivi | |||
</list></t> | ng application.</li> | |||
</list></t> | </ul> | |||
</li></ul> | </li> | |||
</ul> | ||||
<ul empty="true"><li> | </section> | |||
<t><list style="symbols"> | <section anchor="considerations-for-parameter-sets"> | |||
<t>A receiver of the SDP is required to support all parameters and values of | <name>Considerations for Parameter Sets</name> | |||
the parameters provided; otherwise, the receiver MUST reject (RTSP) or not part | <t>When out-of-band transport of parameter sets is used, parameter set | |||
icipate in (SAP) the session. It falls on the creator of the session to use val | s <bcp14>MAY</bcp14> still be additionally transported in-band unless explicitly | |||
ues that are expected to be supported by the receiving application.</t> | disallowed by an application, and some of these additional parameter sets may u | |||
</list></t> | pdate some of the out-of-band transported parameter sets. An update of a paramet | |||
</li></ul> | er set refers to the sending of a parameter set of the same type using the same | |||
parameter set ID but with different values for at least one other parameter of t | ||||
</section> | he parameter set.</t> | |||
<section anchor="considerations-for-parameter-sets"><name>Considerations for Par | </section> | |||
ameter Sets</name> | </section> | |||
</section> | ||||
<t>When out-of-band transport of parameter sets is used, parameter sets MAY stil | <section anchor="FeedbackMessage"> | |||
l be additionally transported in-band unless explicitly disallowed by an applica | <name>Use with Feedback Messages</name> | |||
tion, and some of these additional parameter sets may update some of the out-of- | <t>The following subsections define the use of the Picture Loss | |||
band transported parameter sets. Update of a parameter set refers to the sending | ||||
of a parameter set of the same type using the same parameter set ID but with di | ||||
fferent values for at least one other parameter of the parameter set.</t> | ||||
</section> | ||||
</section> | ||||
</section> | ||||
<section anchor="FeedbackMessage"><name>Use with Feedback Messages</name> | ||||
<t>The following subsections define the use of the Picture Loss | ||||
Indication (PLI) and Full Intra Request (FIR) feedback | Indication (PLI) and Full Intra Request (FIR) feedback | |||
messages with <xref target="VVC"/>. The PLI is defined in | messages with <xref target="VVC"/>. The PLI is defined in | |||
<xref target="RFC4585"/>, and the FIR message is defined in <xref target="RFC510 4"/>. | <xref target="RFC4585"/>, and the FIR message is defined in <xref target="RFC510 4"/>. | |||
In accordance with this memo, unlike <xref target="HEVC"/>, a sender MUST NOT se | In accordance with this memo, unlike <xref target="HEVC"/>, a sender <bcp14>MUST | |||
nd Slice Loss Indication (SLI) or Reference Picture Selection Indication (RPSI), | NOT</bcp14> send Slice Loss Indication (SLI) or Reference Picture Selection Ind | |||
and a receiver SHOULD ignore RPSI and treat a received SLI as a PLI.</t> | ication (RPSI), and a receiver <bcp14>SHOULD</bcp14> ignore RPSI and treat a rec | |||
eived SLI as a PLI.</t> | ||||
<section anchor="PLI"><name>Picture Loss Indication (PLI)</name> | <section anchor="PLI"> | |||
<name>Picture Loss Indication (PLI)</name> | ||||
<t>As specified in RFC 4585, Section 6.3.1, the reception of a PLI by a | <t>As specified in <xref target="RFC4585" section="6.3.1" sectionFormat= | |||
"of" />, the reception of a PLI by a | ||||
media sender indicates "the loss of an undefined amount of coded | media sender indicates "the loss of an undefined amount of coded | |||
video data belonging to one or more pictures". Without having any | video data belonging to one or more pictures". Without having any | |||
specific knowledge of the setup of the bitstream (such as use and | specific knowledge of the setup of the bitstream (such as use and | |||
location of in-band parameter sets, non-IRAP decoder refresh points, | location of in-band parameter sets, non-IRAP decoder refresh points, | |||
picture structures, and so forth), a reaction to the reception of an | picture structures, and so forth), a reaction to the reception of a | |||
PLI by a VVC sender SHOULD be to send an IRAP picture and relevant | PLI by a VVC sender <bcp14>SHOULD</bcp14> be to send an IRAP picture and relevan | |||
parameter sets; potentially with sufficient redundancy so to ensure | t | |||
parameter sets, potentially with sufficient redundancy so to ensure | ||||
correct reception. However, sometimes information about the | correct reception. However, sometimes information about the | |||
bitstream structure is known. For example, state could have been | bitstream structure is known. | |||
established outside of the mechanisms defined in this document that | For example, such information can be parameter sets that have been conveyed out | |||
parameter sets are conveyed out of band only, and stay static for the | of band through mechanisms not defined in this document and that are known to st | |||
duration of the session. In that case, it is obviously unnecessary | ay static for the duration of the session. In that case, it is obviously unneces | |||
sary | ||||
to send them in-band as a result of the reception of a PLI. Other | to send them in-band as a result of the reception of a PLI. Other | |||
examples could be devised based on a priori knowledge of different | examples could be devised based on a priori knowledge of different | |||
aspects of the bitstream structure. In all cases, the timing and | aspects of the bitstream structure. In all cases, the timing and | |||
congestion control mechanisms of RFC 4585 MUST be observed.</t> | congestion control mechanisms of <xref target="RFC4585"/> <bcp14>MUST</bcp14> be | |||
observed.</t> | ||||
</section> | </section> | |||
<section anchor="FIR"><name>Full Intra Request (FIR)</name> | <section anchor="FIR"> | |||
<name>Full Intra Request (FIR)</name> | ||||
<t>The purpose of the FIR message is to force an encoder to send an | <t>The purpose of the FIR message is to force an encoder to send an | |||
independent decoder refresh point as soon as possible, | independent decoder refresh point as soon as possible | |||
while observing applicable congestion-control-related constraints, | while observing applicable congestion-control-related constraints, | |||
such as those set out in <xref target="RFC8082"/>).</t> | such as those set out in <xref target="RFC8082"/>.</t> | |||
<t>Upon reception of a FIR, a sender <bcp14>MUST</bcp14> send an IDR pic | ||||
<t>Upon reception of a FIR, a sender MUST send an IDR picture. | ture. | |||
Parameter sets MUST also be sent, except when there is a priori | Parameter sets <bcp14>MUST</bcp14> also be sent, except when there is a priori | |||
knowledge that the parameter sets have been correctly established. A | knowledge that the parameter sets have been correctly established. A | |||
typical example for that is an understanding between sender and | typical example for that is an understanding between the sender and | |||
receiver, established by means outside this document, that parameter | receiver, established by means outside this document, that parameter | |||
sets are exclusively sent out-of-band.</t> | sets are exclusively sent out of band.</t> | |||
</section> | ||||
</section> | </section> | |||
</section> | <section anchor="Security"> | |||
<section anchor="Security"><name>Security Considerations</name> | <name>Security Considerations</name> | |||
<t>The scope of this section is limited to the | ||||
<t>The scope of this Security Considerations section is limited to the | ||||
payload format itself and to one feature of <xref target="VVC"/> that may pose a | payload format itself and to one feature of <xref target="VVC"/> that may pose a | |||
particularly serious security risk if implemented naively. The | particularly serious security risk if implemented naively. The | |||
payload format, in isolation, does not form a complete system. | payload format, in isolation, does not form a complete system. | |||
Implementers are advised to read and understand relevant security- | Implementers are advised to read and understand relevant security-related docume | |||
related documents, especially those pertaining to RTP (see the | nts, especially those pertaining to RTP (see the | |||
Security Considerations section in <xref target="RFC3550"/>), and the security o | Security Considerations section in <xref target="RFC3550"/>) and the security of | |||
f | ||||
the call-control stack chosen (that may make use of the media type | the call-control stack chosen (that may make use of the media type | |||
registration of this memo). Implementers should also consider known | registration of this memo). Implementers should also consider known | |||
security vulnerabilities of video coding and decoding implementations | security vulnerabilities of video coding and decoding implementations | |||
in general and avoid those.</t> | in general and avoid those.</t> | |||
<t>Within this RTP payload format, and with the exception of the user | ||||
<t>Within this RTP payload format, and with the exception of the user | ||||
data SEI message as described below, no security threats other than | data SEI message as described below, no security threats other than | |||
those common to RTP payload formats are known. In other words, | those common to RTP payload formats are known. In other words, | |||
neither the various media-plane-based mechanisms, nor the signaling | neither the various media-plane-based mechanisms nor the signaling | |||
part of this memo, seems to pose a security risk beyond those common | part of this memo seem to pose a security risk beyond those common | |||
to all RTP-based systems.</t> | to all RTP-based systems.</t> | |||
<t>RTP packets using the payload format defined in this specification | ||||
<t>RTP packets using the payload format defined in this specification | ||||
are subject to the security considerations discussed in the RTP | are subject to the security considerations discussed in the RTP | |||
specification <xref target="RFC3550"/>, and in any applicable RTP profile such a s | specification <xref target="RFC3550"/> and in any applicable RTP profile, such a s | |||
RTP/AVP <xref target="RFC3551"/>, RTP/AVPF <xref target="RFC4585"/>, RTP/SAVP <x ref target="RFC3711"/>, | RTP/AVP <xref target="RFC3551"/>, RTP/AVPF <xref target="RFC4585"/>, RTP/SAVP <x ref target="RFC3711"/>, | |||
or RTP/SAVPF <xref target="RFC5124"/>. However, as "Securing the RTP Framework: | or RTP/SAVPF <xref target="RFC5124"/>. However, as "Securing the RTP Framework: | |||
Why RTP Does Not Mandate a Single Media Security Solution" <xref target="RFC7202 "/> | Why RTP Does Not Mandate a Single Media Security Solution" <xref target="RFC7202 "/> | |||
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 RTP | goals, like confidentiality, integrity, and source authenticity for RTP | |||
in general. This responsibility lays on anyone using RTP in an | in general. This responsibility lays 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 "Options for Securing RTP Sessions" | and important considerations in "Options for Securing RTP Sessions" | |||
<xref target="RFC7201"/>. The rest of this section discusses the security | <xref target="RFC7201"/>. The rest of this section discusses the security | |||
impacting properties of the payload format itself.</t> | impacting properties of the payload format itself.</t> | |||
<t>Because the data compression used with this payload format is applied | ||||
<t>Because the data compression used with this payload format is applied | end to end, any encryption needs to be performed after compression. | |||
end-to-end, any encryption needs to be performed after compression. | ||||
A potential denial-of-service threat exists for data encodings using | A potential denial-of-service threat exists for data encodings using | |||
compression techniques that have non-uniform receiver-end | compression techniques that have non-uniform receiver-end | |||
computational load. The attacker can inject pathological datagrams | computational load. The attacker can inject pathological datagrams | |||
into the bitstream that are complex to decode and that cause the | into the bitstream that are complex to decode and that cause the | |||
receiver to be overloaded. <xref target="VVC"/> is particularly vulnerable to s uch | receiver to be overloaded. <xref target="VVC"/> is particularly vulnerable to s uch | |||
attacks, as it is extremely simple to generate datagrams containing | attacks, as it is extremely simple to generate datagrams containing | |||
NAL units that affect the decoding process of many future NAL units. | NAL units that affect the decoding process of many future NAL units. | |||
Therefore, the usage of data origin authentication and data integrity | Therefore, the usage of data origin authentication and data integrity | |||
protection of at least the RTP packet is RECOMMENDED but NOT REQUIRED, | protection of at least the RTP packet is <bcp14>RECOMMENDED</bcp14> but NOT <bcp | |||
based on the thoughts of <xref target="RFC7202"/></t> | 14>REQUIRED</bcp14> | |||
based on the thoughts of <xref target="RFC7202"/>.</t> | ||||
<t>Like HEVC <xref target="RFC7798"/>, <xref target="VVC"/> includes a user data | <t>Like HEVC <xref target="RFC7798"/>, <xref target="VVC"/> includes a use | |||
Supplemental | r data Supplemental | |||
Enhancement Information (SEI) message. This SEI message allows | Enhancement Information (SEI) message. This SEI message allows | |||
inclusion of an arbitrary bitstring into the video bitstream. Such a | inclusion of an arbitrary bitstring into the video bitstream. Such a | |||
bitstring could include JavaScript, machine code, and other active | bitstring could include JavaScript, machine code, and other active | |||
content. <xref target="VVC"/> leaves the handling of this SEI message to the | content. <xref target="VVC"/> leaves the handling of this SEI message to the | |||
receiving system. In order to avoid harmful side effects of | receiving system. In order to avoid harmful side effects of | |||
the user data SEI message, decoder implementations cannot naively | the user data SEI message, decoder implementations cannot naively | |||
trust its content. For example, it would be a bad and insecure | trust its content. For example, it would be a bad and insecure | |||
implementation practice to forward any JavaScript a decoder | implementation practice to forward any JavaScript a decoder | |||
implementation detects to a web browser. The safest way to deal with | implementation detects to a web browser. The safest way to deal with | |||
user data SEI messages is to simply discard them, but that can have | user data SEI messages is to simply discard them, but that can have | |||
negative side effects on the quality of experience by the user.</t> | negative side effects on the quality of experience by the user.</t> | |||
<t>End-to-end security with authentication, integrity, or | ||||
<t>End-to-end security with authentication, integrity, or | ||||
confidentiality protection will prevent a MANE from performing media- | confidentiality protection will prevent a MANE from performing media- | |||
aware operations other than discarding complete packets. In the case | aware operations other than discarding complete packets. In the case | |||
of confidentiality protection, it will even be prevented from | of confidentiality protection, it will even be prevented from | |||
discarding packets in a media-aware way. To be allowed to perform | discarding packets in a media-aware way. To be allowed to perform | |||
such operations, a MANE is required to be a trusted entity that is | such operations, a MANE is required to be a trusted entity that is | |||
included in the security context establishment. This on-path inclusion of the MA NE forgoes end-to-end security guarantees for the end points.</t> | included in the security context establishment. This on-path inclusion of the MA NE forgoes end-to-end security guarantees for the end points.</t> | |||
</section> | ||||
</section> | <section anchor="CC"> | |||
<section anchor="CC"><name>Congestion Control</name> | <name>Congestion Control</name> | |||
<t>Congestion control for RTP SHALL be used in accordance with RTP | <t>Congestion control for RTP <bcp14>SHALL</bcp14> be used in accordance w | |||
ith RTP | ||||
<xref target="RFC3550"/> and with any applicable RTP profile, e.g., AVP <xref ta rget="RFC3551"/> or AVPF <xref target="RFC4585"/>. | <xref target="RFC3550"/> and with any applicable RTP profile, e.g., AVP <xref ta rget="RFC3551"/> or AVPF <xref target="RFC4585"/>. | |||
If best-effort service is being used, an additional requirement is | If best-effort service is being used, an additional requirement is | |||
that users of this payload format MUST monitor packet loss to ensure | that users of this payload format <bcp14>MUST</bcp14> monitor packet loss to ens ure | |||
that the packet loss rate is within an acceptable range. Packet loss | that the packet loss rate is within an acceptable range. Packet loss | |||
is considered acceptable if a TCP flow across the same network path, | is considered acceptable if a TCP flow across the same network path | |||
and experiencing the same network conditions, would achieve an | and experiencing the same network conditions would achieve an | |||
average throughput, measured on a reasonable timescale, that is not | average throughput, measured on a reasonable timescale, that is not | |||
less than all RTP streams combined are achieved. This condition can | less than all RTP streams combined are achieved. This condition can | |||
be satisfied by implementing congestion-control mechanisms to adapt | be satisfied by implementing congestion-control mechanisms to adapt | |||
the transmission rate, the number of layers subscribed for a layered | the transmission rate, by implementing the number of layers subscribed for a lay ered | |||
multicast session, or by arranging for a receiver to leave the | multicast session, or by arranging for a receiver to leave the | |||
session if the loss rate is unacceptably high.</t> | session if the loss rate is unacceptably high.</t> | |||
<t>The bitrate adaptation necessary for obeying the congestion control | ||||
<t>The bitrate adaptation necessary for obeying the congestion control | ||||
principle is easily achievable when real-time encoding is used, for | principle is easily achievable when real-time encoding is used, for | |||
example, by adequately tuning the quantization parameter. | example, by adequately tuning the quantization parameter. | |||
However, when pre-encoded content is being transmitted, bandwidth | However, when pre-encoded content is being transmitted, bandwidth | |||
adaptation requires the pre-coded bitstream to be tailored for such | adaptation requires the pre-coded bitstream to be tailored for such | |||
adaptivity. The key mechanisms available in <xref target="VVC"/> are temporal | adaptivity. The key mechanisms available in <xref target="VVC"/> are temporal | |||
scalability, and spatial/SNR scalability. A media sender can remove | scalability and spatial/SNR scalability. A media sender can remove | |||
NAL units belonging to higher temporal sublayers (i.e., those NAL | NAL units belonging to higher temporal sublayers (i.e., those NAL | |||
units with a high value of TID) or higher spatio-SNR layers until the sending bi trate drops to | units with a high value of TID) or higher spatio-SNR layers until the sending bi trate drops to | |||
an acceptable range.</t> | an acceptable range.</t> | |||
<t>The mechanisms mentioned above generally work within a defined profile | ||||
<t>The mechanisms mentioned above generally work within a defined profile and le | and level; | |||
vel | therefore no renegotiation of the channel is required. Only | |||
and, therefore, no renegotiation of the channel is required. Only | ||||
when non-downgradable parameters (such as profile) are required to be | when non-downgradable parameters (such as profile) are required to be | |||
changed does it become necessary to terminate and restart the RTP | changed does it become necessary to terminate and restart the RTP | |||
stream(s). This may be accomplished by using different RTP payload | stream(s). This may be accomplished by using different RTP payload | |||
types.</t> | types.</t> | |||
<t>MANEs <bcp14>MAY</bcp14> remove certain unusable packets from the RTP s | ||||
<t>MANEs MAY remove certain unusable packets from the RTP stream when | tream when | |||
that RTP stream was damaged due to previous packet losses. This can | that RTP stream was damaged due to previous packet losses. This can | |||
help reduce the network load in certain special cases. For example, | help reduce the network load in certain special cases. For example, | |||
MANEs can remove those FUs where the leading FUs belonging to the | MANEs can remove those FUs where the leading FUs belonging to the | |||
same NAL unit have been lost or those dependent slice segments when | same NAL unit have been lost or those dependent slice segments when | |||
the leading slice segments belonging to the same slice have been | the leading slice segments belonging to the same slice have been | |||
lost, because the trailing FUs or dependent slice segments are | lost, because the trailing FUs or dependent slice segments are | |||
meaningless to most decoders. MANE can also remove higher temporal | meaningless to most decoders. MANE can also remove higher temporal | |||
scalable layers if the outbound transmission (from the MANE's | scalable layers if the outbound transmission (from the MANE's | |||
viewpoint) experiences congestion.</t> | viewpoint) experiences congestion.</t> | |||
</section> | ||||
</section> | <section anchor="iana-considerations"> | |||
<section anchor="iana-considerations"><name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
<t>A new media type has been registered with IANA; see <xref target="opara | ||||
<t>A new media type, as specified in <xref target="oparams"/> of this memo, has | ms"/>. </t> | |||
been registered with IANA.</t> | </section> | |||
</section> | ||||
<section anchor="acknowledgements"><name>Acknowledgements</name> | ||||
<t>Dr. Byeongdoo Choi is thanked for the video codec related technical | ||||
discussion and other aspects in this memo. Xin Zhao and Dr. Xiang Li | ||||
are thanked for their contributions on <xref target="VVC"/> specification descri | ||||
ptive content. | ||||
Spencer Dawkins is thanked for his valuable review comments that led to great | ||||
improvements of this memo. Some parts of this specification share text with the | ||||
RTP payload | ||||
format for HEVC <xref target="RFC7798"/>. We thank the authors of that | ||||
specification for their excellent work.</t> | ||||
</section> | ||||
</middle> | </middle> | |||
<back> | <back> | |||
<references> | ||||
<references title='Normative References'> | <name>References</name> | |||
<references> | ||||
<reference anchor="VVC" target="http://www.itu.int/rec/T-REC-H.266"> | <name>Normative References</name> | |||
<front> | <reference anchor="VVC" target="http://www.itu.int/rec/T-REC-H.266"> | |||
<title>Versatile Video Coding, ITU-T Recommendation H.266</title> | <front> | |||
<author > | <title>Versatile Video Coding</title> | |||
<organization></organization> | <author> | |||
</author> | <organization>ITU-T</organization> | |||
<date year="2020"/> | </author> | |||
</front> | <date month="April" year="2022"/> | |||
</reference> | </front> | |||
<reference anchor="ISO23090-3" target="https://www.iso.org/standard/73022.html"> | <seriesInfo name="ITU-T Recommendation" value="H.266"/> | |||
<front> | </reference> | |||
<title>Information technology - Coded representation of immersive media Part | ||||
3 Versatile Video Coding</title> | ||||
<author initials="" surname="ISO/IEC 23090-3" fullname="ISO/IEC 23090-3 | ||||
"> | ||||
<organization></organization> | ||||
</author> | ||||
<date year="2021"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="VSEI" target="https://www.itu.int/rec/T-REC-H.274"> | ||||
<front> | ||||
<title>Versatile supplemental enhancement information messages for coded vid | ||||
eo bitstreams</title> | ||||
<author > | ||||
<organization></organization> | ||||
</author> | ||||
<date year="2020"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'> | ||||
<front> | ||||
<title>Key words for use in RFCs to Indicate Requirement Levels</title> | ||||
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></a | ||||
uthor> | ||||
<date month='March' year='1997'/> | ||||
<abstract><t>In many standards track documents several words are used to signify | ||||
the requirements in the specification. These words are often capitalized. This | ||||
document defines these words as they should be interpreted in IETF documents. | ||||
This document specifies an Internet Best Current Practices for the Internet Comm | ||||
unity, and requests discussion and suggestions for improvements.</t></abstract> | ||||
</front> | ||||
<seriesInfo name='BCP' value='14'/> | ||||
<seriesInfo name='RFC' value='2119'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC2119'/> | ||||
</reference> | ||||
<reference anchor='RFC3550' target='https://www.rfc-editor.org/info/rfc3550'> | ||||
<front> | ||||
<title>RTP: A Transport Protocol for Real-Time Applications</title> | ||||
<author fullname='H. Schulzrinne' initials='H.' surname='Schulzrinne'><organizat | ||||
ion/></author> | ||||
<author fullname='S. Casner' initials='S.' surname='Casner'><organization/></aut | ||||
hor> | ||||
<author fullname='R. Frederick' initials='R.' surname='Frederick'><organization/ | ||||
></author> | ||||
<author fullname='V. Jacobson' initials='V.' surname='Jacobson'><organization/>< | ||||
/author> | ||||
<date month='July' year='2003'/> | ||||
<abstract><t>This memorandum describes RTP, the real-time transport protocol. R | ||||
TP provides end-to-end network transport functions suitable for applications tra | ||||
nsmitting real-time data, such as audio, video or simulation data, over multicas | ||||
t or unicast network services. RTP does not address resource reservation and do | ||||
es not guarantee quality-of- service for real-time services. The data transport | ||||
is augmented by a control protocol (RTCP) to allow monitoring of the data deliv | ||||
ery in a manner scalable to large multicast networks, and to provide minimal con | ||||
trol and identification functionality. RTP and RTCP are designed to be independ | ||||
ent of the underlying transport and network layers. The protocol supports the u | ||||
se of RTP-level translators and mixers. Most of the text in this memorandum is i | ||||
dentical to RFC 1889 which it obsoletes. There are no changes in the packet for | ||||
mats on the wire, only changes to the rules and algorithms governing how the pro | ||||
tocol is used. The biggest change is an enhancement to the scalable timer algori | ||||
thm for calculating when to send RTCP packets in order to minimize transmission | ||||
in excess of the intended rate when many participants join a session simultaneou | ||||
sly. [STANDARDS-TRACK]</t></abstract> | ||||
</front> | ||||
<seriesInfo name='STD' value='64'/> | ||||
<seriesInfo name='RFC' value='3550'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC3550'/> | ||||
</reference> | ||||
<reference anchor='RFC3551' target='https://www.rfc-editor.org/info/rfc3551'> | ||||
<front> | ||||
<title>RTP Profile for Audio and Video Conferences with Minimal Control</title> | ||||
<author fullname='H. Schulzrinne' initials='H.' surname='Schulzrinne'><organizat | ||||
ion/></author> | ||||
<author fullname='S. Casner' initials='S.' surname='Casner'><organization/></aut | ||||
hor> | ||||
<date month='July' year='2003'/> | ||||
<abstract><t>This document describes a profile called "RTP/AVP" for th | ||||
e use of the real-time transport protocol (RTP), version 2, and the associated c | ||||
ontrol protocol, RTCP, within audio and video multiparticipant conferences with | ||||
minimal control. It provides interpretations of generic fields within the RTP s | ||||
pecification suitable for audio and video conferences. In particular, this docu | ||||
ment defines a set of default mappings from payload type numbers to encodings. T | ||||
his document also describes how audio and video data may be carried within RTP. | ||||
It defines a set of standard encodings and their names when used within RTP. T | ||||
he descriptions provide pointers to reference implementations and the detailed s | ||||
tandards. This document is meant as an aid for implementors of audio, video and | ||||
other real-time multimedia applications. This memorandum obsoletes RFC 1890. I | ||||
t is mostly backwards-compatible except for functions removed because two intero | ||||
perable implementations were not found. The additions to RFC 1890 codify existi | ||||
ng practice in the use of payload formats under this profile and include new pay | ||||
load formats defined since RFC 1890 was published. [STANDARDS-TRACK]</t></abstr | ||||
act> | ||||
</front> | ||||
<seriesInfo name='STD' value='65'/> | ||||
<seriesInfo name='RFC' value='3551'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC3551'/> | ||||
</reference> | ||||
<reference anchor='RFC3711' target='https://www.rfc-editor.org/info/rfc3711'> | ||||
<front> | ||||
<title>The Secure Real-time Transport Protocol (SRTP)</title> | ||||
<author fullname='M. Baugher' initials='M.' surname='Baugher'><organization/></a | ||||
uthor> | ||||
<author fullname='D. McGrew' initials='D.' surname='McGrew'><organization/></aut | ||||
hor> | ||||
<author fullname='M. Naslund' initials='M.' surname='Naslund'><organization/></a | ||||
uthor> | ||||
<author fullname='E. Carrara' initials='E.' surname='Carrara'><organization/></a | ||||
uthor> | ||||
<author fullname='K. Norrman' initials='K.' surname='Norrman'><organization/></a | ||||
uthor> | ||||
<date month='March' year='2004'/> | ||||
<abstract><t>This document describes the Secure Real-time Transport Protocol (SR | ||||
TP), a profile of the Real-time Transport Protocol (RTP), which can provide conf | ||||
identiality, message authentication, and replay protection to the RTP traffic an | ||||
d to the control traffic for RTP, the Real-time Transport Control Protocol (RTCP | ||||
). [STANDARDS-TRACK]</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='3711'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC3711'/> | ||||
</reference> | ||||
<reference anchor='RFC8866' target='https://www.rfc-editor.org/info/rfc8866'> | ||||
<front> | ||||
<title>SDP: Session Description Protocol</title> | ||||
<author fullname='A. Begen' initials='A.' surname='Begen'><organization/></autho | ||||
r> | ||||
<author fullname='P. Kyzivat' initials='P.' surname='Kyzivat'><organization/></a | ||||
uthor> | ||||
<author fullname='C. Perkins' initials='C.' surname='Perkins'><organization/></a | ||||
uthor> | ||||
<author fullname='M. Handley' initials='M.' surname='Handley'><organization/></a | ||||
uthor> | ||||
<date month='January' year='2021'/> | ||||
<abstract><t>This memo defines the Session Description Protocol (SDP). SDP is in | ||||
tended for describing multimedia sessions for the purposes of session announceme | ||||
nt, session invitation, and other forms of multimedia session initiation. This d | ||||
ocument obsoletes RFC 4566.</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='8866'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC8866'/> | ||||
</reference> | ||||
<reference anchor='RFC4585' target='https://www.rfc-editor.org/info/rfc4585'> | ||||
<front> | ||||
<title>Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-Base | ||||
d Feedback (RTP/AVPF)</title> | ||||
<author fullname='J. Ott' initials='J.' surname='Ott'><organization/></author> | ||||
<author fullname='S. Wenger' initials='S.' surname='Wenger'><organization/></aut | ||||
hor> | ||||
<author fullname='N. Sato' initials='N.' surname='Sato'><organization/></author> | ||||
<author fullname='C. Burmeister' initials='C.' surname='Burmeister'><organizatio | ||||
n/></author> | ||||
<author fullname='J. Rey' initials='J.' surname='Rey'><organization/></author> | ||||
<date month='July' year='2006'/> | ||||
<abstract><t>Real-time media streams that use RTP are, to some degree, resilient | ||||
against packet losses. Receivers may use the base mechanisms of the Real-time | ||||
Transport Control Protocol (RTCP) to report packet reception statistics and thus | ||||
allow a sender to adapt its transmission behavior in the mid-term. This is the | ||||
sole means for feedback and feedback-based error repair (besides a few codec-sp | ||||
ecific mechanisms). This document defines an extension to the Audio-visual Prof | ||||
ile (AVP) that enables receivers to provide, statistically, more immediate feedb | ||||
ack to the senders and thus allows for short-term adaptation and efficient feedb | ||||
ack-based repair mechanisms to be implemented. This early feedback profile (AVP | ||||
F) maintains the AVP bandwidth constraints for RTCP and preserves scalability to | ||||
large groups. [STANDARDS-TRACK]</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='4585'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC4585'/> | ||||
</reference> | ||||
<reference anchor='RFC5104' target='https://www.rfc-editor.org/info/rfc5104'> | ||||
<front> | ||||
<title>Codec Control Messages in the RTP Audio-Visual Profile with Feedback (AVP | ||||
F)</title> | ||||
<author fullname='S. Wenger' initials='S.' surname='Wenger'><organization/></aut | ||||
hor> | ||||
<author fullname='U. Chandra' initials='U.' surname='Chandra'><organization/></a | ||||
uthor> | ||||
<author fullname='M. Westerlund' initials='M.' surname='Westerlund'><organizatio | ||||
n/></author> | ||||
<author fullname='B. Burman' initials='B.' surname='Burman'><organization/></aut | ||||
hor> | ||||
<date month='February' year='2008'/> | ||||
<abstract><t>This document specifies a few extensions to the messages defined in | ||||
the Audio-Visual Profile with Feedback (AVPF). They are helpful primarily in c | ||||
onversational multimedia scenarios where centralized multipoint functionalities | ||||
are in use. However, some are also usable in smaller multicast environments and | ||||
point-to-point calls.</t><t>The extensions discussed are messages related to th | ||||
e ITU-T Rec. H.271 Video Back Channel, Full Intra Request, Temporary Maximum Med | ||||
ia Stream Bit Rate, and Temporal-Spatial Trade-off. [STANDARDS-TRACK]</t></abst | ||||
ract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='5104'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC5104'/> | ||||
</reference> | ||||
<reference anchor='RFC5124' target='https://www.rfc-editor.org/info/rfc5124'> | ||||
<front> | ||||
<title>Extended Secure RTP Profile for Real-time Transport Control Protocol (RTC | ||||
P)-Based Feedback (RTP/SAVPF)</title> | ||||
<author fullname='J. Ott' initials='J.' surname='Ott'><organization/></author> | ||||
<author fullname='E. Carrara' initials='E.' surname='Carrara'><organization/></a | ||||
uthor> | ||||
<date month='February' year='2008'/> | ||||
<abstract><t>An RTP profile (SAVP) for secure real-time communications and anoth | ||||
er profile (AVPF) to provide timely feedback from the receivers to a sender are | ||||
defined in RFC 3711 and RFC 4585, respectively. This memo specifies the combina | ||||
tion of both profiles to enable secure RTP communications with feedback. [STAND | ||||
ARDS-TRACK]</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='5124'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC5124'/> | ||||
</reference> | ||||
<reference anchor='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'> | ||||
<front> | ||||
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title> | ||||
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></autho | ||||
r> | ||||
<date month='May' year='2017'/> | ||||
<abstract><t>RFC 2119 specifies common key words that may be used in protocol s | ||||
pecifications. This document aims to reduce the ambiguity by clarifying that on | ||||
ly UPPERCASE usage of the key words have the defined special meanings.</t></abs | ||||
tract> | ||||
</front> | ||||
<seriesInfo name='BCP' value='14'/> | ||||
<seriesInfo name='RFC' value='8174'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC8174'/> | ||||
</reference> | ||||
<reference anchor='RFC8082' target='https://www.rfc-editor.org/info/rfc8082'> | ||||
<front> | ||||
<title>Using Codec Control Messages in the RTP Audio-Visual Profile with Feedbac | ||||
k with Layered Codecs</title> | ||||
<author fullname='S. Wenger' initials='S.' surname='Wenger'><organization/></aut | ||||
hor> | ||||
<author fullname='J. Lennox' initials='J.' surname='Lennox'><organization/></aut | ||||
hor> | ||||
<author fullname='B. Burman' initials='B.' surname='Burman'><organization/></aut | ||||
hor> | ||||
<author fullname='M. Westerlund' initials='M.' surname='Westerlund'><organizatio | ||||
n/></author> | ||||
<date month='March' year='2017'/> | ||||
<abstract><t>This document updates RFC 5104 by fixing a shortcoming in the speci | ||||
fication language of the Codec Control Message Full Intra Request (FIR) descript | ||||
ion when using it with layered codecs. In particular, a decoder refresh point n | ||||
eeds to be sent by a media sender when a FIR is received on any layer of the lay | ||||
ered bitstream, regardless of whether those layers are being sent in a single or | ||||
in multiple RTP flows. The other payload-specific feedback messages defined in | ||||
RFC 5104 and RFC 4585 (which was updated by RFC 5506) have also been analyzed, | ||||
and no corresponding shortcomings have been found.</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='8082'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC8082'/> | ||||
</reference> | ||||
<reference anchor='RFC4556' target='https://www.rfc-editor.org/info/rfc4556'> | ||||
<front> | ||||
<title>Public Key Cryptography for Initial Authentication in Kerberos (PKINIT)</ | ||||
title> | ||||
<author fullname='L. Zhu' initials='L.' surname='Zhu'><organization/></author> | ||||
<author fullname='B. Tung' initials='B.' surname='Tung'><organization/></author> | ||||
<date month='June' year='2006'/> | ||||
<abstract><t>This document describes protocol extensions (hereafter called PKINI | ||||
T) to the Kerberos protocol specification. These extensions provide a method fo | ||||
r integrating public key cryptography into the initial authentication exchange, | ||||
by using asymmetric-key signature and/or encryption algorithms in pre-authentica | ||||
tion data fields. [STANDARDS-TRACK]</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='4556'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC4556'/> | ||||
</reference> | ||||
<reference anchor='RFC3264' target='https://www.rfc-editor.org/info/rfc3264'> | ||||
<front> | ||||
<title>An Offer/Answer Model with Session Description Protocol (SDP)</title> | ||||
<author fullname='J. Rosenberg' initials='J.' surname='Rosenberg'><organization/ | ||||
></author> | ||||
<author fullname='H. Schulzrinne' initials='H.' surname='Schulzrinne'><organizat | ||||
ion/></author> | ||||
<date month='June' year='2002'/> | ||||
<abstract><t>This document defines a mechanism by which two entities can make us | ||||
e of the Session Description Protocol (SDP) to arrive at a common view of a mult | ||||
imedia session between them. In the model, one participant offers the other a d | ||||
escription of the desired session from their perspective, and the other particip | ||||
ant answers with the desired session from their perspective. This offer/answer | ||||
model is most useful in unicast sessions where information from both participant | ||||
s is needed for the complete view of the session. The offer/answer model is use | ||||
d by protocols like the Session Initiation Protocol (SIP). [STANDARDS-TRACK]</t | ||||
></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='3264'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC3264'/> | ||||
</reference> | ||||
<reference anchor='RFC4648' target='https://www.rfc-editor.org/info/rfc4648'> | ||||
<front> | ||||
<title>The Base16, Base32, and Base64 Data Encodings</title> | ||||
<author fullname='S. Josefsson' initials='S.' surname='Josefsson'><organization/ | ||||
></author> | ||||
<date month='October' year='2006'/> | ||||
<abstract><t>This document describes the commonly used base 64, base 32, and bas | ||||
e 16 encoding schemes. It also discusses the use of line-feeds in encoded data, | ||||
use of padding in encoded data, use of non-alphabet characters in encoded data, | ||||
use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK | ||||
]</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='4648'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC4648'/> | ||||
</reference> | ||||
<reference anchor='RFC5576' target='https://www.rfc-editor.org/info/rfc5576'> | ||||
<front> | ||||
<title>Source-Specific Media Attributes in the Session Description Protocol (SDP | ||||
)</title> | ||||
<author fullname='J. Lennox' initials='J.' surname='Lennox'><organization/></aut | ||||
hor> | ||||
<author fullname='J. Ott' initials='J.' surname='Ott'><organization/></author> | ||||
<author fullname='T. Schierl' initials='T.' surname='Schierl'><organization/></a | ||||
uthor> | ||||
<date month='June' year='2009'/> | ||||
<abstract><t>The Session Description Protocol (SDP) provides mechanisms to descr | ||||
ibe attributes of multimedia sessions and of individual media streams (e.g., Rea | ||||
l-time Transport Protocol (RTP) sessions) within a multimedia session, but does | ||||
not provide any mechanism to describe individual media sources within a media st | ||||
ream. This document defines a mechanism to describe RTP media sources, which ar | ||||
e identified by their synchronization source (SSRC) identifiers, in SDP, to asso | ||||
ciate attributes with these sources, and to express relationships among sources. | ||||
It also defines several source-level attributes that can be used to describe p | ||||
roperties of media sources. [STANDARDS-TRACK]</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='5576'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC5576'/> | ||||
</reference> | ||||
</references> | ||||
<references title='Informative References'> | ||||
<reference anchor='RFC7656' target='https://www.rfc-editor.org/info/rfc7656'> | ||||
<front> | ||||
<title>A Taxonomy of Semantics and Mechanisms for Real-Time Transport Protocol ( | ||||
RTP) Sources</title> | ||||
<author fullname='J. Lennox' initials='J.' surname='Lennox'><organization/></aut | ||||
hor> | ||||
<author fullname='K. Gross' initials='K.' surname='Gross'><organization/></autho | ||||
r> | ||||
<author fullname='S. Nandakumar' initials='S.' surname='Nandakumar'><organizatio | ||||
n/></author> | ||||
<author fullname='G. Salgueiro' initials='G.' surname='Salgueiro'><organization/ | ||||
></author> | ||||
<author fullname='B. Burman' initials='B.' role='editor' surname='Burman'><organ | ||||
ization/></author> | ||||
<date month='November' year='2015'/> | ||||
<abstract><t>The terminology about, and associations among, Real-time Transport | ||||
Protocol (RTP) sources can be complex and somewhat opaque. This document descri | ||||
bes a number of existing and proposed properties and relationships among RTP sou | ||||
rces and defines common terminology for discussing protocol entities and their r | ||||
elationships.</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='7656'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC7656'/> | ||||
</reference> | ||||
<reference anchor="CABAC" > | ||||
<front> | ||||
<title>Transform coefficient coding in HEVC, IEEE Transactions on Circuits a | ||||
nd Systems for Video Technology</title> | ||||
<author initials="" surname="" fullname="Sole, J"> | ||||
<organization></organization> | ||||
</author> | ||||
<author initials="" surname="et al" fullname="et al"> | ||||
<organization></organization> | ||||
</author> | ||||
<date year="2012" month="December"/> | ||||
</front> | ||||
<seriesInfo name="DOI" value="10.1109/TCSVT.2012.2223055"/> | ||||
</reference> | ||||
<reference anchor="MPEG2S" > | ||||
<front> | ||||
<title>Information technology - Generic coding of moving pictures and associ | ||||
ated audio information - Part 1: Systems, ISO International Standard 13818-1</ti | ||||
tle> | ||||
<author initials="" surname="IS0/IEC" fullname="IS0/IEC"> | ||||
<organization></organization> | ||||
</author> | ||||
<date year="2013"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="HEVC" target="https://www.itu.int/rec/T-REC-H.265"> | ||||
<front> | ||||
<title>High efficiency video coding, ITU-T Recommendation H.265</title> | ||||
<author > | ||||
<organization></organization> | ||||
</author> | ||||
<date year="2019"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor='RFC6184' target='https://www.rfc-editor.org/info/rfc6184'> | ||||
<front> | ||||
<title>RTP Payload Format for H.264 Video</title> | ||||
<author fullname='Y.-K. Wang' initials='Y.-K.' surname='Wang'><organization/></a | ||||
uthor> | ||||
<author fullname='R. Even' initials='R.' surname='Even'><organization/></author> | ||||
<author fullname='T. Kristensen' initials='T.' surname='Kristensen'><organizatio | ||||
n/></author> | ||||
<author fullname='R. Jesup' initials='R.' surname='Jesup'><organization/></autho | ||||
r> | ||||
<date month='May' year='2011'/> | ||||
<abstract><t>This memo describes an RTP Payload format for the ITU-T Recommendat | ||||
ion H.264 video codec and the technically identical ISO/IEC International Standa | ||||
rd 14496-10 video codec, excluding the Scalable Video Coding (SVC) extension and | ||||
the Multiview Video Coding extension, for which the RTP payload formats are def | ||||
ined elsewhere. The RTP payload format allows for packetization of one or more N | ||||
etwork Abstraction Layer Units (NALUs), produced by an H.264 video encoder, in e | ||||
ach RTP payload. The payload format has wide applicability, as it supports appl | ||||
ications from simple low bitrate conversational usage, to Internet video streami | ||||
ng with interleaved transmission, to high bitrate video-on-demand.</t><t>This me | ||||
mo obsoletes RFC 3984. Changes from RFC 3984 are summarized in Section 14. Iss | ||||
ues on backward compatibility to RFC 3984 are discussed in Section 15. [STANDAR | ||||
DS-TRACK]</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='6184'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC6184'/> | ||||
</reference> | ||||
<reference anchor='RFC6190' target='https://www.rfc-editor.org/info/rfc6190'> | ||||
<front> | ||||
<title>RTP Payload Format for Scalable Video Coding</title> | ||||
<author fullname='S. Wenger' initials='S.' surname='Wenger'><organization/></aut | ||||
hor> | ||||
<author fullname='Y.-K. Wang' initials='Y.-K.' surname='Wang'><organization/></a | ||||
uthor> | ||||
<author fullname='T. Schierl' initials='T.' surname='Schierl'><organization/></a | ||||
uthor> | ||||
<author fullname='A. Eleftheriadis' initials='A.' surname='Eleftheriadis'><organ | ||||
ization/></author> | ||||
<date month='May' year='2011'/> | ||||
<abstract><t>This memo describes an RTP payload format for Scalable Video Coding | ||||
(SVC) as defined in Annex G of ITU-T Recommendation H.264, which is technically | ||||
identical to Amendment 3 of ISO/IEC International Standard 14496-10. The RTP p | ||||
ayload format allows for packetization of one or more Network Abstraction Layer | ||||
(NAL) units in each RTP packet payload, as well as fragmentation of a NAL unit i | ||||
n multiple RTP packets. Furthermore, it supports transmission of an SVC stream o | ||||
ver a single as well as multiple RTP sessions. The payload format defines a new | ||||
media subtype name "H264-SVC", but is still backward compatible to RF | ||||
C 6184 since the base layer, when encapsulated in its own RTP stream, must use t | ||||
he H.264 media subtype name ("H264") and the packetization method spec | ||||
ified in RFC 6184. The payload format has wide applicability in videoconferenci | ||||
ng, Internet video streaming, and high-bitrate entertainment-quality video, amon | ||||
g others. [STANDARDS-TRACK]</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='6190'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC6190'/> | ||||
</reference> | ||||
<reference anchor='RFC7201' target='https://www.rfc-editor.org/info/rfc7201'> | ||||
<front> | ||||
<title>Options for Securing RTP Sessions</title> | ||||
<author fullname='M. Westerlund' initials='M.' surname='Westerlund'><organizatio | ||||
n/></author> | ||||
<author fullname='C. Perkins' initials='C.' surname='Perkins'><organization/></a | ||||
uthor> | ||||
<date month='April' year='2014'/> | ||||
<abstract><t>The Real-time Transport Protocol (RTP) is used in a large number of | ||||
different application domains and environments. This heterogeneity implies tha | ||||
t different security mechanisms are needed to provide services such as confident | ||||
iality, integrity, and source authentication of RTP and RTP Control Protocol (RT | ||||
CP) packets suitable for the various environments. The range of solutions makes | ||||
it difficult for RTP-based application developers to pick the most suitable mec | ||||
hanism. This document provides an overview of a number of security solutions fo | ||||
r RTP and gives guidance for developers on how to choose the appropriate securit | ||||
y mechanism.</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='7201'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC7201'/> | ||||
</reference> | ||||
<reference anchor='RFC7202' target='https://www.rfc-editor.org/info/rfc7202'> | ||||
<front> | ||||
<title>Securing the RTP Framework: Why RTP Does Not Mandate a Single Media Secur | ||||
ity Solution</title> | ||||
<author fullname='C. Perkins' initials='C.' surname='Perkins'><organization/></a | ||||
uthor> | ||||
<author fullname='M. Westerlund' initials='M.' surname='Westerlund'><organizatio | ||||
n/></author> | ||||
<date month='April' year='2014'/> | ||||
<abstract><t>This memo discusses the problem of securing real-time multimedia se | ||||
ssions. It also explains why the Real-time Transport Protocol (RTP) and the ass | ||||
ociated RTP Control Protocol (RTCP) do not mandate a single media security mecha | ||||
nism. This is relevant for designers and reviewers of future RTP extensions to | ||||
ensure that appropriate security mechanisms are mandated and that any such mecha | ||||
nisms are specified in a manner that conforms with the RTP architecture.</t></ab | ||||
stract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='7202'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC7202'/> | ||||
</reference> | ||||
<reference anchor='RFC7798' target='https://www.rfc-editor.org/info/rfc7798'> | <reference anchor="ISO23090-3" target="https://www.iso.org/standard/7302 | |||
<front> | 2.html"> | |||
<title>RTP Payload Format for High Efficiency Video Coding (HEVC)</title> | <front> | |||
<author fullname='Y.-K. Wang' initials='Y.-K.' surname='Wang'><organization/></a | <title>Information technology - Coded representation of immersive me | |||
uthor> | dia - Part 3: Versatile video coding</title> | |||
<author fullname='Y. Sanchez' initials='Y.' surname='Sanchez'><organization/></a | <author> | |||
uthor> | <organization>International Organization for Standardization</orga | |||
<author fullname='T. Schierl' initials='T.' surname='Schierl'><organization/></a | nization> | |||
uthor> | </author> | |||
<author fullname='S. Wenger' initials='S.' surname='Wenger'><organization/></aut | <date month="September" year="2022"/> | |||
hor> | </front> | |||
<author fullname='M. M. Hannuksela' initials='M. M.' surname='Hannuksela'><organ | <seriesInfo name="ISO/IEC" value="23090-3:2022"/> | |||
ization/></author> | </reference> | |||
<date month='March' year='2016'/> | ||||
<abstract><t>This memo describes an RTP payload format for the video coding stan | ||||
dard ITU-T Recommendation H.265 and ISO/IEC International Standard 23008-2, both | ||||
also known as High Efficiency Video Coding (HEVC) and developed by the Joint Co | ||||
llaborative Team on Video Coding (JCT-VC). The RTP payload format allows for pa | ||||
cketization of one or more Network Abstraction Layer (NAL) units in each RTP pac | ||||
ket payload as well as fragmentation of a NAL unit into multiple RTP packets. F | ||||
urthermore, it supports transmission of an HEVC bitstream over a single stream a | ||||
s well as multiple RTP streams. When multiple RTP streams are used, a single tra | ||||
nsport or multiple transports may be utilized. The payload format has wide appl | ||||
icability in videoconferencing, Internet video streaming, and high-bitrate enter | ||||
tainment-quality video, among others.</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='7798'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC7798'/> | ||||
</reference> | ||||
<reference anchor='RFC2974' target='https://www.rfc-editor.org/info/rfc2974'> | <reference anchor="VSEI" target="https://www.itu.int/rec/T-REC-H.274"> | |||
<front> | <front> | |||
<title>Session Announcement Protocol</title> | <title>Versatile supplemental enhancement information messages for c | |||
<author fullname='M. Handley' initials='M.' surname='Handley'><organization/></a | oded video bitstreams</title> | |||
uthor> | <author> | |||
<author fullname='C. Perkins' initials='C.' surname='Perkins'><organization/></a | <organization>ITU-T</organization> | |||
uthor> | </author> | |||
<author fullname='E. Whelan' initials='E.' surname='Whelan'><organization/></aut | <date month="May" year="2022"/> | |||
hor> | </front> | |||
<date month='October' year='2000'/> | <seriesInfo name="ITU-T Recommendation" value="H.274"/> | |||
<abstract><t>This document describes version 2 of the multicast session director | </reference> | |||
y announcement protocol, Session Announcement Protocol (SAP), and the related is | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
sues affecting security and scalability that should be taken into account by imp | 119.xml"/> | |||
lementors. This memo defines an Experimental Protocol for the Internet communit | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | |||
y.</t></abstract> | 550.xml"/> | |||
</front> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | |||
<seriesInfo name='RFC' value='2974'/> | 551.xml"/> | |||
<seriesInfo name='DOI' value='10.17487/RFC2974'/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | |||
</reference> | 711.xml"/> | |||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
866.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
585.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | ||||
104.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | ||||
124.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
174.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
082.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | ||||
264.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
648.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | ||||
576.xml"/> | ||||
</references> | ||||
<references> | ||||
<name>Informative References</name> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
656.xml"/> | ||||
<reference anchor='RFC7826' target='https://www.rfc-editor.org/info/rfc7826'> | <reference anchor="CABAC"> | |||
<front> | <front> | |||
<title>Real-Time Streaming Protocol Version 2.0</title> | <title>Transform coefficient coding in HEVC</title> | |||
<author fullname='H. Schulzrinne' initials='H.' surname='Schulzrinne'><organizat | <author> | |||
ion/></author> | <organization>Sole, J., et al.</organization> | |||
<author fullname='A. Rao' initials='A.' surname='Rao'><organization/></author> | </author> | |||
<author fullname='R. Lanphier' initials='R.' surname='Lanphier'><organization/>< | <date year="2012" month="December"/> | |||
/author> | </front> | |||
<author fullname='M. Westerlund' initials='M.' surname='Westerlund'><organizatio | <refcontent>IEEE Transactions on Circuits and Systems for Video Technol | |||
n/></author> | ogy</refcontent> | |||
<author fullname='M. Stiemerling' initials='M.' role='editor' surname='Stiemerli | <seriesInfo name="DOI" value="10.1109/TCSVT.2012.2223055"/> | |||
ng'><organization/></author> | </reference> | |||
<date month='December' year='2016'/> | ||||
<abstract><t>This memorandum defines the Real-Time Streaming Protocol (RTSP) ver | ||||
sion 2.0, which obsoletes RTSP version 1.0 defined in RFC 2326.</t><t>RTSP is an | ||||
application-layer protocol for the setup and control of the delivery of data wi | ||||
th real-time properties. RTSP provides an extensible framework to enable contro | ||||
lled, on-demand delivery of real-time data, such as audio and video. Sources of | ||||
data can include both live data feeds and stored clips. This protocol is inten | ||||
ded to control multiple data delivery sessions; provide a means for choosing del | ||||
ivery channels such as UDP, multicast UDP, and TCP; and provide a means for choo | ||||
sing delivery mechanisms based upon RTP (RFC 3550).</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='7826'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC7826'/> | ||||
</reference> | ||||
<reference anchor='RFC7667' target='https://www.rfc-editor.org/info/rfc7667'> | <reference anchor="MPEG2S"> | |||
<front> | <front> | |||
<title>RTP Topologies</title> | <title>Information technology - Generic coding of moving pictures an | |||
<author fullname='M. Westerlund' initials='M.' surname='Westerlund'><organizatio | d associated audio information - Part 1: Systems</title> | |||
n/></author> | <author> | |||
<author fullname='S. Wenger' initials='S.' surname='Wenger'><organization/></aut | <organization>International Organization for Standardization</orga | |||
hor> | nization> | |||
<date month='November' year='2015'/> | </author> | |||
<abstract><t>This document discusses point-to-point and multi-endpoint topologie | <date month="September" year="2022"/> | |||
s used in environments based on the Real-time Transport Protocol (RTP). In parti | </front> | |||
cular, centralized topologies commonly employed in the video conferencing indust | <seriesInfo name="ISO/IEC" value="13818-1:2022"/> | |||
ry are mapped to the RTP terminology.</t></abstract> | </reference> | |||
</front> | ||||
<seriesInfo name='RFC' value='7667'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC7667'/> | ||||
</reference> | ||||
<reference anchor="HEVC" target="https://www.itu.int/rec/T-REC-H.265"> | ||||
<front> | ||||
<title>High efficiency video coding</title> | ||||
<author> | ||||
<organization>ITU-T</organization> | ||||
</author> | ||||
<date month="August" year="2021"/> | ||||
</front> | ||||
<seriesInfo name="ITU-T Recommendation" value="H.265"/> | ||||
</reference> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
184.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
190.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
201.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
202.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
798.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | ||||
974.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
826.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
667.xml"/> | ||||
</references> | ||||
</references> | </references> | |||
<section anchor="acknowledgements" numbered="false"> | ||||
<name>Acknowledgements</name> | ||||
<t><contact fullname="Dr. Byeongdoo Choi"/> is thanked for the video-codec | ||||
-related technical | ||||
discussion and other aspects in this memo. <contact fullname="Xin Zhao"/> and <c | ||||
ontact fullname="Dr. Xiang Li"/> | ||||
are thanked for their contributions on <xref target="VVC"/> specification descri | ||||
ptive content. | ||||
<contact fullname="Spencer Dawkins"/> is thanked for his valuable review comment | ||||
s that led to great | ||||
improvements of this memo. Some parts of this specification share text with the | ||||
RTP payload | ||||
format for HEVC <xref target="RFC7798"/>. We thank the authors of that | ||||
specification for their excellent work.</t> | ||||
</section> | ||||
<section anchor="changehistory"><name>Change History</name> | <!-- [rfced] | |||
<t>To RFC Editor: PLEASE REMOVE ThIS SECTION BEFORE PUBLICATION</t> | In addition, may we add these to the abbreviations or definitions sections? If | |||
added to definitions, we could use the verbatim definitions from [VVC]. | ||||
<t>draft-zhao-payload-rtp-vvc-00 ........ initial version</t> | ||||
<t>draft-zhao-payload-rtp-vvc-01 ........ editorial clarifications and correctio | ||||
ns</t> | ||||
<t>draft-ietf-payload-rtp-vvc-00 ........ initial WG draft</t> | ||||
<t>draft-ietf-payload-rtp-vvc-01 ........ VVC specification update</t> | ||||
<t>draft-ietf-payload-rtp-vvc-02 ........ VVC specification update</t> | ||||
<t>draft-ietf-payload-rtp-vvc-03 ........ VVC coding tool introduction update</t | ||||
> | ||||
<t>draft-ietf-payload-rtp-vvc-04 ........ VVC coding tool introduction update</t | ||||
> | ||||
<t>draft-ietf-payload-rtp-vvc-05 ........ reference udpate and adding placement | ||||
for open issues</t> | ||||
<t>draft-ietf-payload-rtp-vvc-06 ........ address editor's note</t> | ||||
<t>draft-ietf-payload-rtp-vvc-07 ........ address editor's notes</t> | ||||
<t>draft-ietf-payload-rtp-vvc-08 ........ address editor's notes</t> | ||||
<t>draft-ietf-payload-rtp-vvc-09 ........ address editor's notes</t> | ||||
<t>draft-ietf-payload-rtp-vvc-10 ........ address editor's notes</t> | CU - coding unit | |||
<t>draft-ietf-payload-rtp-vvc-11 ........ address editor's notes</t> | From [VVC]: | |||
coding unit (CU): A coding block of luma samples, two corresponding coding block | ||||
s of chroma samples of a picture that has three sample arrays in the single tree | ||||
mode, or a coding block of luma samples of a picture that has three sample arra | ||||
ys in the dual tree mode, or two coding blocks of chroma samples of a picture th | ||||
at has three sample arrays in the dual tree mode, or a coding block of samples o | ||||
f a monochrome picture, and syntax structures used to code the samples. | ||||
<t>draft-ietf-payload-rtp-vvc-12 ........ address editor's notes</t> | PH - picture header per | |||
<t>draft-ietf-payload-rtp-vvc-13 ........ address editor's notes</t> | From [VVC]: | |||
picture header (PH): A syntax structure containing syntax elements that apply to | ||||
all slices of a coded picture. | ||||
<t>draft-ietf-payload-rtp-vvc-14 ........ address 2nd WGLC comments</t> | CTB - coding tree block (note: CTB only appears in the definition for CTU.) | |||
</section> | From [VVC]: | |||
coding tree unit (CTU): A CTB of luma samples, two corresponding CTBs of chroma | ||||
samples of a picture that has three sample arrays, or a CTB of samples of a mono | ||||
chrome picture, and syntax structures used to code the samples. | ||||
</back> | RBSP - raw byte sequence payload | |||
<!-- ##markdown-source: | From [VVC]: | |||
H4sIANsL6GIAA+y923LbWJYo+I6vwNgRp8UpkinJtnzJzoySJbusbl/Upuw8 | raw byte sequence payload (RBSP): A syntax structure containing an integer numbe | |||
3V0VDpAEJVSSABsAJSszXdEfMS8nYubtfMB8w5w/6S+Zdd17bQCkKNuZdfqi | r of bytes that is encapsulated in a NAL unit and is either empty or has the for | |||
rMqUSGBf1l573S+DwSCqs3qePonfnp3Gp8n1vEim8fOiXCR1PCvK+H1aVkmd | m of a string of data bits containing syntax elements followed by an RBSP stop b | |||
zdP4fTZNi/iomGb5ebzz/v1RL0rG4zK95HeX8u7MvPv+KJoWkzxZwPjTMpnV | it and zero or more subsequent bits equal to 0. | |||
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 | ||||
n8zZY1QjSiLlZTrd7vj7Wvqb3ompgNxsxfIrtmGoWEDozJaKba9CTVDDw6Zj | ||||
wMXf+ac7hD2U80E1Mv2g3AmrF0f6hgLlznN+CR04K1+uHauz96jG9VKWq3b5 | ||||
2Wqei+ToizrVxgQkG5JIpyrGU5GWcwBAJmTTJ/EBSQsKR40ORYRD9Ya5KR/J | ||||
NSmp/lgpoxhvgguNAtThxxjxFKmSRrDY3BtEnctCv4ncNxr85nKrbXA6KmLs | ||||
EweaB2T4SfzA7yOZf8AVfkABQfuSEdkxAkJwr6kbSuLy5JACntEyH8QGaFz6 | ||||
yfrGEM8xboijDcnwygOEMoopkOhocz9eogCWuiZO0UhQ/OHw/nB/uM98WI8L | ||||
OMyT+F5wVBrNCaf1YQnEa2/TVvXhKNNTLZU7uLXiIPGeMHwmIY1cnyrCYsxY | ||||
oJZYHojb8sYh/e3e2aUIPexGzw+zAETUNnJ+ykAE3UBt3ZR7faplrYRXySGn | ||||
jqmK1klKW0Mr1SQ3qTUhNGHiZJaO3mynMshz7nGGUUZnbZIsOCF2ONdqSiuP | ||||
GV8K0os2N2GrBIfIIkvBbobUtQ47JX/69CSKfhe/qyRzEb9UJqWFqZp9++D5 | ||||
02ZXUT+R0/HY1WaafUr91jhu1JXW4X2+4ROfRm8gjoP04XXHRagSB33KmcnC | ||||
Eeh5XOWZ9WjJIv3yrF3OVvtiXQLmkRXgDvhLHJPyr/i+2+p0PoXDuT5HUgvp | ||||
2GTdYvZ4XUyKOTYBOJWujtiQ+tOnxjEcncbqXTLRmdhpTcM0Kmw+ygIb1vqj | ||||
KNj4zqt3o7M7ff5v/PoN/f722T+8O3n77Bh/H704fPnS/aJPjF68effy2P/m | ||||
3zx68+rVs9fH/DJ8Gjc+enX4j3cY/HfenJ6dvAH43nF2Fm16SCIiw4hd5GVa | ||||
c/mogHE/hU3v3WegYEfvT58EQHsP72N7xYs018BXIJX8J/u5l0sM8pDKDpNk | ||||
mdXJvDIqCZIMvINwGF6RI+vleFyml1miAP35rlH10L4N33+iy2vfhJt6FuzP | ||||
hahj/bxKJF//vBpnYDv+Y7hNIHfDwc/J6u3SGAJdk1tMcpvXtsxMw8EILtjO | ||||
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 | ||||
YS/9+KeXhya+Q/gfMDc5nusRAgA= | ||||
<!-- [rfced] Please review the "Inclusive Language" portion of the online | ||||
Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language> an | ||||
d the language used in your document and let us know if any changes are needed. | ||||
For example, please consider whether "natively", "traditional", and "traditiona | ||||
lly" should be updated for clarity. While the NIST website | ||||
<https://www.nist.gov/nist-research-library/nist-technical-series-publications-a | ||||
uthor-instructions#table1> | ||||
indicates that "traditional" is potentially biased, it is also ambiguous. | ||||
It is a subjective term, as it is not the same for everyone. | ||||
--> | --> | |||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 213 change blocks. | ||||
3995 lines changed or deleted | 2198 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |