RFC 4298

RTP Payload Format for BroadVoice Speech Codecs

πŸ“… published December 2005, from ietf

RFC 4298: RTP Payload Format for BroadVoice Speech Codecs πŸŽ€

Okay bestie, let's start with the title block πŸ’… This is RFC 4298, and it's on the Standards Track πŸ”₯. It was written by J.-H. Chen, W. Lee, and J. Thyssen, all from Broadcom Corporation, and it's dated December 2005 🌸. The title block doesn't say it obsoletes or updates anything, so it's a fresh one ✨.

Status of This Memo πŸ“œ

This is an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements 🫢. If you want the current standardization state and status, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited 🌈.

Copyright (C) The Internet Society (2005) πŸ’œ

Abstract πŸ¦‹

So this doc is all about the RTP payload format for the BroadVoice(R) narrowband and wideband speech codecs 😭. The narrowband one is called BroadVoice16, or BV16, and CableLabs picked it as a mandatory codec in PacketCable 1.5, with a CableLabs specification to match πŸ‘‘. The doc also gives you the specs for using BroadVoice with MIME and the Session Description Protocol (SDP) πŸ’–.

Table of Contents 🧚

1. Introduction ....................................................2
2. Background ......................................................2
3. RTP Payload Format for BroadVoice16 Narrowband Codec ............3
   3.1. BroadVoice16 Bit Stream Definition .........................4
   3.2. Multiple BroadVoice16 Frames in an RTP Packet ..............5
4. RTP Payload Format for BroadVoice32 Wideband Codec ..............6
   4.1. BroadVoice32 Bit Stream Definition .........................6
   4.2. Multiple BroadVoice32 Frames in an RTP Packet ..............8
5. IANA Considerations .............................................8
   5.1. MIME Registration of BroadVoice16 for RTP ..................9
   5.2. MIME Registration of BroadVoice32 for RTP ..................9
6. Mapping to SDP Parameters ......................................10
   6.1. Offer-Answer Model Considerations .........................11
7. Security Considerations ........................................11
8. Congestion Control .............................................11
9. Acknowledgements ...............................................11
10. References ....................................................12
   10.1. Normative References .....................................12
   10.2. Informative References ...................................12

1. Introduction ✨

This doc specifies the payload format for sending BroadVoice encoded speech or audio signals using the Real-time Transport Protocol (RTP) [1] 🎧. The sender can send one or more BroadVoice codec data frames per packet, depending on the application scenario, based on network conditions, bandwidth availability, delay requirements, and packet-loss tolerance πŸ’….

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 [2] πŸ”₯.

2. Background 🌸

BroadVoice is a speech codec family built for VoIP (Voice over Internet Protocol) applications, like Voice over Cable, Voice over DSL, and IP phones πŸ“ž. It gets high speech quality with a low coding delay and relatively low codec complexity, which is honestly iconic 🌈.

The BroadVoice codec family has two versions. The narrowband one, BroadVoice16 [3] (or BV16 for short), encodes 8 kHz-sampled narrowband speech at a bit rate of 16 kilobits/second, or 16 kbit/s πŸŽ€. The wideband one, BroadVoice32 (or BV32 for short), encodes 16 kHz-sampled wideband speech at 32 kbit/s ✨. BV16 and BV32 use very similar (but not identical) coding algorithms, and they share most of their algorithm modules 🫢.

To keep delay down in real-time two-way calls, both BV16 and BV32 encode speech with a super small frame size of 5 ms and no look ahead 😭. Since you can use a packet size as small as 5 ms when needed, BroadVoice-based VoIP systems can get a really low end-to-end system delay πŸ¦‹.

BroadVoice also has relatively low codec complexity next to ITU-T standard speech codecs based on CELP (Coded Excited Linear Prediction), like G.728, G.729, G.723.1, and G.722.2 πŸ’…. Full-duplex BV16 and BV32 take around 12 and 17 MIPS, respectively, on general-purpose 16-bit fixed-point digital signal processors (DSPs) πŸ”₯. Their total memory footprints, including program size, data tables, and data RAM, are around 12 kwords each, or 24 kbytes πŸ’œ.

The PacketCable(TM) project of Cable Television Laboratories, Inc. (CableLabs(R)) picked BV16 for VoIP telephone services from cable operators πŸ‘‘. Specifically, BV16 was selected as one of the mandatory audio codecs in the PacketCable(TM) 1.5 Audio/Video Codecs Specification [8], and multiple vendors have implemented it πŸ“. The wideband version, BV32, was developed by Broadcom but hasn't shown up in a public specification yet. Since it's technically very similar to BV16, its payload format is defined in this doc too 🧚.

