idnits 2.17.1 draft-chen-bv-codec-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == It seems as if not all pages are separated by form feeds - found 0 form feeds but 12 pages Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to contain a disclaimer for pre-RFC5378 work, but was first submitted on or after 10 November 2008. The disclaimer is usually necessary only for documents that revise or obsolete older RFCs, and that take significant amounts of text from those RFCs. If you can contact all authors of the source material and they are willing to grant the BCP78 rights to the IETF Trust, you can and should remove the disclaimer. Otherwise, the disclaimer is needed and you can ignore this comment. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (April 29, 2010) is 5104 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) No issues found here. Summary: 0 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Codec Working Group Juin-Hwey Chen 3 Internet-Draft Jes Thyssen 4 Intended status: Standards Track Broadcom Corporation 5 Expires: October 28, 2010 April 29, 2010 7 BroadVoice Speech Codecs 8 draft-chen-bv-codec-00 10 Status of this Memo 12 This Internet-Draft is submitted to IETF in full conformance with the 13 provisions of BCP 78 and BCP 79. This document may contain material 14 from IETF Documents or IETF Contributions published or made publicly 15 available before November 10, 2008. The person(s) controlling the 16 copyright in some of this material may not have granted the IETF 17 Trust the right to allow modifications of such material outside the 18 IETF Standards Process. Without obtaining an adequate license from 19 the person(s) controlling the copyright in such materials, this 20 document may not be modified outside the IETF Standards Process, and 21 derivative works of it may not be created outside the IETF Standards 22 Process, except to format it for publication as an RFC or to 23 translate it into languages other than English. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF), its areas, and its working groups. Note that 27 other groups may also distribute working documents as Internet- 28 Drafts. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 The list of current Internet-Drafts can be accessed at 36 http://www.ietf.org/ietf/1id-abstracts.txt. 38 The list of Internet-Draft Shadow Directories can be accessed at 39 http://www.ietf.org/shadow.html. 41 This Internet-Draft will expire on October 28, 2010. 43 Copyright Notice 45 Copyright (c) 2010 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (http://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. 55 Abstract 57 BroadVoice(R) [bv-website] is a family of two open-source speech 58 codecs suitable for Voice over IP (VoIP) applications. It is 59 designed to achieve high speech quality with relatively low 60 complexity and a very low coding delay. BroadVoice consists of two 61 variants: a 16 kb/s narrowband codec for 8 kHz sampling called 62 BroadVoice16, or BV16, and a 32 kb/s wideband codec for 16 kHz 63 sampling called BroadVoice32, or BV32. BV16 and BV32 are standard 64 codecs of PacketCable(TM), SCTE(R), and ANSI for VoIP applications 65 in cable telephony, and they are also listed as optional codecs in 66 the ITU-T Recommendations J.161 and J.361, respectively. This 67 document describes the BV16 and BV32 speech codecs. 69 Table of Contents 71 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 72 2. Overview of the BroadVoice Family of Codec . . . . . . . . . . 4 73 3. The BroadVoice16 (BV16) Codec . . . . . . . . . . . . . . . . . 6 74 4. The BroadVoice32 (BV32) Codec . . . . . . . . . . . . . . . . . 7 75 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 8 76 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 9 77 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10 78 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 79 8.1. Normative References . . . . . . . . . . . . . . . . . . 11 80 8.2. Informative References . . . . . . . . . . . . . . . . . 11 81 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 83 1. Introduction 85 This document describes the BroadVoice family of speech codecs, which 86 consists of (1) a 16 kb/s narrowband codec called BroadVoice16, or 87 BV16, operating at a sampling rate of 8 kHz, and (2) a 32 kb/s 88 wideband codec called BroadVoice32, or BV32, operating at a sampling 89 rate of 16 kHz. The BV16 codec was standardized by the cable 90 industry through CableLabs(R) as a standard codec in PacketCable 1.5 91 and PacketCable 2.0. It was also standardized by the Society of Cable 92 Telecommunications Engineers (SCTE) and by the American National 93 Standard Institute (ANSI) as the ANSI/SCTE 24-21 2006 standard 94 [bv16-ANSI]. BV16 is also listed as an optional codec in the ITU-T 95 Recommendation J.161. Similarly, BV32 is a standard codec in the 96 following standards: PacketCable 2.0, ANSI/SCTE 24-23 2007 97 [bv32-ANSI], and ITU-T Recommendation J.361. 99 Since the BV16 and BV32 coding algorithms are already specified in 100 details in the ANSI/SCTE standard specification documents, there is 101 no need to repeat the specifications here. Instead, links to the 102 ANSI/SCTE specification documents for BV16 and BV32 will be given in 103 Sections 3 and 4, respectively. The rest of this document gives an 104 overview of the BroadVoice family of codecs, their attributes, and 105 other relevant information. 107 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 108 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 109 document are to be interpreted as described in RFC 2119 [rfc2119]. 111 2. Overview of the BroadVoice Family of Codec 113 BroadVoice [bv-icassp] is a family of speech codecs developed by 114 Broadcom Corporation for Voice over IP (VoIP) applications. It is 115 based on Two-Stage Noise Feedback Coding (TSNFC) [tsnfc-icassp] 116 rather than the popular Code-Excited Linear Prediction (CELP) coding 117 paradigm. The RTP [rfc3550] payload formats for BV16 and BV32 are 118 specified in RFC4298. BV16 and BV32 have very similar codec 119 structures and share most of the algorithm modules, so if the two 120 are implemented together, substantial code sharing and memory 121 reduction can be achieved. 123 To encourage wide-spread use of BroadVoice in diverse speech 124 compression applications, Broadcom is providing both the floating- 125 point and fixed-point C source code of BroadVoice on a royalty-free 126 basis under the GNU Lesser General Public License (LGPL), version 127 2.1, as published by the Free Software Foundation. Visit 128 http://www.broadcom.com/broadvoice to download BroadVoice open 129 source C code, get audio demonstration, or get relevant information. 131 BroadVoice was designed from the ground up to be optimized for voice 132 transmission over IP networks. The main design goal of BroadVoice 133 was to make the coding delay and codec complexity as low as possible 134 while maintaining output speech quality as close to transparent as 135 possible. The following list summarizes the attributes of BV16 and 136 BV32: 138 o Ultra-low algorithmic buffering delay (5 ms) 140 o Relatively low computational complexity (about 12 MIPS for BV16 141 and 17 MIPS for BV32) and memory requirements 143 o High output quality for voice; acceptable quality for music 145 o Sampling rates of either 8 kHz (for BV16) or 16 kHz (for BV32) 147 o Bit-rate of either 16 kb/s (for BV16) or 32 kb/s (for BV32) 149 o Robustness to packet loss (typically 0.5 MOS degradation at about 150 5% random packet loss rate) 152 o Open source implementation (floating-point and fixed-point C) 154 o No known patent enforcement activities or royalty-bearing patent 155 pools as of date of submission 157 o BV16 and BV32 are not bit-exact standards; implementation details 158 MAY deviate from those specified in the ANSI/SCTE specifications 159 for BV16 and BV32 as long as the bit-stream compatibility with the 160 ANSI/SCTE BV16 and BV32 standards is maintained. 162 It should be noted that some algorithm modules described in the 163 ANSI/SCTE BV16 and BV32 specification documents are meant to 164 illustrate the concepts behind the algorithm modules and may not be 165 the most efficient way to implement the modules. For example, 166 version 1.1 of the BroadVoice open source code implements some of 167 the efficient excitation vector quantization (VQ) codebook search 168 methods described in [tsnfc-icassp] and [bv-efficient-vq] that are 169 mathematically equivalent to the excitation VQ codebook search 170 method described in the ANSI/SCTE BV16 and BV32 specifications but 171 are computationally more efficient. 173 Broadcom licenses, on a royalty-free basis, its patents that are 174 necessary to practice techniques used in Broadcom's official version 175 of the BroadVoice open source code. Implementations that deviate 176 from the techniques used in Broadcom's BroadVoice codecs may increase 177 exposure to third-party patents. Therefore, to minimize potential 178 intellectual property issues, it is RECOMMENDED that implementers of 179 BroadVoice codecs use only techniques implemented in Broadcom's 180 official version of BroadVoice open source C code. 182 3. The BroadVoice16 (BV16) Codec 184 The BroadVoice16 codec [bv16-asilomar] has a frame size of 5 ms and 185 operates at a sampling rate of 8 kHz. For every 40 samples of 8 kHz 186 sampled input speech, BV 16 encodes the 40 samples into 80 bits, 187 resulting in a bit rate of 2 bits/sample, or 16 kb/s. 189 A detailed description of the encoding and decoding principles of the 190 BV16 codec is given in the ANSI/SCTE 24-21 2006 standard 191 specification document [bv16-ANSI], which is available at the 192 following link: 194 http://www.scte.org/documents/pdf/Standards/ANSISCTE24212006.pdf 196 A BV16 decoder MAY include an adaptive postfilter (PF) to reduce the 197 perceived level of coding noise. It MAY also include packet loss 198 Concealment (PLC) to conceal (at least partially) the quality- 199 degrading effects of packet loss. Both PF and PLC are post- 200 processing steps after the speech signal is decoded, so they do not 201 affect bit-stream compatibility. Therefore, PF and PLC are not an 202 essential part of the BV16 specification. The ANSI/SCTE BV16 203 specification describes an example PF and an example PLC scheme, 204 but implementers can implement their own PF and PLC schemes without 205 affecting bit-stream compatibility with BroadVoice codecs. 207 4. The BroadVoice32 (BV32) Codec 209 The BroadVoice32 codec also has a frame size of 5 ms but operates at 210 a sampling rate of 16 kHz. For every 80 samples of 16 kHz sampled 211 input speech, BV32 encodes the 80 samples into 160 bits, resulting in 212 a bit rate of 2 bits/sample, or 32 kb/s. 214 A detailed description of the encoding and decoding principles of the 215 BV32 codec is given in the ANSI/SCTE 24-23 2007 standard 216 specification document [bv32-ANSI], which is available at the 217 following link: 219 http://www.scte.org/documents/pdf/Standards/ANSI_SCTE24-232007.pdf 221 A BV32 decoder MAY include an adaptive postfilter (PF) to reduce the 222 perceived level of coding noise, although it is not really necessary 223 because even without a postfilter the output speech quality of BV32 224 is already quite high. A BV32 decoder MAY also include packet loss 225 Concealment (PLC) to conceal (at least partially) the quality- 226 degrading effects of packet loss. Both PF and PLC are post- 227 processing steps after the speech signal is decoded, so they do not 228 affect bit-stream compatibility. The ANSI/SCTE BV32 specification 229 describes an example PLC scheme, but implementers can implement 230 their own PLC schemes without affecting bit-stream compatibility. 232 5. Security Considerations 234 A potential denial-of-service threat exists for data encoding using 235 compression techniques that have non-uniform receiver-end 236 computational load. The attacker can inject pathological datagrams 237 into the stream which are complex to decode and cause the receiver 238 to become overloaded. However, the decoder complexity of BV16 and 239 BV32 do not exhibit any significant non-uniformity. 241 6. IANA Considerations 243 This document has no actions for IANA. 245 7. Acknowledgments 247 The authors would like to thank Cheng-Chieh Lee and Robert Zopf for 248 their partial contributions in the following areas: floating-point C 249 codes, fixed-point C codes, optimized assembly codes, and performance 250 testing of BroadVoice codecs. 252 8. References 254 8.1. Normative References 256 [rfc2119] Bradner, S., "Key words for use in RFCs to Indicate 257 Requirement Levels", RFC 2119. 259 [bv16-ANSI] 260 "BV16 Speech Codec Specification for Voice over IP 261 Applications in Cable Telephony", American National 262 Standard, ANSI/SCTE 24-21 2006. 264 [bv32-ANSI] 265 "BV32 Speech Codec Specification for Voice over IP 266 Applications in Cable Telephony", American National 267 Standard, ANSI/SCTE 24-23 2007. 269 [rfc3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 270 Jacobson, "RTP: A Transport Protocol for real-time 271 applications", RFC 3550. 273 8.2. Informative References 275 [bv-website] 276 BroadVoice(R) Speech Codec Open Source C Code, BroadVoice 277 website http://www.broadcom.com/broadvoice/. 279 [bv-icassp] 280 Juin-Hwey Chen and Jes Thyssen, "The Broadvoice Speech 281 Coding Algorithm", Proceedings of 2007 IEEE International 282 Conference on Acoustics, Speech, and Signal Processing 283 (ICASSP 2007), Volume 4, April 2007. 285 [tsnfc-icassp] 286 Juin-Hwey Chen, "Novel Codec Structures For Noise Feedback 287 Coding of Speech", Proceedings of 2006 IEEE International 288 Conference on Acoustics, Speech, and Signal Processing 289 (ICASSP 2006), Volume 1, May 2006. 291 [bv16-asilomar] 292 Juin-Hwey Chen and Jes Thyssen, "BroadVoice(R)16: A 293 PacketCable Speech Coding Standard for Cable Telephony", 294 Proceedings of Fortieth Asilomar Conference on Signals, 295 Systems and Computers, ACSSC 2006, October - November 296 2006. 298 [bv-efficient-vq] 299 Thyssen and Juin-Hwey Chen, "Efficient VQ Techniques and 300 General Noise Shaping in Noise Feedback Coding", 301 Proceedings of Interspeech 2006 ICSLP, September 2006. 303 Authors' Addresses 305 Juin-Hwey (Raymond) Chen 306 5300 California Avenue 307 Irvine, CA 92617 308 USA 309 Email: rchen@broadcom.com 311 Jes Thyssen 312 5300 California Avenue 313 Irvine, CA 92617 314 USA 315 Email: jthyssen@broadcom.com