larger than the value of PDON, the DON distance is equal to DON -
PDON. Otherwise, the DON distance is equal to 65535 - PDON + DON
+ 1.
o NAL units are delivered to the decoder in ascending order of DON
distance. If several NAL units share the same value of DON
distance, they can be passed to the decoder in any order.
o When a desired number of NAL units have been passed to the
decoder, the value of PDON is set to the value of DON for the last
NAL unit passed to the decoder.
7.3. Additional De-Packetization Guidelines
The following additional de-packetization rules may be used to
implement an operational H.264 de-packetizer:
o Intelligent RTP receivers (e.g., in gateways) may identify lost
coded slice data partitions A (DPAs). If a lost DPA is found, a
gateway may decide not to send the corresponding coded slice data
partitions B and C, as their information is meaningless for H.264
decoders. In this way a MANE can reduce network load by
discarding useless packets without parsing a complex bitstream.
o Intelligent RTP receivers (e.g., in gateways) may identify lost
FUs. If a lost FU is found, a gateway may decide not to send the
following FUs of the same fragmented NAL unit, as their
information is meaningless for H.264 decoders. In this way a MANE
can reduce network load by discarding useless packets without
parsing a complex bitstream.
o Intelligent receivers having to discard packets or NALUs should
first discard all packets/NALUs in which the value of the NRI
field of the NAL unit type octet is equal to 0. This will
minimize the impact on user experience and keep the reference
pictures intact. If more packets have to be discarded, then
packets with a numerically lower NRI value should be discarded
before packets with a numerically higher NRI value. However,
discarding any packets with an NRI bigger than 0 very likely leads
to decoder drift and SHOULD be avoided.
8. Payload Format Parameters
This section specifies the parameters that MAY be used to select
optional features of the payload format and certain features of the
bitstream. The parameters are specified here as part of the MIME
subtype registration for the ITU-T H.264 | ISO/IEC 14496-10 codec. A
mapping of the parameters into the Session Description Protocol (SDP)
[5] is also provided for applications that use SDP. Equivalent
parameters could be defined elsewhere for use with control protocols
that do not use MIME or SDP.
Some parameters provide a receiver with the properties of the stream
that will be sent. The name of all these parameters starts with
"sprop" for stream properties. Some of these "sprop" parameters are
limited by other payload or codec configuration parameters. For
example, the sprop-parameter-sets parameter is constrained by the
profile-level-id parameter. The media sender selects all "sprop"
parameters rather than the receiver. This uncommon characteristic of
the "sprop" parameters may not be compatible with some signaling
protocol concepts, in which case the use of these parameters SHOULD
be avoided.
8.1. MIME Registration
The MIME subtype for the ITU-T H.264 | ISO/IEC 14496-10 codec is
allocated from the IETF tree.
The receiver MUST ignore any unspecified parameter.
Media Type name: video
Media subtype name: H264
Required parameters: none
OPTIONAL parameters:
profile-level-id:
A base16 [6] (hexadecimal) representation of
the following three bytes in the sequence
parameter set NAL unit specified in [1]: 1)
profile_idc, 2) a byte herein referred to as
profile-iop, composed of the values of
constraint_set0_flag, constraint_set1_flag,
constraint_set2_flag, and reserved_zero_5bits
in bit-significance order, starting from the
most significant bit, and 3) level_idc. Note
that reserved_zero_5bits is required to be
equal to 0 in [1], but other values for it may
be specified in the future by ITU-T or ISO/IEC.
If the profile-level-id parameter is used to
indicate properties of a NAL unit stream, it
indicates the profile and level that a decoder
has to support in order to comply with [1] when
it decodes the stream. The profile-iop byte
indicates whether the NAL unit stream also
obeys all constraints of the indicated profiles
as follows. If bit 7 (the most significant
bit), bit 6, or bit 5 of profile-iop is equal
to 1, all constraints of the Baseline profile,
the Main profile, or the Extended profile,
respectively, are obeyed in the NAL unit
stream.
If the profile-level-id parameter is used for
capability exchange or session setup procedure,
it indicates the profile that the codec
supports and the highest level
supported for the signaled profile. The
profile-iop byte indicates whether the codec
has additional limitations whereby only the
common subset of the algorithmic features and
limitations of the profiles signaled with the
profile-iop byte and of the profile indicated
by profile_idc is supported by the codec. For
example, if a codec supports only the common
subset of the coding tools of the Baseline
profile and the Main profile at level 2.1 and
below, the profile-level-id becomes 42E015, in
which 42 stands for the Baseline profile, E0
indicates that only the common subset for all
profiles is supported, and 15 indicates level
2.1.
Informative note: Capability exchange and
session setup procedures should provide
means to list the capabilities for each
supported codec profile separately. For
example, the one-of-N codec selection
procedure of the SDP Offer/Answer model can
be used (section 10.2 of [7]).
If no profile-level-id is present, the Baseline
Profile without additional constraints at Level
1 MUST be implied.
max-mbps, max-fs, max-cpb, max-dpb, and max-br:
These parameters MAY be used to signal the
capabilities of a receiver implementation.
These parameters MUST NOT be used for any other
purpose. The profile-level-id parameter MUST
be present in the same receiver capability
description that contains any of these
parameters. The level conveyed in the value of
the profile-level-id parameter MUST be such
that the receiver is fully capable of
supporting. max-mbps, max-fs, max-cpb, max-
dpb, and max-br MAY be used to indicate
capabilities of the receiver that extend the
required capabilities of the signaled level, as
specified below.
When more than one parameter from the set (max-
mbps, max-fs, max-cpb, max-dpb, max-br) is
present, the receiver MUST support all signaled
capabilities simultaneously. For example, if
both max-mbps and max-br are present, the
signaled level with the extension of both the
frame rate and bit rate is supported. That is,
the receiver is able to decode NAL unit
streams in which the macroblock processing rate
is up to max-mbps (inclusive), the bit rate is
up to max-br (inclusive), the coded picture
buffer size is derived as specified in the
semantics of the max-br parameter below, and
other properties comply with the level
specified in the value of the profile-level-id
parameter.
A receiver MUST NOT signal values of max-
mbps, max-fs, max-cpb, max-dpb, and max-br that
meet the requirements of a higher level,
referred to as level A herein, compared to the
level specified in the value of the profile-
level-id parameter, if the receiver can support
all the properties of level A.
Informative note: When the OPTIONAL MIME
type parameters are used to signal the
properties of a NAL unit stream, max-mbps,
max-fs, max-cpb, max-dpb, and max-br are
not present, and the value of profile-
level-id must always be such that the NAL
unit stream complies fully with the
specified profile and level.
max-mbps: The value of max-mbps is an integer indicating
the maximum macroblock processing rate in units
of macroblocks per second. The max-mbps
parameter signals that the receiver is capable
of decoding video at a higher rate than is
required by the signaled level conveyed in the
value of the profile-level-id parameter. When
max-mbps is signaled, the receiver MUST be able
to decode NAL unit streams that conform to the
signaled level, with the exception that the
MaxMBPS value in Table A-1 of [1] for the
signaled level is replaced with the value of
max-mbps. The value of max-mbps MUST be
greater than or equal to the value of MaxMBPS
for the level given in Table A-1 of [1].
Senders MAY use this knowledge to send pictures
of a given size at a higher picture rate than
is indicated in the signaled level.
max-fs: The value of max-fs is an integer indicating
the maximum frame size in units of macroblocks.
The max-fs parameter signals that the receiver
is capable of decoding larger picture sizes
than are required by the signaled level conveyed
in the value of the profile-level-id parameter.
When max-fs is signaled, the receiver MUST be
able to decode NAL unit streams that conform to
the signaled level, with the exception that the
MaxFS value in Table A-1 of [1] for the
signaled level is replaced with the value of
max-fs. The value of max-fs MUST be greater
than or equal to the value of MaxFS for the
level given in Table A-1 of [1]. Senders MAY
use this knowledge to send larger pictures at a
proportionally lower frame rate than is
indicated in the signaled level.
max-cpb The value of max-cpb is an integer indicating
the maximum coded picture buffer size in units
of 1000 bits for the VCL HRD parameters (see
A.3.1 item i of [1]) and in units of 1200 bits
for the NAL HRD parameters (see A.3.1 item j of
[1]). The max-cpb parameter signals that the
receiver has more memory than the minimum
amount of coded picture buffer memory required
by the signaled level conveyed in the value of
the profile-level-id parameter. When max-cpb
is signaled, the receiver MUST be able to
decode NAL unit streams that conform to the
signaled level, with the exception that the
MaxCPB value in Table A-1 of [1] for the
signaled level is replaced with the value of
max-cpb. The value of max-cpb MUST be greater
than or equal to the value of MaxCPB for the
level given in Table A-1 of [1]. Senders MAY
use this knowledge to construct coded video
streams with greater variation of bit rate
than can be achieved with the
MaxCPB value in Table A-1 of [1].
Informative note: The coded picture buffer
is used in the hypothetical reference
decoder (Annex C) of H.264. The use of the
hypothetical reference decoder is
recommended in H.264 encoders to verify
that the produced bitstream conforms to the
standard and to control the output bitrate.
Thus, the coded picture buffer is
conceptually independent of any other
potential buffers in the receiver,
including de-interleaving and de-jitter
buffers. The coded picture buffer need not
be implemented in decoders as specified in
Annex C of H.264, but rather standard-
compliant decoders can have any buffering
arrangements provided that they can decode
standard-compliant bitstreams. Thus, in
practice, the input buffer for video
decoder can be integrated with de-
interleaving and de-jitter buffers of the
receiver.
max-dpb: The value of max-dpb is an integer indicating
the maximum decoded picture buffer size in
units of 1024 bytes. The max-dpb parameter
signals that the receiver has more memory than
the minimum amount of decoded picture buffer
memory required by the signaled level conveyed
in the value of the profile-level-id parameter.
When max-dpb is signaled, the receiver MUST be
able to decode NAL unit streams that conform to
the signaled level, with the exception that the
MaxDPB value in Table A-1 of [1] for the
signaled level is replaced with the value of
max-dpb. Consequently, a receiver that signals
max-dpb MUST be capable of storing the
following number of decoded frames,
complementary field pairs, and non-paired