3. RTP Payload Format for BroadVoice16 Narrowband Codec πŸŽ€

BroadVoice16 uses 5 ms frames and an 8 kHz sampling frequency, so the RTP timestamp MUST be in units of 1/8000 of a second ⏰. The RTP timestamp marks the sampling instant of the oldest audio sample in the frame(s) inside the payload 🌸. The RTP payload for BroadVoice16 looks like the figure below, and no extra header specific to this payload format is required πŸ’–.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      RTP Header [1]                           |
   +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
   |                                                               |
   |             one or more frames of BroadVoice16                |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

If BroadVoice16 is used in apps with silence compression, the first BroadVoice16 packet after a silence period (where packets weren't sent contiguously) SHOULD have the marker bit in the RTP data header set to one πŸ™ˆ. Every other packet has the marker bit set to zero πŸ’€. Apps without silence suppression MUST set the marker bit to zero 🫢.

The assignment of an RTP payload type for this new packet format is outside the scope of this doc, so it won't be specified here πŸ¦‹. It's expected that the RTP profile for a particular class of applications will assign a payload type for this encoding. If that doesn't happen, then a payload type in the dynamic range shall be chosen ✨.

3.1. BroadVoice16 Bit Stream Definition 🌈

The BroadVoice16 encoder works on speech frames of 5 ms, which is 40 samples at a sampling rate of 8000 samples per second 🎧. For every 5 ms frame, the encoder turns those 40 consecutive audio samples into 80 bits, or 10 octets πŸ”₯. So the 80-bit bit stream BroadVoice16 makes for each 5 ms frame is octet-aligned, and no padding bits are required πŸ’…. Here's the bit allocation for the encoded parameters of the BroadVoice16 codec πŸ‘‘:

   Encoded Parameter      Codeword     Number of bits per frame
   ------------------------------------------------------------
   Line Spectrum Pairs    L0,L1            7+7=14
   Pitch Lag              PL                    7
   Pitch Gain             PG                    5
   Log-Gain               LG                    4
   Excitation Vectors     V0,...,V9       5*10=50
   ------------------------------------------------------------
   Total:                                      80 bits

The mapping of the encoded parameters in an 80-bit BroadVoice16 data frame is shown in the figure below πŸ¦‹. It shows the bit packing in "network byte order", also known as big-endian order. The bits of each 32-bit word are numbered 0 to 31, with the most significant bit on the left and numbered 0 πŸ“. Each word's octets (bytes) are sent most significant octet first πŸ’œ. The bits of each encoded parameter's data field are numbered in the same order, with the most significant bit on the left 🌸.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     L0      |     L1      |      PL     |   PG    |  LG   | V0|
   |             |             |             |         |       |   |
   |0 1 2 3 4 5 6|0 1 2 3 4 5 6|0 1 2 3 4 5 6|0 1 2 3 4|0 1 2 3|0 1|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | V0  |    V1   |    V2   |    V3   |    V4   |    V5   |   V6  |
   |     |         |         |         |         |         |       |
   |2 3 4|0 1 2 3 4|0 1 2 3 4|0 1 2 3 4|0 1 2 3 4|0 1 2 3 4|0 1 2 3|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V|    V7   |    V8   |   V9    |
   |6|         |         |         |
   |4|0 1 2 3 4|0 1 2 3 4|0 1 2 3 4|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Figure 1: BroadVoice16 bit packing

3.2. Multiple BroadVoice16 Frames in an RTP Packet πŸ“

A sender MAY put more than one BroadVoice16 frame in a single RTP packet πŸŽ€. Senders have these extra restrictions:

  • SHOULD NOT include more BroadVoice16 frames in a single RTP packet than will fit in the MTU of the RTP ✨.
  • MUST NOT split a BroadVoice16 frame between RTP packets πŸ™ˆ.
  • BroadVoice16 frames in an RTP packet MUST be consecutive 🫢.

Since multiple BroadVoice16 frames in an RTP packet MUST be consecutive, and BroadVoice16 has a fixed frame size of 5 ms, figuring out the timestamps of all frames in a packet is easy 🧚. The oldest frame in an RTP packet has the same timestamp as the RTP packet, as mentioned above 🌈. To get the timestamp of the frame that's N frames later than the oldest one in the packet, you just add 5*N ms worth of time units to the RTP packet's timestamp πŸ’….

It is RECOMMENDED that the number of frames in an RTP packet be consistent with the application πŸ’–. For example, in a telephony app where delay matters, fewer frames per packet means lower delay πŸ“ž. But for a delay-insensitive streaming or messaging app, lots of frames per packet would be fine πŸ¦‹.

The number of frames in an RTP packet isn't sent as part of the RTP payload 😭. The only way to figure out how many BroadVoice16 frames there are is to count the total number of octets in the RTP payload and divide that octet count by 10 πŸ’œ. Bestie, that's the core of it πŸ‘‘ More parts are coming, so keep an eye out ✨

4. RTP Payload Format for BroadVoice32 Wideband Codec ✨

okay so BroadVoice32 uses 5 ms frames at a 16 kHz sampling frequency πŸŽ€, which means the RTP timestamp MUST be in units of 1/16000 of a second. The RTP timestamp tells you the sampling instant of the oldest audio sample in the frame(s) inside the payload. Here's how the BroadVoice32 payload is laid out πŸ¦‹. No additional header specific to this payload format is required πŸ’….

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      RTP Header [1]                           |
   +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
   |                                                               |
   |             one or more frames of BroadVoice32                |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

bestie, listen πŸ‘‚ if BroadVoice32 is used in an app with silence compression, the first BroadVoice32 packet after a silence period (where packets weren't sent back to back) SHOULD have the marker bit in the RTP data header set to one 🌸. Every other packet has the marker bit set to zero. Apps without silence suppression MUST set the marker bit to zero πŸ™ˆ.

the RTP payload type for this packet format is outside the scope of this doc, so it won't be specified here 🧚. It's expected that the RTP profile for a particular class of apps will assign a payload type for this encoding. If that doesn't happen, then a payload type in the dynamic range shall be chosen πŸ’œ.

4.1. BroadVoice32 Bit Stream Definition

the BroadVoice32 encoder works on speech frames of 5 ms, which is 80 samples at 16000 samples per second πŸ“. For every 5 ms frame, those 80 consecutive audio samples get encoded into 160 bits, or 20 octets. The 160-bit stream for each frame is octet-aligned, so no padding bits are needed ✨. Here's how the bits get allocated to each encoded parameter πŸ’–.

                                                        Number of bits
      Encoded Parameter                  Codeword       per frame
      ---------------------------------------------------------------
      Line Spectrum Pairs                L0,L1,L2       7+5+5=17
      Pitch Lag                          PL                    8
      Pitch Gain                         PG                    5
      Log-Gains (1st & 2nd subframes)    LG0,LG1          5+5=10
      Excitation Vectors (1st subframe)  VA0,...,VA9     6*10=60
      Excitation Vectors (2nd subframe)  VB0,...,VB9     6*10=60
      ---------------------------------------------------------------
      Total:                                                 160 bits

the mapping of the encoded parameters inside a 160-bit BroadVoice32 data frame is shown in the figure below 🫢. It uses "network byte order", also called big-endian order. Each 32-bit word has its bits numbered 0 to 31, with the most significant bit on the left and numbered 0 πŸ‘‘. The octets (bytes) of each word go out most significant octet first. The bits in each encoded parameter's data field are numbered in the same order, with the most significant bit on the left 🌈.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     L0      |    L1   |    L2   |       PL      |    PG   |LG0|
   |             |         |         |               |         |   |
   |0 1 2 3 4 5 6|0 1 2 3 4|0 1 2 3 4|0 1 2 3 4 5 6 7|0 1 2 3 4|0 1|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | LG0 |   LG1   |    VA0    |    VA1    |    VA2    |    VA3    |
   |     |         |           |           |           |           |
   |2 3 4|0 1 2 3 4|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    VA4    |    VA5    |    VA6    |    VA7    |    VA8    |VA9|
   |           |           |           |           |           |   |
   |0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | VA9   |    VB0    |    VB1    |    VB2    |    VB3    |  VB4  |
   |       |           |           |           |           |       |
   |2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |VB4|    VB5    |    VB6    |    VB7    |    VB8    |   VB9     |
   |   |           |           |           |           |           |
   |4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|0 1 2 3 4 5|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Figure 2: BroadVoice32 bit packing

4.2. Multiple BroadVoice32 Frames in an RTP Packet

a sender MAY put more than one BroadVoice32 frame in a single RTP packet πŸ¦‹. There are a few extra rules senders have to follow, though πŸ™ˆ:

  • senders SHOULD NOT include more BroadVoice32 frames in one RTP packet than will fit in the MTU of the RTP 🌸.
  • senders MUST NOT split a BroadVoice32 frame between RTP packets πŸ’….
  • BroadVoice32 frames in an RTP packet MUST be consecutive πŸ”₯.

okay this part is so easy 😭. Because the frames in a packet MUST be consecutive, and BroadVoice32 has a fixed frame size of 5 ms, figuring out the timestamps of every frame in a packet is simple 🧚. The oldest frame in a packet has the same timestamp as the RTP packet, as we said earlier. To get the timestamp of the frame N frames after the oldest one, you just add 5*N ms worth of time units to the RTP packet's timestamp ✨.

It is RECOMMENDED that the number of frames in an RTP packet fit the application πŸ’–. For example, in a telephony app where delay matters, fewer frames per packet means lower delay. For a delay-insensitive streaming or messaging app, lots of frames per packet would be fine 🌈.

the number of frames in an RTP packet is NOT sent as part of the RTP payload, so there's no field for it πŸ’€. The only way to figure out how many BroadVoice32 frames there are is to count the total octets in the RTP payload and divide that octet count by 20 πŸŽ€.

5. IANA Considerations πŸ‘‘

two new MIME sub-types, described in this section, have been registered πŸ¦‹.

the MIME names for the BV16 and BV32 codecs were allocated from the IETF tree, since these two codecs are expected to be widely used for Voice-over-IP apps, especially Voice over Cable apps 🫢.

5.1. MIME Registration of BroadVoice16 for RTP

   MIME media type name: audio

   MIME media subtype name: BV16

   Required parameter: none

   Optional parameters:
      ptime:    Defined as usual for RTP audio (see RFC 2327 [4]).

      maxptime: See RFC 3267 [7] for its definition.  The maxptime
         SHOULD be a multiple of the duration of a single codec data
         frame (5 ms).

   Encoding considerations:
      This type is defined for transferring BV16-encoded data via RTP
      using the payload format specified in Section 3 of RFC 4298.
      Audio data is binary data and must be encoded for non-binary
      transport; the Base64 encoding is suitable for Email.

   Security considerations:
      See Section 7 "Security Considerations" of RFC 4298.

   Public specification:
      The BroadVoice16 codec has been specified in [3].

   Intended usage:
      COMMON.  It is expected that many VoIP applications, especially
      Voice over Cable applications, will use this type.

   Person & email address to contact for further information:
      Juin-Hwey (Raymond) Chen
      rchen@broadcom.com

   Author/Change controller:
      Author: Juin-Hwey (Raymond) Chen, rchen@broadcom.com
      Change Controller: IETF Audio/Video Transport Working Group
         delegated from the IESG

5.2. MIME Registration of BroadVoice32 for RTP

   MIME media type name: audio

   MIME media subtype name: BV32

   Required parameter: none
   Optional parameters:
      ptime:    Defined as usual for RTP audio (see RFC 2327 [4]).

      maxptime: See RFC 3267 [7] for its definition.  The maxptime
         SHOULD be a multiple of the duration of a single codec data
         frame (5 ms).

   Encoding considerations:
      This type is defined for transferring BV32-encoded data via RTP
      using the payload format specified in Section 4 of RFC 4298.
      Audio data is binary data and must be encoded for non-binary
      transport; the Base64 encoding is suitable for Email.

   Security considerations:
      See Section 7 "Security Considerations" of RFC 4298.

   Intended usage:
      COMMON.  It is expected that many VoIP applications, especially
      Voice over Cable applications, will use this type.

   Person & email address to contact for further information:
      Juin-Hwey (Raymond) Chen
      rchen@broadcom.com

   Author/Change controller:
      Author: Juin-Hwey (Raymond) Chen, rchen@broadcom.com
      Change Controller: IETF Audio/Video Transport Working Group
         delegated from the IESG

6. Mapping to SDP Parameters 🌸

the info in the MIME media type spec maps to specific fields in the Session Description Protocol (SDP) [4], which is commonly used to describe RTP sessions πŸ’œ. When SDP describes a session using BroadVoice16 or BroadVoice32, the mapping goes like this:

  • the MIME type ("audio") goes in SDP "m=" as the media name πŸŽ€.
  • the MIME subtype (payload format name) goes in SDP "a=rtpmap" as the encoding name. The RTP clock rate in "a=rtpmap" MUST be 8000 for BV16 and 16000 for BV32 ✨.
  • the parameters "ptime" and "maxptime" go in the SDP "a=ptime" and "a=maxptime" attributes, respectively πŸ¦‹.

here's what the SDP media representation for BV16 might look like 🧚:

   m=audio 49120 RTP/AVP 97
   a=rtpmap:97 BV16/8000

and here's one for BV32 πŸ’–:

   m=audio 49122 RTP/AVP 99
   a=rtpmap:99 BV32/16000

6.1. Offer-Answer Model Considerations

no special considerations are needed for using the SDP Offer/Answer model [5] with the BV16 and BV32 RTP payload formats 🫢.

7. Security Considerations πŸ”₯

RTP packets using the payload format defined in this spec are subject to the security considerations discussed in the RTP specification [1] and any appropriate profile (for example, [6]) πŸ’€. This means confidentiality of the media streams is achieved by encryption πŸ”.

okay, this one's a little spicy πŸ™ˆ. There's a potential denial-of-service threat for data encoding that uses compression techniques with non-uniform receiver-end computational load 😭. An attacker can inject pathological datagrams into the stream that are complex to decode, and that can overload the receiver. The good news is that the encodings covered in this document do not show any significant non-uniformity πŸ‘‘βœ¨.

8. Congestion Control ✨

okay so bestie, congestion control is the stuff that keeps the network from getting flooded 🌊, and the general rules for RTP data totally apply to BV16 and BV32 audio too πŸŽ€ (check out RTP [1] and any RTP profile you're using, like AVP [6]). The tea is that BV16 and BV32 don't have a built-in way to lower their bandwidth πŸ₯². What you can do is pack more frames into each RTP payload πŸ“¦. That means fewer packets get sent, so you save on the IP/UDP/RTP header overhead, BUT the trade-off is more delay and less protection when packets get lost πŸ’€. It's a whole vibe check, honestly πŸ’….


9. Acknowledgements

the authors wanted to shout out Magnus Westerlund, Colin Perkins, Allison Mankin, and Jean-Francois Mule for reviewing this document πŸ«ΆπŸ’–. iconic of them πŸ‘‘.


10. References

10.1. Normative References

[1] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003.

[2] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[3] Cable Television Laboratories, Inc., BroadVoice(TM)16 Speech Codec Specification, Revision 1.2, October 30, 2003.

[4] Handley, M. and V. Jacobson, "SDP: Session Description Protocol", RFC 2327, April 1998.

[5] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002.

[6] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and Video Conferences with Minimal Control", STD 65, RFC 3551, July 2003.

[7] Sjoberg, J., Westerlund, M., Lakaniemi, A., and Q. Xie, "Real-Time Transport Protocol (RTP) Payload Format and File Storage Format for the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB) Audio Codecs", RFC 3267, June 2002.

10.2. Informative References

[8] Cable Television Laboratories, Inc., PacketCable(TM) 1.5 Audio/Video Codecs Specification, PKT-SP-CODEC1.5-I01-050128, January 28, 2005. http://www.cablelabs.com/specifications/archives/


Authors' Addresses

Juin-Hwey (Raymond) Chen Broadcom Corporation Room A3020 16215 Alton Parkway Irvine, CA 92618 USA

Phone: +1 949 926 6288 EMail: rchen@broadcom.com

Winnie Lee Broadcom Corporation Room A2012E 200-13711 International Place Richmond, British Columbia V6V 2Z8 Canada

Phone: +1 604 233 8605 EMail: wlee@broadcom.com

Jes Thyssen Broadcom Corporation Room A3018 16215 Alton Parkway Irvine, CA 92618 USA

Phone: +1 949 926 5768 EMail: jthyssen@broadcom.com


Copyright (C) The Internet Society (2005) 🌈.

this document is subject to the rights, licenses and restrictions in BCP 78, and except as set forth there, the authors keep all their rights πŸ”’.

the document and everything in it is provided on an "AS IS" basis, and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY 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 πŸ’€.


Intellectual Property

ngl this part is about who owns what 🧾. the IETF doesn't take a side on whether any Intellectual Property Rights (or other rights) that someone might claim over the tech in this document are valid or how far they reach. it also doesn't say it has searched for any of those rights πŸ™ˆ. the rules for rights in RFC documents live in BCP 78 and BCP 79.

copies of IPR disclosures sent to the IETF Secretariat, plus any assurances of licenses, or the results of trying to get a general license or permission for implementers or users, can be found in the IETF on-line IPR repository at http://www.ietf.org/ipr.

the IETF also invites anyone to flag any copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to implement this standard. send that info to the IETF at ietf-ipr@ietf.org πŸ“¨πŸ¦‹.


Acknowledgement

Funding for the RFC Editor function is currently provided by the Internet Society πŸ’œ. and that's a wrap on BroadVoice bestie, periodt πŸŽ€βœ¨.

πŸ“¦ where this page comes from