Codec Working Group                                       Juin-Hwey Chen
Internet-Draft                                               Jes Thyssen
Intended status: Standards Track                    Broadcom Corporation
Expires: October 28, 2010                                 April 29, 2010



                      BroadVoice Speech Codecs
                       draft-chen-bv-codec-00

Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and BCP 79.  This document may contain material
   from IETF Documents or IETF Contributions published or made publicly
   available before November 10, 2008.  The person(s) controlling the
   copyright in some of this material may not have granted the IETF
   Trust the right to allow modifications of such material outside the
   IETF Standards Process.  Without obtaining an adequate license from
   the person(s) controlling the copyright in such materials, this
   document may not be modified outside the IETF Standards Process, and
   derivative works of it may not be created outside the IETF Standards
   Process, except to format it for publication as an RFC or to
   translate it into languages other than English.

   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 October 28, 2010.

Copyright Notice

   Copyright (c) 2010 IETF Trust and the persons identified as the
   document authors.  All rights reserved.




Chen and Thyssen            Expires October 28, 2010            [Page 1]


Internet-Draft                  BroadVoice codec              April 2010


   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.


Abstract

   BroadVoice(R) [bv-website] is a family of two open-source speech
   codecs suitable for Voice over IP (VoIP) applications.  It is
   designed to achieve high speech quality with relatively low
   complexity and a very low coding delay.  BroadVoice consists of two
   variants: a 16 kb/s narrowband codec for 8 kHz sampling called
   BroadVoice16, or BV16, and a 32 kb/s wideband codec for 16 kHz
   sampling called BroadVoice32, or BV32.  BV16 and BV32 are standard
   codecs of PacketCable(TM), SCTE(R), and ANSI for VoIP applications
   in cable telephony, and they are also listed as optional codecs in
   the ITU-T Recommendations J.161 and J.361, respectively.  This
   document describes the BV16 and BV32 speech codecs.


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  Overview of the BroadVoice Family of Codec  . . . . . . . . . . 4
   3.  The BroadVoice16 (BV16) Codec . . . . . . . . . . . . . . . . . 6
   4.  The BroadVoice32 (BV32) Codec . . . . . . . . . . . . . . . . . 7
   5.  Security Considerations . . . . . . . . . . . . . . . . . . . . 8
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 9
   7.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  10
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  11
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  11
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  11
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  12













Chen and Thyssen            Expires October 23, 2010            [Page 2]


Internet-Draft                  BroadVoice codec              March 2010


1.  Introduction

   This document describes the BroadVoice family of speech codecs, which
   consists of (1) a 16 kb/s narrowband codec called BroadVoice16, or
   BV16, operating at a sampling rate of 8 kHz, and (2) a 32 kb/s
   wideband codec called BroadVoice32, or BV32, operating at a sampling
   rate of 16 kHz.  The BV16 codec was standardized by the cable
   industry through CableLabs(R) as a standard codec in PacketCable 1.5
   and PacketCable 2.0. It was also standardized by the Society of Cable
   Telecommunications Engineers (SCTE) and by the American National
   Standard Institute (ANSI) as the ANSI/SCTE 24-21 2006 standard
   [bv16-ANSI].  BV16 is also listed as an optional codec in the ITU-T
   Recommendation J.161. Similarly, BV32 is a standard codec in the
   following standards: PacketCable 2.0, ANSI/SCTE 24-23 2007
   [bv32-ANSI], and ITU-T Recommendation J.361.

   Since the BV16 and BV32 coding algorithms are already specified in
   details in the ANSI/SCTE standard specification documents, there is
   no need to repeat the specifications here.  Instead, links to the
   ANSI/SCTE specification documents for BV16 and BV32 will be given in
   Sections 3 and 4, respectively.  The rest of this document gives an
   overview of the BroadVoice family of codecs, their attributes, and
   other relevant information.

   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].





















Chen and Thyssen            Expires October 28, 2010            [Page 3]


Internet-Draft                  BroadVoice codec              April 2010


