Network Working Group - AVT C. Hoene Internet Draft University of Tuebingen Intended status: Standards Track F. de Bont Expires: April 2009 Philips Electronics October 21, 2008 RTP Payload Format for Bluetooth's SBC audio codec draft-hoene-avt-rtp-sbc-00.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html This Internet-Draft will expire on April 21, 2009. Copyright Notice Copyright (C) The IETF Trust (2008). Abstract This document specifies a Real-time Transport Protocol (RTP) payload format to be used for the low complexity subband codec (SBC), which is the mandatory audio codec of the Advanced Audio Distribution Profile (A2DP) Specification written by the Bluetooth(r) Special Hoene et al. Expires April 21, 2009 [Page 1] Internet-Draft RTP Payload Format for SBC October 2008 Interest Group (SIG). The payload format is designed to be able to interoperate with existing Bluetooth A2DP devices, to provide high streaming audio quality, interactive audio transmission over the internet, and ultra-low delay coding for jam sessions on the internet. This document contains also a media type registration which specifies the use of the RTP payload format. Conventions used in this document 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 RFC-2119 [RFC2119]. The following acronyms are used in this document: A2DP - Audio Distribution Profile AAC - Advanced Audio Coding ATRAC - Adaptive Transform Acoustic Coding DCCP - Datagram Congestion Control Protocol MP3 - MPEG-1 Audio Layer 3 SBC - SubBand Codec SIG - Special Interest Group Table of Contents 1. Introduction ................................................ 3 2. Background .................................................. 3 3. Usage Scenarios ............................................. 5 3.1. Scenario 1: Interconnection of A2DP devices ............ 5 3.2. Scenario 2: High quality interactive audio transmissions 6 3.3. Scenario 3: Ensembles performing over a network ........ 6 4. Header Usage ................................................ 7 5. Payload Format .............................................. 7 5.1. Media payload format header ............................ 8 5.2. SBC Frame Structure .................................... 9 5.3. Frame header ........................................... 9 5.4. Remaining frame........................................ 11 6. Payload Format Parameters .................................. 12 6.1. SBC Media Type Registration ........................... 12 6.1.1. Capabilities ..................................... 13 6.2. Mapping to SDP Parameters ............................. 14 6.2.1. Offer-Answer Model Considerations ................ 15 6.2.2. Declarative SDP Considerations ................... 16 7. Congestion Control ......................................... 16 8. Packet loss concealment .................................... 17 9. Security Considerations .................................... 17 10. IANA Considerations........................................ 18 Hoene et al. Expires April 21, 2009 [Page 2] Internet-Draft RTP Payload Format for SBC October 2008 11. References ................................................ 19 11.1. Normative References ................................. 19 11.2. Informative References ............................... 19 Author's Addresses ............................................ 21 Intellectual Property Statement ............................... 21 Disclaimer of Validity ........................................ 22 1. Introduction The Bluetooth(r) Special Interest Group (SIG) specifies in the Advanced Audio Distribution Profile (A2DP) [A2DPV12] a mono and stereo high quality audio subband codec (SBC). This document specifies the payload format for the encapsulation of SBC encoded audio frames into the Real-time Transport Protocol (RTP). SBC has a low computational complexity at modest compression rates. Its bit rate can be controlled widely. Recommended operational modes range from 127 to 345 kb/s, for mono and stereo audio signals. SBC's algorithmic delay can be as low as 16 samples making it ideal for ensembles playing music over the network requiring ultra low acoustic delays. 2. Background The A2DP specification is intended for streaming of music content to headphones, headsets, or speakers over Bluetooth wireless channels. A2DP supports multiple audio coding including MP3, AAC, ATRAC, which are all non-mandatory. To ensure interoperability, the SBC codec has been specified, which shall be included into all A2DP Bluetooth devices. The SBC is a low complexity subband codec based on earlier work presented in [Bon95]. It has a moderate compression ratio. The SBC encoder has filter banks splitting the audio signal into 4 or 8 subbands. Then the codec decides with how many bits each subband is encoded and finally quantizes the subband signals blockwise. An SBC frame can have different block sizes. The size of a block can be 4, 8, 12 or 16. Both decoder and encoder shall support all four block sizes. SBC can operate at four different sampling frequencies. The sampling frequency can be selected from a set of 16, 32, 44.1, and 48 kHz. It is mandatory that each SBC decoder can operate at the frequencies 44.1 and 48 kHz. Each SBC encoder shall work at least at a sampling rate of 44.1 or 48 kHz. Hoene et al. Expires April 21, 2009 [Page 3] Internet-Draft RTP Payload Format for SBC October 2008 Four channel modes are supported, which are mono, dual channel, stereo, and joint-stereo. The decoder shall support all four of them; the encoder shall support mono and at least one additional mode. SBC can use four or eight subbands. The decoder shall support both; the encoder shall support at least 8 subbands. The bit allocation modes of SBC can be either based on signal to noise ratio or on loudness. The decoder shall support both modes; the encoder shall support at least the loudness mode. The SBC encoder reduces one block to a given number of bits. The bit- pool variable defines how many bits are used per block. A2DP devices define the range of valid bit-pool values by providing minimum and maximum bit-pool values. The bit-pool values shall range from 2 to 250 but shall not be larger than number of subbands times 16 for the mono and dual and times 32 for the stereo and joint-stereo channel modes. SBC encoders inside A2DP devices may be capable of changing the bit- pool parameter dynamically during the encoding process. The decoder shall support all possible bit-pool values that do not result in excess of maximum bit rate, which is 320kb/s for mono and 512kb/s for two-channel modes. The encoder is required to support at least one possible bit-pool value. The A2DP specification recommends the encoding parameters given in Table 1. Hoene et al. Expires April 21, 2009 [Page 4] Internet-Draft RTP Payload Format for SBC October 2008 +------------------------------------------------------------+ | SBC encoder settings at Medium Quality | +--------------------------------+-------------+-------------+ | | Mono | Joint Stereo| | Sampling frequency (kHz) | 44.1 | 48 | 44.1 | 48 | | Bitpool value | 19 | 18 | 35 | 33 | | Resulting frame length (bytes) | 46 | 44 | 83 | 79 | | Resulting bit rate (kb/s) | 127 | 132 | 229 | 237 | +--------------------------------+------+------+------+------+ | SBC encoder settings at High Quality | +--------------------------------+-------------+-------------+ | | Mono | Joint Stereo| | Sampling frequency (kHz) | 44.1 | 48 | 44.1 | 48 | | Bitpool value | 31 | 29 | 53 | 51 | | Resulting frame length (bytes) | 70 | 66 | 119 | 115 | | Resulting bit rate (kb/s) | 193 | 198 | 328 | 345 | +--------------------------------+------+------+------+------+ + Other settings: Block length = 16, loudness, subbands = 8 | +------------------------------------------------------------+ Table 1: Recommended sets of SBC parameters in the SRC device as given in [A2DP] The A2DP V1.2 specification describes a media payload format, which we adopt one-to-one without any change in this document. 3. Usage Scenarios As compared to many other encoding schemes, the SBC is general enough to support multiple, quite diverse usage scenarios. Thus, it might be required to change the behavior of the encoding and transmission to achieve a good performance for a given usage scenario. Thus, we enlist three main scenarios and describe their quality requirements and their impact on the encoding and transmission. 3.1. Scenario 1: Interconnection of A2DP devices In this scenario it is intended to interconnect Bluetooth A2DP devices. RTP frames generated by an A2DP device can be transmitted directly via this RTP profile. Vice versa, an A2DP device should be able to receive the RTP profile by default. Thus, the payload format describe in this RFC MUST be fully interoperable with any A2DP device. The transmission between two A2DP devices has a constant frame rate with a sender-controlled bit rate. It is not anticipated that the transmission is adapted to congestion and bandwidth variation. Hoene et al. Expires April 21, 2009 [Page 5] Internet-Draft RTP Payload Format for SBC October 2008 3.2. Scenario 2: High quality interactive audio transmissions In the second scenario we consider a telephone call having a very good audio quality at modest acoustic one-way latencies ranging from 50 and 150 ms [ITUG107], so that music can be listened over the telephone while two persons talk together interactively. In addition, the reliability of the audio transmission should be high, even in cases of low and varying bandwidth. This second scenario assumes that the SBC transmission is used on top of a transport protocol that implements a congestion control algorithm. Using the SBC encoding, the sampling, bit, and frame rates should be controlled to cope with congestion. For example, if the available transmission bandwidth is too low to allow SBC to transmit audio at a high quality, the application can lower the sampling, bit, or frame rate of the stream at the cost of higher algorithmic delay or a degraded audio quality. In this case, changing the sampling or frame rate may cause a short acoustic artifact because SBC's internal filters must be reset. The A2DP media format does not allow a dynamic change of the encoding parameters beside the bit-pool value. The encoding parameters can only be altered with the "Change Parameters" procedure, which is defined in [GAVDPV12]. Such a change will cause a hearable interruption and thus shall be avoided. If an application using RTP wants to switch between different sets of encoding parameters, then these set of parameter CAN be either negotiate beforehand (as described in Section 6.2. ) or an renegotiation similar to the "Change Parameters" procedure CAN take place. An application MUST NOT change the sampling frequency, block length, encoding mode or the number of subbands within one RTP session having the same RTP payload identifier. 3.3. Scenario 3: Ensembles performing over a network In some usage scenarios, users want to act simultaneously and not just interactively. For example, if persons sing in a chorus, if musicians jam, or if e-sportsmen play computer games in a team together, they need to acoustically communicate. In these scenarios, the latency requirements are much harder than for interactive usages. For example, if two musicians are placed more than 10 meters apart, they can hardly keep synchronized. Empirical studies [Gurevich2004] have shown that if ensembles playing over Hoene et al. Expires April 21, 2009 [Page 6] Internet-Draft RTP Payload Format for SBC October 2008 networks, the optimal acoustic latency is around 11.5 ms with targeted range from 10 to 25 ms. To fulfill such requirements, it might be necessary to further reduce the algorithmic coding delay by varying the block length parameter. The default value of the block length parameter is chosen such that the coding efficiency is maximized. For example, at 44.1 kHz and using 8 subbands and a block length of 16, the algorithmic delay is 4.72 ms (208 samples). The value of the block length parameter can be decreased, at the expense of a higher bit rate or lower quality, to lower the latency to fulfill the very stringent latency requirements of this scenario. 4. Header Usage The format of the RTP header is specified in [RFC3550]. The payload format defined in this document uses the fields of the header in a manner fully consistent with that specification. marker (M): In accordance with [A2DPV12] the marker bit MUST be set to zero. payload type (PT): The assignment of an RTP payload type for this packet format is outside the scope of the document, and will not be specified here. It is expected that the RTP profile under which this payload format is being used will assign a payload type for this codec or specify that the payload type is to be bound dynamically (see Section 6.2). timestamp (TS): The RTP timestamp clock frequency MUST be the same as the sampling frequency, which has been negotiated for the current RTP session (see Section 6.2). If a media payload consists of multiple SBC frames, the TS of the media packet header represents the TS of the first SBC frame. The TS of the following SBC frames MUST be calculated using the sampling rate and the number of samples per frame per channel. A change in sampling frequency MUST NOT occur within one media packet. A SBC frame may be fragmented into multiple media packets to reduce the packetisation delay. Then, all packets that make up a fragmented SBC frame MUST use the same TS. 5. Payload Format The format of the payload MUST follow exactly the description given in the appendix of [A2DPV12]. In the following, for the sake of clarity, we repeat the payload format definition. Hoene et al. Expires April 21, 2009 [Page 7] Internet-Draft RTP Payload Format for SBC October 2008 The payload MUST consist of one media payload format header described in Section 5.2 and SBC frames described in Section 5.3. Either an integral number of SBC frames or one fragment of an SBC frame can be transmitted: (a) When the payload contains an integral number of SBC frames +--------+-----------+----------- -+ | Header | SBC frame | SBC frame ... | +--------+-----------+----------- -+ (b) When the SBC frame is fragmented +--------+---------------------------------------+ | Header | First fragment of SBC frame | +--------+---------------------------------------+ +--------+---------------------------------------+ | Header | Subsequent fragments of the SBC frame | +--------+---------------------------------------+ A media payload always starts with an 8-bit header, which is placed before the SBC data. The SBC frame can be fragmented across several media payloads. All fragmented packets, except the last one, MUST have the same total data packet size. This payload fragmentation CAN be preferred against the fragmentation mechanisms of lower layers (e.g., IP) because the packetisation delay and thus the acoustic latency are reduced and the error robustness is increased because parts of the SBC frame can be considered for decoding. 5.1. Media payload format header The following figure shows the format of media payload header, which consists of one byte. 0 1 2 3 4 5 6 7 +-+-+-+---+-+-+-+-+ |F|S|L|RFA|#frames| +-+-+-+---+-+-+-+-+ F bit - Set to 1 if the SBC frame is fragmented, otherwise set to 0. S bit - Set to 1 for the starting packet of a fragmented SBC frame, otherwise set to 0. Hoene et al. Expires April 21, 2009 [Page 8] Internet-Draft RTP Payload Format for SBC October 2008 L bit - Set to 1 for the last packet of a fragmented SBC frame, otherwise set to 0. RFA - SHOULD be zero, reserved for future addition. #frames (4 bits) - If the F bit is set to 0, this field indicates the number of frames contained in this packet. If the F bit is set to 1, this field indicates the number of remaining fragments, including the current fragment. Thus the last counter value MUST be one. For example, if there are three fragments then the counter has value 3, 2 and 1 for subsequent fragments. 5.2. SBC Frame Structure The complete SBC frame consists of a frame header, scale factors, audio samplings, and padding bits. The following diagram shows the general SBC frame format layout: +--------------+---------------+---------------+---------+ | frame_header | scale_factors | audio_samples | padding | +--------------+---------------+---------------+---------+ The following sections describe the audio format, which consists of bits stored in a bandwidth-efficient, compact mode. 5.3. Frame header The frame header consists of fields defined in [A2DPV12], which are SYNCWORD, SAMPLING_FREQUENCY, BLOCKS, CHANNEL_MODE, ALLOCATION_METHOD, SUBBANDS, BITPOOL, CRC_CHECK, optionally JOIN bit fields and a RFA. The layout of the first four bytes of the frame header is given in the following table. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SYNCWORD |SF.|BL.|CM.|A|S|BITPOOL |CRC_CHECK | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Legend: SF.=SAMPLING FREQUENCY, BL.=BLOCKS, CM.=CHANNEL_MODE, A.=ALLOCATION_METHOD, S.=SUBBANDS SYNCWORD (8 bits): The first field is the 8 bit synchronization word, which is always set to 156. Hoene et al. Expires April 21, 2009 [Page 9] Internet-Draft RTP Payload Format for SBC October 2008 SAMPLING_FREQUENCY (2 bits): The sampling frequency field indicates with which sampling frequency the SBC frame has been encoded. The table below specifies the corresponding sampling frequencies for the bit patterns. The sampling frequency MUST NOT be changed without changing the payload type, too. +--------------------+----------------+ | SAMPLING_FREQUENCY | sampling | | bit 0 1 | frequency (Hz) | +--------------------+----------------+ | 0 0 | 16000 | | 0 1 | 32000 | | 1 0 | 44100 | | 1 1 | 48000 | +--------------------+----------------+ BLOCKS (2 bits): It indicates the block size with which the stream has been encoded. The block size is selected conforming to the table below. The block size MUST NOT be changed without changing the payload type, too. +---------+-----------+ | BLOCKS | Number of | | bit 0 1 | blocks | +---------+-----------+ | 0 0 | 4 | | 0 1 | 8 | | 1 0 | 12 | | 1 1 | 16 | +---------+-----------+ CHANNEL_MODE (2 bits): These two bits indicate with which channel mode the frame has been encoded. The number of channels depends on this information. The channel mode MUST NOT be changed without changing the payload type, too. +--------------+--------------+-----------+ | CHANNEL_MODE | channel mode | number of | | bit 0 1 | | channels | +--------------+--------------+-----------+ | 0 0 | MONO | 1 | | 0 1 | DUAL_CHANNEL | 2 | | 1 0 | STEREO | 2 | | 1 1 | JOINT_STEREO | 2 | +--------------+--------------+-----------+ Hoene et al. Expires April 21, 2009 [Page 10] Internet-Draft RTP Payload Format for SBC October 2008 ALLOCATION_METHOD (1 bit): This bit indicates how the bit pool is allocated to different subbands. Either it is based on the loudness of the sub band signal or on the signal to noise ratio. The allocation method MUST NOT be changed without changing the payload type, too. +-------------------+------------+ | ALLOCATION_METHOD | allocation | | bit 0 | method | +-------------------+------------+ | 0 | LOUDNESS | | 1 | SNR | +-------------------+------------+ SUBBANDS (1 bit): This bit indicates the number of subbands with which the frame has been encoded. The number of subband MUST NOT be changed without changing the payload type, too. +----------+-----------+ | SUBBANDS | number of | | bit 0 | subbands | +----------+-----------+ | 0 | 4 | | 1 | 8 | +----------+-----------+ BITPOOL (8 bits): This unsigned integer indicates the size of the bit allocation pool that has been used for encoding the current block. The value of the bit-pool field MUST not exceed 16 times the number of subbands for the MONO and DUAL_CHANNEL channel modes and 32 times the number of subbands for the STEREO and JOINT_STEREO channel modes. The bitpool value MAY change from SBC frame to the next. In addition, the bitpool value MUST be restricted such that it does not result in excess of maximum bit rate, which is 320kb/s for mono and 512kb/s for two-channel modes. The remaining part of the header consists of CRC_CHECK, optionally JOIN bit fields and a RFA. 5.4. Remaining frame The remaining part of the frame includes scale factors and audio sample data, which are processed by the codec as described in [A2DPV12]. Hoene et al. Expires April 21, 2009 [Page 11] Internet-Draft RTP Payload Format for SBC October 2008 6. Payload Format Parameters This section defines the parameters that MAY be used to configure optional features in the SBC payload format over RTP transmission. The parameters are defined here as part of the media subtype registrations for the SBC. A mapping of the parameters into the Session Description Protocol (SDP) [RFC4566] is also provided for those applications that use SDP. In control protocols that do not use MIME or SDP, the media type parameters must be mapped to the appropriate format used with that control protocol. 6.1. SBC Media Type Registration [Note to RFC Editor: Please replace all occurrences of RFC XXXX by the RFC number assigned to this document] This registration is done using the template defined in [RFC4288] and following [RFC4855]. MIME media type name: audio MIME subtype name: SBC Required parameters: none Optional parameters: Capabilities: A hexadecimal representation of an octet string that expresses the capabilities of the encoder and/or the decoder. Possible values are a comma-separated list of four unsigned octets: Octet1, Octet2, Octet3, and Octet4. These four octets share the same meaning as those defined in Section 4.3.2 of [A2DPV12] repeated in the following Section 5.1.1. If this optional parameter is omitted, all coding modes MUST be supported. Encoding considerations: This media type is framed and contains binary data; see Section 4.8 of RFC 4288. Security considerations: See Section 9 of RFC XXXX Interoperability considerations: none Published specification: RFC XXXX Hoene et al. Expires April 21, 2009 [Page 12] Internet-Draft RTP Payload Format for SBC October 2008 Applications which use this media type: Audio and video conferencing tools, distributed orchestras Additional information: none Person & email address to contact for further information: Christian Hoene, hoene@uni-tuebingen.org Intended usage: COMMON Restrictions on usage: none Author: Christian Hoene, Frans de Bont Change controller: IETF Audio/Video Transport working group delegated from the IESG 6.1.1. Capabilities The capabilities of the encoder and decoder are describes with four octets (1 to 4) as defined in Section 4.3.2 of [A2DPV12]. The meaning of the bits and the octets are described in the following. o Octet 1: Bit 0 (aka 2^7): If one, then the sampling frequency 16000 Hz is supported. o Octet 1: Bit 1: If one, then the sampling frequency 32000 Hz is supported. o Octet 1: Bit 2: If one, then the sampling frequency 44100 Hz is supported. o Octet 1: Bit 3: If one, then the sampling frequency 48000 Hz is supported. o Octet 1: Bit 4: If one, then the channel mode MONO is supported. o Octet 1: Bit 5: If one, then the channel mode DUAL_CHANNEL is supported. o Octet 1: Bit 6: If one, then the channel mode STEREO is supported. o Octet 1: Bit 7 (aka 2^0): If one, then the channel mode JOINT_STEREO is supported. o Octet 2: Bit 0: If one, the block length can be 4. Hoene et al. Expires April 21, 2009 [Page 13] Internet-Draft RTP Payload Format for SBC October 2008 o Octet 2: Bit 1: If one, the block length can be 8. o Octet 2: Bit 2: If one, the block length can be 12. o Octet 2: Bit 3: If one, the block length can be 16. o Octet 2: Bit 4: If one, the number of subband can be 4. o Octet 2: Bit 5: If one, the number of subband can be 8. o Octet 2: Bit 6: If one, the allocation mode based on signal to noise ratio is supported. o Octet 2: Bit 7: If one, the allocation mode based on loudness is supported. o Octet 3: Unsigned integer: The minimal bit-pool value that the device supports. MUST be larger or equal than 2 and less or equal than the maximal bit-pool value. o Octet 4: Unsigned integer: The maximal bit-pool value that the device supports MUST be equal or lower than 250. 6.2. Mapping to SDP Parameters The information carried in the media type specification has a specific mapping to fields in the Session Description Protocol (SDP) [RFC4566], which is commonly used to describe RTP sessions. When SDP is used to specify sessions employing the SBC codec, the mapping is as follows: o The media type ("audio") goes in SDP "m=" as the media name. o The media subtype ("SBC") goes in SDP "a=rtpmap" as the encoding name. o The RTP in "a=rtpmap" MUST be set to the highest supported sampling frequency. It MUST be identical to the highest of the sampling frequencies that are specified by the Octet1 and Bit 0 to 3 in the following capabilities parameter. o The RTP in "a=rtpmap" specifies the number of audio channels: 2 for stereo material (see RFC 2327 [5]) and 1 for mono. It MUST be identical to the maximal number of channels given in Octet 1 and Bit 4 to 7 in the following capabilities parameter. Hoene et al. Expires April 21, 2009 [Page 14] Internet-Draft RTP Payload Format for SBC October 2008 o The parameter "capabilities" goes in the SDP "a=fmtp" by copying its four octets. 6.2.1. Offer-Answer Model Considerations The Bluetooth standard [AVDTPV12] describes how an A2DP source and an A2DP sink negotiate their capabilities. Prior to the establishment of the audio stream, one A2DP device can query the service capabilities of the other device using the "Get Capabilities Procedure". In any case, the coding mode is set using the "Set Configuration" procedure. Only after a successful configuration, the stream connection can be established. In addition to the Bluetooth negotiation procedure, the SDP negotiation MUST NOT agree on one single configuration but CAN agree that multiple configuration modes, which are identified by different payload type values, are supported. The following considerations apply when using SDP offer-answer procedures [RFC3264] to negotiate the use of SBC payload in RTP: o The "capabilities" parameter is bi-directional, i.e., the restricted mode set applies to media both to be received and sent by the declaring entity. If the capabilities were supplied in the offer, the answerer MUST return either the same mode-set or a subset of this mode-set. If no capabilities were supplied in the offer, the answerer MAY return capabilities to restrict the possible modes. In any case, the capabilities in the answer then apply for both offerer and answerer. The offerer MUST NOT send frames of a mode that has been removed by the answerer. o Any unknown parameter in an offer MUST be ignored by the receiver and MUST NOT be included in the answer. Below are some example parts of SDP offer-answer exchanges. o Example 1 Offer: SBC all modes m=audio 54874 RTP/AVP 96 a=rtpmap:96 SBC/48000/2 a=fmtp:96 capabilities=FF,FF,02,FA Hoene et al. Expires April 21, 2009 [Page 15] Internet-Draft RTP Payload Format for SBC October 2008 o Answer: 48 kHz, JOINT_STEREO, 16 blocks, 8 subbands, LOUDNESS m=audio 59452 RTP/AVP 96 a=rtpmap:96 SBC/48000/2 a=fmtp:96 capabilities=11,15,02,FA; Example 2 Offer: SBC all modes m=audio 54874 RTP/AVP 96 a=rtpmap:96 SBC/48000/2 a=fmtp:96 capabilities=FF,FF,02,FA Answer: wants 44.1 kHz, mono mode, 16 blocks, 8 subbands, LOUDNESS, bit-pool value set to 19 m=audio 59452 RTP/AVP 96 a=rtpmap:96 SBC/44100/1 a=fmtp:96 capabilities=28,15,13,13 o Example 3 Offer: SBC 48 kHz, mono or joint stereo, 8 subbands, loudness allocation method. m=audio 54874 RTP/AVP 96 a=rtpmap:96 SBC/48000/2 a=fmtp:96 capabilities=19,F5,02,FA Answer: accepted m=audio 59452 RTP/AVP 96 a=rtpmap:96 SBC/48000/2 a=fmtp:96 capabilities=19,F5,02,FA 6.2.2. Declarative SDP Considerations For declarative use of SDP nothing specific is defined for this payload format. The configuration given by the SDP MUST be used when sending and/or receiving media in the session. 7. Congestion Control One Bluetooth links, bandwidth can be reserved and thus the A2DP specification does not consider any kind of congestion control. However, congestion control is an important issue for any usage in non-dedicated networks such as the Internet. Thus, congestion control for RTP MUST be used in accordance with [RFC3550] and any appropriate profile (for example, [RFC3551]). An additional requirement if best- effort service is being used is: users of this payload format MUST monitor packet loss to ensure that the packet loss rate is within acceptable parameters. Reducing the session bandwidth is possible by one or more of the following means, which all will have negative impact to the users' experience as he can notice a higher latency or a degraded audio quality. The selection of the following means depends on current usage scenario, the congestion control protocol, and the perceptual Hoene et al. Expires April 21, 2009 [Page 16] Internet-Draft RTP Payload Format for SBC October 2008 assessment of the audio transmission and is not subject of this specification. 1. If the packet loss rate is very high, the session shall be terminated because the quality of the audio transmission is too bad to be useful [Widmer2002]. 2. If the bandwidth shall be reduced, then the bit-pool value can be reduced, so that the frames get smaller or the mono mode can be selected. 3. If the bandwidth and frame rate shall be reduced, the sampling rate can be lowered [Boutremans2004,Hoene2005]. 4. If the gross bandwidth and the frame rate shall be reduced, more blocks can be put into one SBC frame and more SBC frames can be placed in one RTP payload. Because the SBC encoding can be tuned with many parameters, it is especially useful for rate adaptive transport protocols such as DCCP [RFC4340] or TCP [RFC4571]. 8. Packet loss concealment In order to cope with packet losses, the SBC decoder SHOULD be extended by a packet loss concealment algorithm. The packet loss concealment algorithm SHOULD provide a good audio quality in case of losses. Otherwise, the congestion control algorithm can not trade off well the quality impairment due to packet losses versus the quality impairment caused by different encoding modes. It is RECOMMENDED that at a least the reserve order replicated pitch periods (RORPP) algorithm as defined in [ITUG711A1] or any other with a better algorithm used. If this requirement is not meet, then the congestion control cannot predict the impact of packet loss on the audio quality and thus will not be able to control the encoding parameters optimally. 9. Security Considerations RTP packets using the payload format defined in this specification are subject to the general security considerations discussed in the RTP specification [RFC3550] and any appropriate profile (for example, [RFC3551]). As this format transports encoded speech/audio, the main security issues include confidentiality, integrity protection, and authentication of the speech/audio itself. The payload format itself Hoene et al. Expires April 21, 2009 [Page 17] Internet-Draft RTP Payload Format for SBC October 2008 does not have any built-in security mechanisms. Any suitable external mechanisms, such as SRTP [RFC3711], MAY be used. This payload format and the SBC encoding do not exhibit any large non-uniformity in the receiver-end computational load and thus are unlikely to pose a denial-of-service threat due to the receipt of pathological datagrams. 10. IANA Considerations It is requested that one new media subtype (audio/SBC) and two optional parameters for this media subtype ("capabilities" and "usage") are registered by IANA, see Section 5.1 and Section 5.2. Hoene et al. Expires April 21, 2009 [Page 18] Internet-Draft RTP Payload Format for SBC October 2008 11. References 11.1. Normative References [A2DPV12] Bluetooth SIG, "Advanced Audio Distribution Profile", Speficiation, Audio Video WG, adopted specification, revision V12, April 16th, 2007. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003. [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and Video Conferences with Minimal Control", STD 65, RFC 3551, July 2003. [RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and Registration Procedures", BCP 13, RFC 4288, December 2005. [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Modelwith Session Description Protocol (SDP)", RFC 3264, June 2002. [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC 4566, July 2006. [RFC4855] Casner, S., "Media Type Registration of RTP Payload Formats", RFC 4855, February 2007. [ITUG711A1] ITU Recommendation G.711 Appendix I, "A high quality low- complexity algorithm for packet loss concealment with G.711", September 1999. 11.2. Informative References [AVDTPV12] Bluetooth SIG, "Audio/Video Distribution Transport Protocol Specification", Audio Video WG, adopted specification, revision V12, April 16th, 2007. [Bon1995] F. de Bont, M. Groenewegen and W. Oomen, "A High Quality Audio-Coding System at 128 kb/s", 98th AES Convention, Febr. 25 - 28, 1995. Hoene et al. Expires April 21, 2009 [Page 19] Internet-Draft RTP Payload Format for SBC October 2008 [Boutremans2004] C. Boutremans, J.-Y. Le Boudec and J. Widmer, "End- to-end congestion control for tcp-friendly flows with variable packet size," ACM Computer Communication Review, Vol. 31, Nr. 2, pp. 137-151, 2004. [GAVDPV12] Bluetooth SIG, "Generic Audio/Video Distribution Profile," Audio Video WG, adopted specification, revision V12, April 16th, 2007. [Gurevich2004] M. Gurevich, C. Chafe, G. Leslie and S. Tyan, "Simulation of Networked Ensemble Performance with Varying Time Delays: Characterization of Ensemble Accuracy," Proceedings of the 2004 International Computer Music Conference, Miami, USA, 2004. [Hoene2005] Christian Hoene, Holger Karl, and Adam Wolisz, "A perceptual quality model intended adaptive VoIP applications," International Journal of Communication Systems, Wiley, August 2005. [ITUG107] ITU-T G.107, "The E-model, a computational model for use in transmission planning," ITU-T Recommendation G.107, May 2000. [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. Norrman, "The Secure Real-time Transport Protocol (SRTP)", RFC 3711, March 2004. [RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram Congestion Control Protocol (DCCP)", RFC 4340, March 2006. [RFC4571] J. Lazzaro, "Framing Real-time Transport Protocol (RTP) and RTP Control Protocol (RTCP) Packets over Connection- Oriented Transport,", RFC4571, July 2006. [Widmer2002] J. Widmer, M. Mauve, and J. P. Damm, "Probabilistic congestion control for non-adaptable flows," In 12th International Workshop on Network and Operating Systems Support for Digital Audio and Video (NOSSDAV), Miami, FL, USA, May 2002. Hoene et al. Expires April 21, 2009 [Page 20] Internet-Draft RTP Payload Format for SBC October 2008 Author's Addresses Christian Hoene University of Tuebingen Wilhelm-Schickard-Institute Sand 13 72076 Tuebingen DE Phone: +49 7071 29 70532 Email: hoene@uni-tuebingen.org Frans de Bont Philips Electronics High Tech Campus 5 5656 AE Eindhoven, NL Phone: +31 40 2740234 Email: frans.de.bont@philips.com Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Hoene et al. Expires April 21, 2009 [Page 21] Internet-Draft RTP Payload Format for SBC October 2008 Disclaimer of Validity This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Copyright Statement Copyright (C) The IETF Trust (2008). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. Acknowledgment Funding for this draft has been provided by the University of Tuebingen within the Nachwuchswissenschaftler program. Hoene et al. Expires April 21, 2009 [Page 22]