draft-ietf-payload-melpe-05.txt   draft-ietf-payload-melpe-06.txt 
Payload Working Group Victor Demjanenko Payload Working Group Victor Demjanenko
Internet-Draft David Satterlee Internet-Draft David Satterlee
Intended Status: Standards Track VOCAL Technologies, Ltd. Intended Status: Standards Track VOCAL Technologies, Ltd.
Expires: July 24, 2017 January 20, 2017 Expires: August 11, 2017 February 7, 2017
RTP Payload Format for MELPe Codec RTP Payload Format for MELPe Codec
draft-ietf-payload-melpe-05 draft-ietf-payload-melpe-06
Status of this Memo Status of this Memo
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
skipping to change at page 2, line 20 skipping to change at page 2, line 20
3 Payload Format . . . . . . . . . . . . . . . . . . . . . . . . 4 3 Payload Format . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1 MELPe Bitstream Definition . . . . . . . . . . . . . . . . 5 3.1 MELPe Bitstream Definition . . . . . . . . . . . . . . . . 5
3.1.1 2400 bps Bitstream Structure . . . . . . . . . . . . . . 6 3.1.1 2400 bps Bitstream Structure . . . . . . . . . . . . . . 6
3.1.2 1200 bps Bitstream Structure . . . . . . . . . . . . . . 8 3.1.2 1200 bps Bitstream Structure . . . . . . . . . . . . . . 8
3.1.3 600 bps Bitstream Structure . . . . . . . . . . . . . . 11 3.1.3 600 bps Bitstream Structure . . . . . . . . . . . . . . 11
3.2 MELPe Comfort Noise Bitstream Definition . . . . . . . . . 15 3.2 MELPe Comfort Noise Bitstream Definition . . . . . . . . . 15
3.3 Multiple MELPe frames in a RTP packet . . . . . . . . . . . 17 3.3 Multiple MELPe frames in a RTP packet . . . . . . . . . . . 17
3.4 Congestion Control Considerations . . . . . . . . . . . . . 19 3.4 Congestion Control Considerations . . . . . . . . . . . . . 19
4 Payload Format Parameters . . . . . . . . . . . . . . . . . . . 19 4 Payload Format Parameters . . . . . . . . . . . . . . . . . . . 19
4.1 Media Type Definition . . . . . . . . . . . . . . . . . . . 20 4.1 Media Type Definition . . . . . . . . . . . . . . . . . . . 20
4.2 Mapping to SDP . . . . . . . . . . . . . . . . . . . . . . 22 4.2 Mapping to SDP . . . . . . . . . . . . . . . . . . . . . . 23
4.3 Declarative SDP Considerations . . . . . . . . . . . . . . 23 4.3 Declarative SDP Considerations . . . . . . . . . . . . . . 24
4.4 Offer/Answer SDP Considerations . . . . . . . . . . . . . . 24 4.4 Offer/Answer SDP Considerations . . . . . . . . . . . . . . 24
5 Discontinious Transmission . . . . . . . . . . . . . . . . . . 24 5 Discontinious Transmission . . . . . . . . . . . . . . . . . . 25
6 Packet Loss Concealment . . . . . . . . . . . . . . . . . . . . 24 6 Packet Loss Concealment . . . . . . . . . . . . . . . . . . . . 25
7 IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 26 7 IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 27
8 Security Considerations . . . . . . . . . . . . . . . . . . . . 26 8 Security Considerations . . . . . . . . . . . . . . . . . . . . 27
9 RFC Editor Considerations . . . . . . . . . . . . . . . . . . . 26 9 RFC Editor Considerations . . . . . . . . . . . . . . . . . . . 27
10 References . . . . . . . . . . . . . . . . . . . . . . . . . . 26 10 References . . . . . . . . . . . . . . . . . . . . . . . . . . 27
10.1 Normative References . . . . . . . . . . . . . . . . . . . 26 10.1 Normative References . . . . . . . . . . . . . . . . . . . 27
10.2 Informative References . . . . . . . . . . . . . . . . . . 28 10.2 Informative References . . . . . . . . . . . . . . . . . . 29
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 28 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 29
1 Introduction 1 Introduction
This document describes how compressed MELPe speech as produced by This document describes how compressed MELPe speech as produced by
the MELPe codec may be formatted for use as an RTP payload. Details the MELPe codec may be formatted for use as an RTP payload. Details
are provided to packetize the three different codec bit-rate data are provided to packetize the three different codec bit-rate data
frames (2400, 1200, and 600) into RTP packets. The sender may send frames (2400, 1200, and 600) into RTP packets. The sender may send
one or more codec data frames per packet, depending on the one or more codec data frames per packet, depending on the
application scenario or based on the transport network condition, application scenario or based on the transport network condition,
bandwidth restriction, delay requirements and packet-loss tolerance. bandwidth restriction, delay requirements and packet-loss tolerance.
skipping to change at page 19, line 34 skipping to change at page 19, line 34
The target bitrate of MELPe can be adjusted at any point in time, The target bitrate of MELPe can be adjusted at any point in time,
thus allowing congestion management. Furthermore, the amount of thus allowing congestion management. Furthermore, the amount of
encoded speech or audio data encoded in a single packet can be used encoded speech or audio data encoded in a single packet can be used
for congestion control, since packet rate is inversely proportional for congestion control, since packet rate is inversely proportional
to the packet duration. A lower packet transmission rate reduces the to the packet duration. A lower packet transmission rate reduces the
amount of header overhead, but at the same time increases latency and amount of header overhead, but at the same time increases latency and
loss sensitivity, so it ought to be used with care. loss sensitivity, so it ought to be used with care.
Since UDP does not provide congestion control, applications that use Since UDP does not provide congestion control, applications that use
RTP over UDP SHOULD implement their own congestion control above the RTP over UDP SHOULD implement their own congestion control above the
UDP layer [RFC5405]. Work in the RMCAT working group [rmcat] UDP layer [RFC8085] and MAY as well implement a transport circuit
describes the interactions and conceptual interfaces necessary breaker [RFC8083] (formerly [draft-ietf-avtcore-rtp-circuit-
between the application components that relate to congestion control, breakers]). Work in the RMCAT working group [rmcat] describes the
including the RTP layer, the higher-level media codec control layer, interactions and conceptual interfaces necessary between the
and the lower-level transport interface, as well as components application components that relate to congestion control, including
dedicated to congestion control functions. the RTP layer, the higher-level media codec control layer, and the
lower-level transport interface, as well as components dedicated to
congestion control functions.
4 Payload Format Parameters 4 Payload Format Parameters
This RTP payload format is identified using the MELP, MELP2400, This RTP payload format is identified using the MELP, MELP2400,
MELP1200, and MELP600 media types which is registered in accordance MELP1200, and MELP600 media types which is registered in accordance
with RFC 4855 [RFC4855] and using the template of RFC 6838 [RFC6838]. with RFC 4855 [RFC4855] and using the template of RFC 6838 [RFC6838].
4.1 Media Type Definition 4.1 Media Type Definition
Type names: Type names:
skipping to change at page 20, line 21 skipping to change at page 20, line 21
Subtype name: Subtype name:
MELP, MELP2400, MELP1200, and MELP600 MELP, MELP2400, MELP1200, and MELP600
Required parameters: Required parameters:
N/A N/A
Optional parameters: Optional parameters:
ptime, maxptime, bitrate ptime: the recommended length of time (in milliseconds)
represented by the media in a packet. It SHALL use the nearest
rounded-up ms integer packet duration. For MELPe, this
corresponds to the values: 23, 45, 68, 90, 112, 135, 156, and
180. Larger values can be used as long as they are properly
rounded. See Section 6 of RFC 4566 [RFC4566].
maxptime: the maximum length of time (in milliseconds) that can
be encapsulated in a packet. It SHALL use the nearest rounded-
up ms integer packet duration. For MELPe, this corresponds to
the values: 23, 45, 68, 90, 112, 135, 156, and 180. Larger
values can be used as long as they are properly rounded. See
Section 6 of RFC 4566 [RFC4566].
bitrate: specifies the MELPe coder bit rates supported.
Possible values are a comma-separated list of rates from the
set: 2400, 1200, 600. The modes are listed in order of
preference; first is preferred. If "bitrate" is not present,
the fixed coder bit rate of 2400 MUST be used. The alternate
encoding names, "MELP2400", "MELP1200", and "MELP600" directly
specify the MELPe coder bit rate of 2400, 1200, and 600
respectively and MUST NOT specify a "bitrate" parameter.
Encoding considerations: Encoding considerations:
This media type is framed and binary, see section 4.8 in RFC6838 This media type is framed and binary, see section 4.8 in RFC6838
[RFC6838]. [RFC6838].
Security considerations: Security considerations:
Please see the security considerations in section 8 of RFCxxxx Please see the security considerations in section 8 of RFCxxxx
(this RFC). (this RFC).
skipping to change at page 22, line 21 skipping to change at page 23, line 21
The information carried in the media type specification has a The information carried in the media type specification has a
specific mapping to fields in the Session Description Protocol (SDP) specific mapping to fields in the Session Description Protocol (SDP)
[RFC4566], which is commonly used to describe RTP sessions. When SDP [RFC4566], which is commonly used to describe RTP sessions. When SDP
is used to specify sessions employing the MELPe codec, the mapping is is used to specify sessions employing the MELPe codec, the mapping is
as follows: as follows:
o The media type ("audio") goes in SDP "m=" as the media name. o The media type ("audio") goes in SDP "m=" as the media name.
o The media subtype (payload format name) goes in SDP "a=rtpmap" o The media subtype (payload format name) goes in SDP "a=rtpmap"
as the encoding name. as the encoding name.
o The parameter "bitrate" goes in the SDP "a=fmtp" attribute by o The parameter "bitrate" goes in the SDP "a=fmtp" attribute by
copying it directly from the media type string as "bitrate=value" or copying it as a "bitrate=<value>" string.
"bitrate=value1,value2" or "bitrate=value1,value2,value3". o The parameters "ptime" and "maxptime" go in the SDP "a=ptime"
and "a=maxptime" attributes, respectively.
When conveying information by SDP, the encoding name SHALL be "MELP" When conveying information by SDP, the encoding name SHALL be "MELP"
(the same as the media subtype). Alternative encoding name types, (the same as the media subtype). Alternative encoding name types,
"MELP2400", "MELP1200", and "MELP600", MAY be used in SDP to convey "MELP2400", "MELP1200", and "MELP600", MAY be used in SDP to convey
fixed bit-rate configurations. These names have been observed in fixed bit-rate configurations. These names have been observed in
systems that do not support dynamic frame rate switching as specified systems that do not support dynamic frame rate switching as specified
by the parameter, "bitrate". by the parameter, "bitrate".
An example of the media representation in SDP for describing MELPe An example of the media representation in SDP for describing MELPe
might be: might be:
skipping to change at page 23, line 28 skipping to change at page 24, line 30
impossible to distinguish which mode is about to be used (e.g. when impossible to distinguish which mode is about to be used (e.g. when
ptime=68, it would be impossible to distinguish if packet is carrying ptime=68, it would be impossible to distinguish if packet is carrying
1 frames of 67.5 ms or 3 frames of 22.5 ms etc.). 1 frames of 67.5 ms or 3 frames of 22.5 ms etc.).
Note that the payload format (encoding) names are commonly shown in Note that the payload format (encoding) names are commonly shown in
upper case. Media subtypes are commonly shown in lower case. These upper case. Media subtypes are commonly shown in lower case. These
names are case-insensitive in both places. Similarly, parameter names are case-insensitive in both places. Similarly, parameter
names are case-insensitive both in media subtype name and in the names are case-insensitive both in media subtype name and in the
default mapping to the SDP a=fmtp attribute default mapping to the SDP a=fmtp attribute
The value for "packet time" and "maximum packet time" parameters of
the "ptime" and "maxptime" SDP attributes respectively, SHALL use the
nearest rounded-up ms integer packet duration. For MELPe, this
corresponds to the values: 23, 45, 68, 90, 112, 135, 156, and 180.
Larger values can be used as long as they are properly rounded.
4.3 Declarative SDP Considerations 4.3 Declarative SDP Considerations
For declarative media, the "bitrate" parameter specifes the possible For declarative media, the "bitrate" parameter specifes the possible
bit rates used by the sender. Multiple MELPe rtpmap values (such as bit rates used by the sender. Multiple MELPe rtpmap values (such as
97, 98, and 99 as used below) MAY be used to convey MELPe coded voice 97, 98, and 99 as used below) MAY be used to convey MELPe coded voice
at different bit rates. The receiver can then select an appropriate at different bit rates. The receiver can then select an appropriate
MELPe codec by using 97, 98, or 99. MELPe codec by using 97, 98, or 99.
m=audio 49120 RTP/AVP 97 98 99 m=audio 49120 RTP/AVP 97 98 99
a=rtpmap:97 MELP/8000 a=rtpmap:97 MELP/8000
skipping to change at page 26, line 49 skipping to change at page 27, line 49
9 RFC Editor Considerations 9 RFC Editor Considerations
Note to RFC Editor: This section may be removed after carrying out Note to RFC Editor: This section may be removed after carrying out
all the instructions of this section. all the instructions of this section.
10 References 10 References
10.1 Normative References 10.1 Normative References
[draft-ietf-avtcore-rtp-circuit-breakers] Perkins, C. and V. Singh,
"Multimedia Congestion Control: Circuit Breakers for Unicast RTP
Sessions", draft-ietf-avtcore-rtp-circuit-breakers-18 (work in
progress), August 18, 2016.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
requirement Levels", BCP 14, RFC 2119, March 1997. requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4566] Handley, M., Jacobson, V. and Perkins, C., "SDP: Session
Description Protocol", IETF RFC RFC4566, July 2006.
[RFC2736] Handley, M. and Perkins, C., "Guidelines for Writers of RTP [RFC2736] Handley, M. and Perkins, C., "Guidelines for Writers of RTP
Payload Format Specifications", BCP 36, RFC 2736, December 1999. Payload Format Specifications", BCP 36, RFC 2736, December 1999.
[RFC3264] Rosenberg, J. and Schulzrinne, H., "An Offer/Answer Model [RFC3264] Rosenberg, J. and Schulzrinne, H., "An Offer/Answer Model
with the Session Description Protocol (SDP)" IETF RFC 3264, June with the Session Description Protocol (SDP)" IETF RFC 3264, June
2002. 2002.
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R. and Jacobson, [RFC3550] Schulzrinne, H., Casner, S., Frederick, R. and Jacobson,
V., "RTP: A Transport Protocol for Real-Time Applications", IETF RFC V., "RTP: A Transport Protocol for Real-Time Applications", IETF RFC
3550, July 2003. 3550, July 2003.
[RFC3551] Schulzrinne, H., and Casner, S., "RTP Profile for Audio and [RFC3551] Schulzrinne, H., and Casner, S., "RTP Profile for Audio and
Video Conferences with Minimal Control" IETF RFC 3551, July 2003. Video Conferences with Minimal Control" IETF RFC 3551, July 2003.
[RFC3711] Baugher, et al., "The Secure Real Time Transport Protocol", [RFC3711] Baugher, et al., "The Secure Real Time Transport Protocol",
IETF RFC 3711, March 2004. IETF RFC 3711, March 2004.
[RFC4566] Handley, M., Jacobson, V. and Perkins, C., "SDP: Session
Description Protocol", IETF RFC RFC4566, July 2006.
[RFC4855] Casner, S., "Media Type Registration of RTP Payload [RFC4855] Casner, S., "Media Type Registration of RTP Payload
Formats", RFC 4855, February 2007. Formats", RFC 4855, February 2007.
[RFC5124] Ott, J. and Carrara, E., "Extended Secure RTP Profile for [RFC5124] Ott, J. and Carrara, E., "Extended Secure RTP Profile for
Real-time Transport Control Protocol (RTCP)-Based Real-time Transport Control Protocol (RTCP)-Based
Feedback(RTP/SAVPF)", RFC 5124, February 2008. Feedback(RTP/SAVPF)", RFC 5124, February 2008.
[RFC5405] Westerlund, M. and Johansson, I., "RTP Payload Format for
G.719", RFC 5405, January 2009.
[RFC6562] Perkins, C. and Valin, J. M., "Guidelines for the Use of [RFC6562] Perkins, C. and Valin, J. M., "Guidelines for the Use of
Variable Bit Rate Audio with Secure RTP", RFC 6562, March 2012. Variable Bit Rate Audio with Secure RTP", RFC 6562, March 2012.
[RFC6838] Freed, N., Klensin, J. and Hansen, T., "Media Type [RFC6838] Freed, N., Klensin, J. and Hansen, T., "Media Type
Specifications and Registration Procedures", BCP 13, RFC 6838, Specifications and Registration Procedures", BCP 13, RFC 6838,
January 2013. January 2013.
[RFC8083] Perkins, C. and V. Singh, "Multimedia Congestion Control:
Circuit Breakers for Unicast RTP Sessions", RFC 8083, January 2017.
[RFC8085] Eggert, L., Fairhurst, G. and Shepherd, G., "UDP Usage
Guidelines", RFC 8085, February 2017.
[MELP] Department of Defense Telecommunications Standard, "Analog-to- [MELP] Department of Defense Telecommunications Standard, "Analog-to-
Digital Conversion of Voice by 2,400 Bit/Second Mixed Excitation Digital Conversion of Voice by 2,400 Bit/Second Mixed Excitation
Linear Prediction (MELP)", MIL-STD-3005, December 1999. Linear Prediction (MELP)", MIL-STD-3005, December 1999.
[MELPE] North Atlantic Treaty Organization (NATO), "The 600 Bit/S, [MELPE] North Atlantic Treaty Organization (NATO), "The 600 Bit/S,
1200 Bit/S and 2400 Bit/S NATO Interoperable Narrow Band Voice 1200 Bit/S and 2400 Bit/S NATO Interoperable Narrow Band Voice
Coder", STANAG No. 4591, January 2006. Coder", STANAG No. 4591, January 2006.
[SCIP210] National Security Agency, "SCIP Signaling Plan", SCIP-210, [SCIP210] National Security Agency, "SCIP Signaling Plan", SCIP-210,
December 2007. December 2007.
 End of changes. 13 change blocks. 
34 lines changed or deleted 60 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/