Draft Ietf Payload RTP g718 03
Draft Ietf Payload RTP g718 03
Abstract
Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4
3. Background . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1. The G.718 Codec . . . . . . . . . . . . . . . . . . . . . 4
3.2. Benefits of Layered Design . . . . . . . . . . . . . . . . 6
3.3. Transmitting Layered Data . . . . . . . . . . . . . . . . 6
3.4. Scaling Scenarios and Rate Control . . . . . . . . . . . . 7
4. G.718 RTP Payload Format . . . . . . . . . . . . . . . . . . . 7
4.1. Payload Structure . . . . . . . . . . . . . . . . . . . . 8
4.1.1. Payload Header . . . . . . . . . . . . . . . . . . . . 8
4.1.2. G.718 Transport Blocks . . . . . . . . . . . . . . . . 8
4.2. Handling The Encoded Data . . . . . . . . . . . . . . . . 11
4.3. G.718 Scaling . . . . . . . . . . . . . . . . . . . . . . 13
4.4. CRC Verification . . . . . . . . . . . . . . . . . . . . . 13
4.5. G.718 Session . . . . . . . . . . . . . . . . . . . . . . 14
4.6. Cross-stream/Cross-layer Timing Synchronization . . . . . 14
4.7. RTP Header Usage . . . . . . . . . . . . . . . . . . . . . 14
5. Payload Format Parameters . . . . . . . . . . . . . . . . . . 15
5.1. Media Type Registration . . . . . . . . . . . . . . . . . 15
5.2. Mapping to SDP Parameters . . . . . . . . . . . . . . . . 17
5.3. Offer/Answer Considerations . . . . . . . . . . . . . . . 17
5.4. Declarative Usage of SDP . . . . . . . . . . . . . . . . . 18
5.5. SDP Examples . . . . . . . . . . . . . . . . . . . . . . . 18
5.5.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . 18
5.5.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . 18
5.5.3. Example 3 . . . . . . . . . . . . . . . . . . . . . . 19
6. Congestion Control . . . . . . . . . . . . . . . . . . . . . . 20
7. Security Considerations . . . . . . . . . . . . . . . . . . . 20
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 21
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 21
10.1. Normative References . . . . . . . . . . . . . . . . . . . 21
10.2. Informative References . . . . . . . . . . . . . . . . . . 22
Appendix A. Payload Examples . . . . . . . . . . . . . . . . . . 23
A.1. Simple Payload Examples . . . . . . . . . . . . . . . . . 23
A.1.1. All The Layers in The Same Payload . . . . . . . . . . 23
A.1.2. Layers in Seperate RTP Streams . . . . . . . . . . . . 24
A.2. Advanced Examples . . . . . . . . . . . . . . . . . . . . 25
A.2.1. Different Update Rate for Subset of Layers . . . . . . 25
A.2.2. Redundant Frames With Limited Set of Layers . . . . . 26
Zorn, et al. Expires February 17, 2013 [Page 3]
Internet-Draft RTP Payload for G.718 Speech/Audio August 2012
1. Introduction
2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
3. Background
The sizes, sampling rates and possible outputs of the G.718 core
codec layers L1-L5 are summarized in Table 1 below, where the "Bytes"
column indicates the number of bytes per encoded data unit for a
layer. NB and WB denote narrowband and wideband, respectively. The
"Bytes" column in other tables has the same meaning. Note that for
layers L1 and L2, the corresponding output may either be NB or WB,
depending on the rendering device and the application requirement,
regardless of the sampling rate of the encoded data.
Zorn, et al. Expires February 17, 2013 [Page 4]
Internet-Draft RTP Payload for G.718 Speech/Audio August 2012
Note that the bit-rate for the raw bit-stream of AMR-WB mode 2 is
12.65 kbits/s. However, after counting the padding bits to make each
encoded data unit byte-aligned, as in the octet-aligned mode
specified in [RFC4867], the resulting bit-rate is then 12.8 kbits/s.
In principle there are two basic approaches to carry the data from a
layered encoder:
The basic G.718 source data unit is one layer of an encoded frame.
Since generally the term layer refers to time series of data
Zorn, et al. Expires February 17, 2013 [Page 7]
Internet-Draft RTP Payload for G.718 Speech/Audio August 2012
+-+-+-+-+-+-+-+-+
| CRC |
+-+-+-+-+-+-+-+-+
On the receiving end the payload CRC checksum can be used to verify
the correct reception of any contiguous subset of transport blocks
within one RTP packet starting from the beginning of the primary
transport block (see Section 4.4 for a detailed description).
The basic building block of the G.718 RTP payload data is an G.718
transport block (TB). There are two types of transport blocks:
primary and secondary.
Zorn, et al. Expires February 17, 2013 [Page 8]
Internet-Draft RTP Payload for G.718 Speech/Audio August 2012
0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+----------------------------+
| L-ID |NF | Encoded data |
+-+-+-+-+-+-+-+-+----------------------------+
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+----------------------------+-+-+-+-+-+-+-+-+
| L-ID |NF | Encoded Data | Tail |
+-+-+-+-+-+-+-+-+----------------------------+-+-+-+-+-+-+-+-+
The layer ID (L-ID) and the NF fields form the transport block
header. The L-ID field is used to identify the layer structure of
the encoded data carried in this G.718 transport block, and the NF
field indicates the number of encoded frames with this layer
structure carried in the Encoded data part following the transport
block header. The Tail field of the secondary transport block
carries a modified 8-bit CRC checksum computed over the transport
block, as specified below.
L-ID (6 bits)
Identification of the encoded data carried in this transport
block. Table 3 below specifies the mapping between L-ID and the
encoded data. Note that L-ID is treated as an unsigned integer.
Zorn, et al. Expires February 17, 2013 [Page 9]
Internet-Draft RTP Payload for G.718 Speech/Audio August 2012
NF (2 bits)
Number of frames in this transport block (2 bits) decreased by
one. The number of frames is equal to the value of NF incremented
by one. For example, value NF=0 indicates that the transport
block carries one frame, and value NF=3 indicate that the
transport block carries four frames. If the sender wants to
encapsulate more than four frames per payload, several transport
blocks need to be used.
Tail (8 bits)
The Tail field of the secondary transport block carries a bit
field that is needed to modify the partial CRC checksum over the
payload data up to the end of this TB to match the payload CRC
field value carried in the payload header.
Zorn, et al. Expires February 17, 2013 [Page 10]
Internet-Draft RTP Payload for G.718 Speech/Audio August 2012
o The EDUs with the same layer number within a transport block MUST
be arranged in decoding order
+---------+-----+-------+-------+-------+-------+-------+--------+
| L-ID=3 |NF=1 | F1-L1 | F2-L1 | F1-L2 | F2-L2 | F1-L3 | F2-L3 |
+---------+-----+-------+-------+-------+-------+-------+--------+
+---------+-----+-------+---------+-----+-------+
| L-ID=1 |NF=0 | F1-L1 | L-ID=1 |NF=0 | F2-L1 |
+---------+-----+-------+---------+-----+-------+
| L-ID=8 |NF=0 | F1-L2 | L-ID=8 |NF=0 | F2-L2 |
+---------+-----+-------+---------+-----+-------+
| L-ID=14 |NF=0 | F1-L3 | L-ID=14 |NF=0 | F2-L3 |
+---------+-----+-------+---------+-----+-------+
+---------+-----+-------+-------+---------+-----+-------+-------+
| L-ID=1 |NF=1 | F1-L1 | F2-L1 | L-ID=6 |NF=1 | F1-L2 | F2-L2 |
+---------+-----+-------+-------+---------+-----+-------+-------+
| L-ID=10 |NF=1 | F1-L3 | F2-L3 |
+---------+-----+-------+-------+
While the first example carrying data from all layers in the same
transport block obviously consumes less bandwidth, the second example
using separate transport block for each EDU, and the third example
Zorn, et al. Expires February 17, 2013 [Page 12]
Internet-Draft RTP Payload for G.718 Speech/Audio August 2012
On the receiving end the CRC verification is made in such a way that
the CRC computation is started from the beginning of the primary TB,
Zorn, et al. Expires February 17, 2013 [Page 13]
Internet-Draft RTP Payload for G.718 Speech/Audio August 2012
i.e. from the MSB of the first octet of the TB(1), and the
computation is continued until the end of the payload data or until
an erroneous TB is encountered. At the end of each TB a check MAY be
performed: if the CRC value at the end of TB(n) matches the payload
CRC value received in the payload header, the verification is
successful and the data up TB(n) is valid. If the CRC value at the
end of TB(n) does not match the payload CRC value received in the
payload header, there is an error in the TB(n) and it MUST be
discarded as corrupted. Furthermore, if the verification indicates
corrupted TB(n), all subsequent transport blocks TB(m) with m>n MUST
also be discarded.
This section specifies the usage of some fields of the RTP header
(specified in Section 5 of [RFC3550]) with the G.718 RTP payload
format. The settings for other RTP header fields are as specified in
[RFC3550].
The marker bit (M) of each of the RTP streams of the session SHALL be
set to value 1 if the payload carries an EDU belonging to the first
frame after an inactive period, i.e. an EDU from the first frame of a
talkspurt. For all other packets the marker bit is set to value 0.
Zorn, et al. Expires February 17, 2013 [Page 14]
Internet-Draft RTP Payload for G.718 Speech/Audio August 2012
Optional parameters:
Encoding considerations:
This media type is framed and contains binary data; see Section
4.8 of [RFC4288].
Restrictions on usage:
This media type depends on RTP framing, and hence is only defined
for transfer via RTP [RFC3550].
Change controller:
IETF Audio/Video Transport Working Group delegated from the IESG.
o The media type ("audio") goes in SDP "m=" as the media name.
5.5.1. Example 1
The first example illustrates the simple case with the G.718 session
employing a single RTP session and the AVPF profile is offered, and
the answer accepts the offer without any changes.
Offer:
Answer:
5.5.2. Example 2
This example shows a bit more complex case where the G.718 session
using a single RTP session and the AVPF profile is offered with the
restriction to send/receive only with layers L1 and L2. The answer
indicates that the other end-point is happy to receive (and send)
layers up to L5.
Offer:
Answer:
5.5.3. Example 3
The third example shows an G.718 session using multiple RTP sessions
with the AVPF profile. The answerer wishes to use only layers up to
L3.
Offer:
Answer:
6. Congestion Control
7. Security Considerations
8. IANA Considerations
IANA is kindly requested to register a media type for the G.718 codec
for RTP transport, as specified in Section 5.1 of this document.
9. Acknowledgements
10. References
[RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and
J. Rey, "Extended RTP Profile for Real-time
Transport Control Protocol (RTCP)-Based Feedback
(RTP/AVPF)", RFC 4585, July 2006.
The illustration below shows layers L1-L3 from two encoded frames
encapsulated into separate payloads using single transport block.
+-------+--------+-----+------+------+------+
| RTP1 | L-ID=3 |NF=0 |F1-L1 |F1-L2 |F1-L3 |
+-------+--------+-----+------+------+------+
+-------+--------+-----+------+------+------+
| RTP2 | L-ID=3 |NF=0 |F2-L1 |F2-L2 |F2-L3 |
+-------+--------+-----+------+------+------+
In the case where the same layers from two input frames are
encapsulated into one payload using single transport block, the
structure is as shown below.
+-------+--------+-----+------+------+------+------+------+------+
| RTP1 | L-ID=3 |NF=1 |F1-L1 |F2-L1 |F1-L2 |F2-L2 |F3-L3 |F2-L3 |
+-------+--------+-----+------+------+------+------+------+------+
Zorn, et al. Expires February 17, 2013 [Page 23]
Internet-Draft RTP Payload for G.718 Speech/Audio August 2012
The third example illustrates the case where the layers L1-L3 from
two input frames are encapsulated into one payload using two separate
transport blocks, the first one carrying L1 and the other one
containing L2 and L3.
+-------+--------+-----+------+------+
| RTP1 | L-ID=1 |NF=1 |F1-L1 |F2-L1 |
+-------+--------+-----+------+------+------+------+
| L-ID=7 |NF=1 |F1-L2 |F2-L2 |F2-L2 |F2-L3 |
+--------+-----+------+------+------+------+
In this case the data for each layer is transmitted in its own
payload.
+-------+--------+-----+-----+ +-------+--------+-----+-----+
| RTP1a | L-ID=1 |NF=0 |F1-L1| | RTP1b | L-ID=6 |NF=0 |F1-L2|
+-------+--------+-----+-----+ +-------+--------+-----+-----+
+-------+--------+-----+-----+ +-------+--------+-----+-----+
| RTP1c |L-ID=10 |NF=0 |F1-L3| | RTP2a | L-ID=1 |NF=0 |F2-L1|
+-------+--------+-----+-----+ +-------+--------+-----+-----+
+-------+--------+-----+-----+ +-------+--------+-----+-----+
| RTP2b | L-ID=6 |NF=0 |F2-L2| | RTP2c |L-ID=10 |NF=0 |F2-L3|
+-------+--------+-----+-----+ +-------+--------+-----+-----+
If the payloads carry data from two consecutive input frames, the
same encoded data as in the previous example is arranged as follows.
+-------+--------+-----+-----+-----+
| RTP1a | L-ID=1 |NF=1 |F1-L1|F2-L1|
+-------+--------+-----+-----+-----+
+-------+--------+-----+-----+-----+
| RTP1b | L-ID=6 |NF=1 |F1-L2|F2-L2|
+-------+--------+-----+-----+-----+
+-------+--------+-----+-----+-----+
| RTP1c |L-ID=10 |NF=1 |F1-L3|F2-L3|
+-------+--------+-----+-----+-----+
Zorn, et al. Expires February 17, 2013 [Page 24]
Internet-Draft RTP Payload for G.718 Speech/Audio August 2012
+-------+--------+-----+-----+-----+-----+-----+
| RTP1 | L-ID=1 |NF=3 |F1-L1|F2-L1|F3-L1|F4-L1|
+-------+--------+-----+-----+-----+-----+-----+
+-------+--------+-----+-----+-----+-----+-----+
| RTP2a | L-ID=7 |NF=1 |F1-L2|F2-L2|F1-L3|F2-L3|
+-------+--------+-----+-----+-----+-----+-----+
+-------+--------+-----+-----+-----+
| RTP3a |L-ID=14 |NF=0 |F1-L4|F1-L5|
+-------+--------+-----+-----+-----+
+-------+--------+-----+-----+-----+
| RTP3b |L-ID=14 |NF=0 |F2-L4|F2-L5|
+-------+--------+-----+-----+-----+
+-------+--------+-----+-----+-----+-----+-----+
| RTP2b | L-ID=7 |NF=1 |F3-L2|F4-L2|F3-L3|F4-L3|
+-------+--------+-----+-----+-----+-----+-----+
+-------+--------+-----+-----+-----+
| RTP3c |L-ID=14 |NF=0 |F3-L4|F3-L5|
+-------+--------+-----+-----+-----+
+-------+--------+-----+-----+-----+
| RTP3d |L-ID=14 |NF=0 |F4-L4|F4-L5|
+-------+--------+-----+-----+-----+
Zorn, et al. Expires February 17, 2013 [Page 25]
Internet-Draft RTP Payload for G.718 Speech/Audio August 2012
+-------+--------+-----+-----+--------+-----+-----+-----+-----+
| RTP1 | L-ID=1 |NF=0 |F0-L1| L-ID=3 |NF=0 |F1-L1|F1-L2|F1-L3|
+-------+--------+-----+-----+--------+-----+-----+-----+-----+
+-------+--------+-----+-----+--------+-----+-----+-----+-----+
| RTP2 | L-ID=1 |NF=0 |F1-L1| L-ID=3 |NF=0 |F2-L1|F2-L2|F2-L3|
+-------+--------+-----+-----+--------+-----+-----+-----+-----+
+-------+--------+-----+-----+--------+-----+-----+-----+-----+
| RTP3 | L-ID=1 |NF=0 |F2-L1| L-ID=3 |NF=0 |F3-L1|F3-L2|F3-L3|
+-------+--------+-----+-----+--------+-----+-----+-----+-----+
+-------+--------+-----+-----+-----+-----+--------+-----+-----+
| RTP1 | L-ID=3 |NF=0 |F0-L1|F0-L2|F0-L3| L-ID=1 |NF=0 |F1-L1|
+-------+--------+-----+-----+-----+-----+--------+-----+-----+
+-------+--------+-----+-----+-----+-----+--------+-----+-----+
| RTP2 | L-ID=3 |NF=0 |F1-L1|F1-L2|F1-L3| L-ID=1 |NF=0 |F2-L1|
+-------+--------+-----+-----+-----+-----+--------+-----+-----+
+-------+--------+-----+-----+-----+-----+--------+-----+-----+
| RTP3 | L-ID=3 |NF=0 |F2-L1|F2-L2|F2-L3| L-ID=1 |NF=0 |F3-L1|
+-------+--------+-----+-----+-----+-----+--------+-----+-----+
Now the first transport block carries the primary data and the second
transport block carries the redundant data, which in this case covers
the frame following the primary frame. The benefit of this approach
is that the redundant data is included in the last (secondary)
transport block of the payload, which might be beneficial for
possible payload scaling operation within the network.
Zorn, et al. Expires February 17, 2013 [Page 26]
Internet-Draft RTP Payload for G.718 Speech/Audio August 2012
Authors' Addresses
Ye-Kui Wang
Qualcomm Incorporated
5775 Morehouse Drive
San Diego, CA 92121
USA
Phone: +1-858-651-8345
EMail: [email protected]
Ari Lakaniemi
Independent Contributor
EMail: [email protected]
Zorn, et al. Expires February 17, 2013 [Page 27]