2.  Overview of the BroadVoice Family of Codec

   BroadVoice [bv-icassp] is a family of speech codecs developed by
   Broadcom Corporation for Voice over IP (VoIP) applications.  It is
   based on Two-Stage Noise Feedback Coding (TSNFC) [tsnfc-icassp]
   rather than the popular Code-Excited Linear Prediction (CELP) coding
   paradigm.  The RTP [rfc3550] payload formats for BV16 and BV32 are
   specified in RFC4298.  BV16 and BV32 have very similar codec
   structures and share most of the algorithm modules, so if the two
   are implemented together, substantial code sharing and memory
   reduction can be achieved.

   To encourage wide-spread use of BroadVoice in diverse speech
   compression applications, Broadcom is providing both the floating-
   point and fixed-point C source code of BroadVoice on a royalty-free
   basis under the GNU Lesser General Public License (LGPL), version
   2.1, as published by the Free Software Foundation.  Visit
   http://www.broadcom.com/broadvoice to download BroadVoice open
   source C code, get audio demonstration, or get relevant information.

   BroadVoice was designed from the ground up to be optimized for voice
   transmission over IP networks.  The main design goal of BroadVoice
   was to make the coding delay and codec complexity as low as possible
   while maintaining output speech quality as close to transparent as
   possible.  The following list summarizes the attributes of BV16 and
   BV32:

   o  Ultra-low algorithmic buffering delay (5 ms)

   o  Relatively low computational complexity (about 12 MIPS for BV16
      and 17 MIPS for BV32) and memory requirements

   o  High output quality for voice; acceptable quality for music

   o  Sampling rates of either 8 kHz (for BV16) or 16 kHz (for BV32)

   o  Bit-rate of either 16 kb/s (for BV16) or 32 kb/s (for BV32)

   o  Robustness to packet loss (typically 0.5 MOS degradation at about
      5% random packet loss rate)

   o  Open source implementation (floating-point and fixed-point C)

   o  No known patent enforcement activities or royalty-bearing patent
      pools as of date of submission




Chen and Thyssen            Expires October 28, 2010            [Page 4]


Internet-Draft                  BroadVoice codec              April 2010


   o  BV16 and BV32 are not bit-exact standards; implementation details
      MAY deviate from those specified in the ANSI/SCTE specifications
      for BV16 and BV32 as long as the bit-stream compatibility with the
      ANSI/SCTE BV16 and BV32 standards is maintained.

   It should be noted that some algorithm modules described in the
   ANSI/SCTE BV16 and BV32 specification documents are meant to
   illustrate the concepts behind the algorithm modules and may not be
   the most efficient way to implement the modules.  For example,
   version 1.1 of the BroadVoice open source code implements some of
   the efficient excitation vector quantization (VQ) codebook search
   methods described in [tsnfc-icassp] and [bv-efficient-vq] that are
   mathematically equivalent to the excitation VQ codebook search
   method described in the ANSI/SCTE BV16 and BV32 specifications but
   are computationally more efficient.

   Broadcom licenses, on a royalty-free basis, its patents that are
   necessary to practice techniques used in Broadcom's official version
   of the BroadVoice open source code.  Implementations that deviate
   from the techniques used in Broadcom's BroadVoice codecs may increase
   exposure to third-party patents. Therefore, to minimize potential
   intellectual property issues, it is RECOMMENDED that implementers of
   BroadVoice codecs use only techniques implemented in Broadcom's
   official version of BroadVoice open source C code.

























Chen and Thyssen            Expires October 28, 2010            [Page 5]


Internet-Draft                  BroadVoice codec              April 2010


3.  The BroadVoice16 (BV16) Codec

   The BroadVoice16 codec [bv16-asilomar] has a frame size of 5 ms and
   operates at a sampling rate of 8 kHz.  For every 40 samples of 8 kHz
   sampled input speech, BV 16 encodes the 40 samples into 80 bits,
   resulting in a bit rate of 2 bits/sample, or 16 kb/s.

   A detailed description of the encoding and decoding principles of the
   BV16 codec is given in the ANSI/SCTE 24-21 2006 standard
   specification document [bv16-ANSI], which is available at the
   following link:

   http://www.scte.org/documents/pdf/Standards/ANSISCTE24212006.pdf

   A BV16 decoder MAY include an adaptive postfilter (PF) to reduce the
   perceived level of coding noise.  It MAY also include packet loss
   Concealment (PLC) to conceal (at least partially) the quality-
   degrading effects of packet loss.  Both PF and PLC are post-
   processing steps after the speech signal is decoded, so they do not
   affect bit-stream compatibility.  Therefore, PF and PLC are not an
   essential part of the BV16 specification.  The ANSI/SCTE BV16
   specification describes an example PF and an example PLC scheme,
   but implementers can implement their own PF and PLC schemes without
   affecting bit-stream compatibility with BroadVoice codecs.

























Chen and Thyssen            Expires October 28, 2010            [Page 6]


Internet-Draft                  BroadVoice codec              April 2010


4.  The BroadVoice32 (BV32) Codec

   The BroadVoice32 codec also has a frame size of 5 ms but operates at
   a sampling rate of 16 kHz.  For every 80 samples of 16 kHz sampled
   input speech, BV32 encodes the 80 samples into 160 bits, resulting in
   a bit rate of 2 bits/sample, or 32 kb/s.

   A detailed description of the encoding and decoding principles of the
   BV32 codec is given in the ANSI/SCTE 24-23 2007 standard
   specification document [bv32-ANSI], which is available at the
   following link:

   http://www.scte.org/documents/pdf/Standards/ANSI_SCTE24-232007.pdf

   A BV32 decoder MAY include an adaptive postfilter (PF) to reduce the
   perceived level of coding noise, although it is not really necessary
   because even without a postfilter the output speech quality of BV32
   is already quite high.  A BV32 decoder MAY also include packet loss
   Concealment (PLC) to conceal (at least partially) the quality-
   degrading effects of packet loss.  Both PF and PLC are post-
   processing steps after the speech signal is decoded, so they do not
   affect bit-stream compatibility.  The ANSI/SCTE BV32 specification
   describes an example PLC scheme, but implementers can implement
   their own PLC schemes without affecting bit-stream compatibility.

























Chen and Thyssen            Expires October 28, 2010            [Page 7]


Internet-Draft                  BroadVoice codec              April 2010


5.  Security Considerations

   A potential denial-of-service threat exists for data encoding using
   compression techniques that have non-uniform receiver-end
   computational load. The attacker can inject pathological datagrams
   into the stream which are complex to decode and cause the receiver
   to become overloaded. However, the decoder complexity of BV16 and
   BV32 do not exhibit any significant non-uniformity.









































Chen and Thyssen            Expires October 28, 2010            [Page 8]


Internet-Draft                  BroadVoice codec              April 2010


6.  IANA Considerations

   This document has no actions for IANA.














































Chen and Thyssen            Expires October 28, 2010            [Page 9]


Internet-Draft                  BroadVoice codec              April 2010


7.  Acknowledgments

   The authors would like to thank Cheng-Chieh Lee and Robert Zopf for
their partial contributions in the following areas: floating-point C
codes, fixed-point C codes, optimized assembly codes, and performance
testing of BroadVoice codecs.











































Chen and Thyssen            Expires October 28, 2010           [Page 10]


Internet-Draft                  BroadVoice codec              April 2010


8.  References

8.1.  Normative References

   [rfc2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", RFC 2119.

   [bv16-ANSI]
              "BV16 Speech Codec Specification for Voice over IP
              Applications in Cable Telephony", American National
              Standard, ANSI/SCTE 24-21 2006.

   [bv32-ANSI]
              "BV32 Speech Codec Specification for Voice over IP
              Applications in Cable Telephony", American National
              Standard, ANSI/SCTE 24-23 2007.

   [rfc3550]  Schulzrinne, H., Casner, S., Frederick, R., and V.
              Jacobson, "RTP: A Transport Protocol for real-time
              applications", RFC 3550.

8.2.  Informative References

   [bv-website]
              BroadVoice(R) Speech Codec Open Source C Code, BroadVoice
              website http://www.broadcom.com/broadvoice/.

   [bv-icassp]
              Juin-Hwey Chen and Jes Thyssen, "The Broadvoice Speech
              Coding Algorithm", Proceedings of 2007 IEEE International
              Conference on Acoustics, Speech, and Signal Processing
              (ICASSP 2007), Volume 4, April 2007.

   [tsnfc-icassp]
              Juin-Hwey Chen, "Novel Codec Structures For Noise Feedback
              Coding of Speech", Proceedings of 2006 IEEE International
              Conference on Acoustics, Speech, and Signal Processing
              (ICASSP 2006), Volume 1, May 2006.

   [bv16-asilomar]
              Juin-Hwey Chen and Jes Thyssen, "BroadVoice(R)16: A
              PacketCable Speech Coding Standard for Cable Telephony",
              Proceedings of Fortieth Asilomar Conference on Signals,
              Systems and Computers, ACSSC 2006, October - November
              2006.




Chen and Thyssen            Expires October 28, 2010           [Page 11]


Internet-Draft                  BroadVoice codec              April 2010


   [bv-efficient-vq]
              Thyssen and Juin-Hwey Chen, "Efficient VQ Techniques and
              General Noise Shaping in Noise Feedback Coding",
              Proceedings of Interspeech 2006 ICSLP, September 2006.


Authors' Addresses

   Juin-Hwey (Raymond) Chen
   5300 California Avenue
   Irvine, CA 92617
   USA
   Email: rchen@broadcom.com

   Jes Thyssen
   5300 California Avenue
   Irvine, CA 92617
   USA
   Email: jthyssen@broadcom.com






























Chen and Thyssen            Expires October 28, 2010           [Page 12]