home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_a_c / draft-ietf-avt-profile-new-00.txt < prev    next >
Text File  |  1997-03-27  |  60KB  |  1,460 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10. Internet Engineering Task Force                                   AVT WG
  11. Internet Draft                                               Schulzrinne
  12. ietf-avt-profile-new-00.txt                                      Columbia U.
  13. March 26, 1997
  14. Expires: September 9, 1997
  15.  
  16.  
  17.     RTP Profile for Audio and Video Conferences with Minimal Control
  18.  
  19. STATUS OF THIS MEMO
  20.  
  21.    This document is an Internet-Draft. Internet-Drafts are working
  22.    documents of the Internet Engineering Task Force (IETF), its areas,
  23.    and its working groups.  Note that other groups may also distribute
  24.    working documents as Internet-Drafts.
  25.  
  26.    Internet-Drafts are draft documents valid for a maximum of six months
  27.    and may be updated, replaced, or obsoleted by other documents at any
  28.    time.  It is inappropriate to use Internet-Drafts as reference
  29.    material or to cite them other than as ``work in progress''.
  30.  
  31.    To learn the current status of any Internet-Draft, please check the
  32.    ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
  33.    Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  34.    munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
  35.    ftp.isi.edu (US West Coast).
  36.  
  37.    Distribution of this document is unlimited.
  38.  
  39.                                  ABSTRACT
  40.  
  41.  
  42.          This memo describes a profile called "RTP/AVP" for the
  43.          use of the real-time transport protocol (RTP), version 2,
  44.          and the associated control protocol, RTCP, within audio
  45.          and video multiparticipant conferences with minimal
  46.          control. It provides interpretations of generic fields
  47.          within the RTP specification suitable for audio and video
  48.          conferences. In particular, this document defines a set
  49.          of default mappings from payload type numbers to
  50.          encodings.
  51.  
  52.          The document also describes how audio and video data may
  53.          be carried within RTP. It defines a set of standard
  54.          encodings and their names when used within RTP. However,
  55.  
  56.  
  57.  
  58. Schulzrinne                                                   [Page 1]
  59.  
  60. Internet Draft                  Profile                   March 26, 1997
  61.  
  62.  
  63.          the encoding definitions are independent of the
  64.          particular transport mechanism used. The descriptions
  65.          provide pointers to reference implementations and the
  66.          detailed standards. This document is meant as an aid for
  67.          implementors of audio, video and other real-time
  68.          multimedia applications.
  69.  
  70.  
  71.    Changes
  72.  
  73.    This draft revises RFC 1890. It is fully backwards-compatible with
  74.    RFC 1890 and codifies existing practice. It is intended that this
  75.    draft form the basis of a new RFC to obsolete RFC 1890 as it moves to
  76.    Draft Standard..
  77.  
  78.    Besides wording clarifications and filling in RFC numbers for payload
  79.    type definitions, this draft adds payload types 4, 13, 16, 17, 18 and
  80.    34. The PostScript version of this draft contains change bars.
  81.  
  82.    Note to RFC editor: This section is to be removed before publication
  83.    as an RFC. All RFC TBD should be filled in with the number of the RTP
  84.    specification RFC submitted for DS status.
  85.  
  86. 1 Introduction
  87.  
  88.    This profile defines aspects of RTP left unspecified in the RTP
  89.    Version 2 protocol definition (RFC XXXX). This profile is intended
  90.    for the use within audio and video conferences with minimal session
  91.    control. In particular, no support for the negotiation of parameters
  92.    or membership control is provided. The profile is expected to be
  93.    useful in sessions where no negotiation or membership control are
  94.    used (e.g., using the static payload types and the membership
  95.    indications provided by RTCP), but this profile may also be useful in
  96.    conjunction with a higher-level control protocol.
  97.  
  98.    Use of this profile occurs by use of the appropriate applications;
  99.    there is no explicit indication by port number, protocol identifier
  100.    or the like. Applications such as session directories should refer to
  101.    this profile as "RTP/AVP".
  102.  
  103.    Other profiles may make different choices for the items specified
  104.    here.
  105.  
  106.    This document also defines a set of payload formats for audio.
  107.  
  108.    This draft defines the term media type as dividing encodings of audio
  109.    and video content into three classes: audio, video and audio/video
  110.    (interleaved).
  111.  
  112.  
  113.  
  114. Schulzrinne                                                   [Page 2]
  115.  
  116. Internet Draft                  Profile                   March 26, 1997
  117.  
  118.  
  119. 2 RTP and RTCP Packet Forms and Protocol Behavior
  120.  
  121.    The section "RTP Profiles and Payload Format Specification" of RFC
  122.    TBD enumerates a number of items that can be specified or modified in
  123.    a profile. This section addresses these items. Generally, this
  124.    profile follows the default and/or recommended aspects of the RTP
  125.    specification.
  126.  
  127.    RTP data header: The standard format of the fixed RTP data header is
  128.         used (one marker bit).
  129.  
  130.    Payload types: Static payload types are defined in Section 6.
  131.  
  132.    RTP data header additions: No additional fixed fields are appended to
  133.         the RTP data header.
  134.  
  135.    RTP data header extensions: No RTP header extensions are defined, but
  136.         applications operating under this profile may use such
  137.         extensions. Thus, applications should not assume that the RTP
  138.         header X bit is always zero and should be prepared to ignore the
  139.         header extension. If a header extension is defined in the
  140.         future, that definition must specify the contents of the first
  141.         16 bits in such a way that multiple different extensions can be
  142.         identified.
  143.  
  144.    RTCP packet types: No additional RTCP packet types are defined by
  145.         this profile specification.
  146.  
  147.    RTCP report interval: The suggested constants are to be used for the
  148.         RTCP report interval calculation.
  149.  
  150.    SR/RR extension: No extension section is defined for the RTCP SR or
  151.         RR packet.
  152.  
  153.    SDES use: Applications may use any of the SDES items described in the
  154.         RTP specification. While CNAME information is sent every
  155.         reporting interval, other items should be sent only every third
  156.         reporting interval, with NAME sent seven out of eight times
  157.         within that slot and the remaining SDES items cyclically taking
  158.         up the eighth slot, as defined in Section 6.2.2 of the RTP
  159.         specification. In other words, NAME is sent in RTCP packets 1,
  160.         4, 7, 10, 13, 16, 19, while, say, EMAIL is used in RTCP packet
  161.         22.
  162.  
  163.    Security: The RTP default security services are also the default
  164.         under this profile.
  165.  
  166.    String-to-key mapping: A user-provided string ("pass phrase") is
  167.  
  168.  
  169.  
  170. Schulzrinne                                                   [Page 3]
  171.  
  172. Internet Draft                  Profile                   March 26, 1997
  173.  
  174.  
  175.         hashed with the MD5 algorithm to a 16-octet digest. An
  176.  
  177.         -bit key is extracted from the digest by taking the first
  178.  
  179.  
  180.         bits from the digest. If several keys are needed with a total
  181.         length of 128 bits or less (as for triple DES), they are
  182.         extracted in order from that digest. The octet ordering is
  183.         specified in RFC 1423, Section 2.2. (Note that some DES
  184.         implementations require that the 56-bit key be expanded into 8
  185.         octets by inserting an odd parity bit in the most significant
  186.         bit of the octet to go with each 7 bits of the key.)
  187.  
  188.    It is suggested that pass phrases are restricted to ASCII letters,
  189.    digits, the hyphen, and white space to reduce the the chance of
  190.    transcription errors when conveying keys by phone, fax, telex or
  191.    email.
  192.  
  193.    The pass phrase may be preceded by a specification of the encryption
  194.    algorithm. Any characters up to the first slash (ASCII 0x2f) are
  195.    taken as the name of the encryption algorithm. The encryption format
  196.    specifiers should be drawn from RFC 1423 or any additional
  197.    identifiers registered with IANA. If no slash is present, DES-CBC is
  198.    assumed as default. The encryption algorithm specifier is case
  199.    sensitive.
  200.  
  201.    The pass phrase typed by the user is transformed to a canonical form
  202.    before applying the hash algorithm. For that purpose, we define
  203.    return, tab, or vertical tab as well as all characters contained in
  204.    the Unicode space characters table. The transformation consists of
  205.    the following steps: (1) convert the input string to the ISO 10646
  206.    character set, using the UTF-8 encoding as specified in Annex P to
  207.    ISO/IEC 10646-1:1993 (ASCII characters require no mapping, but ISO
  208.    8859-1 characters do); (2) remove leading and trailing white space
  209.    characters; (3) replace one or more contiguous white space characters
  210.    by a single space (ASCII or UTF-8 0x20); (4) convert all letters to
  211.    lower case and replace sequences of characters and non-spacing
  212.    accents with a single character, where possible. A minimum length of
  213.    16 key characters (after applying the transformation) should be
  214.    enforced by the application, while applications must allow up to 256
  215.    characters of input.
  216.  
  217.    Underlying protocol: The profile specifies the use of RTP over
  218.         unicast and multicast UDP. (This does not preclude the use of
  219.         these definitions when RTP is carried by other lower-layer
  220.         protocols.)
  221.  
  222.    Transport mapping: The standard mapping of RTP and RTCP to
  223.  
  224.  
  225.  
  226. Schulzrinne                                                   [Page 4]
  227.  
  228. Internet Draft                  Profile                   March 26, 1997
  229.  
  230.  
  231.         transport-level addresses is used.
  232.  
  233.    Encapsulation: No encapsulation of RTP packets is specified.
  234.  
  235. 3 Registering Payload Types
  236.  
  237.    This profile defines a set of standard encodings and their payload
  238.    types when used within RTP. Other encodings and their payload types
  239.    are to be registered with the Internet Assigned Numbers Authority
  240.    (IANA). When registering a new encoding/payload type, the following
  241.    information should be provided:
  242.  
  243.         o name and description of encoding, in particular the RTP
  244.          timestamp clock rate; the names defined here are 3 or 4
  245.          characters long to allow a compact representation if needed;
  246.  
  247.         o indication of who has change control over the encoding (for
  248.          example, ISO, CCITT/ITU, other international standardization
  249.          bodies, a consortium or a particular company or group of
  250.          companies);
  251.  
  252.         o any operating parameters or profiles;
  253.  
  254.         o a reference to a further description, if available, for
  255.          example (in order of preference) an RFC, a published paper, a
  256.          patent filing, a technical report, documented source code or a
  257.          computer manual;
  258.  
  259.         o for proprietary encodings, contact information (postal and
  260.          email address);
  261.  
  262.         o the payload type value for this profile, if necessary (see
  263.          below).
  264.  
  265.    Note that not all encodings to be used by RTP need to be assigned a
  266.    static payload type. Non-RTP means beyond the scope of this memo
  267.    (such as directory services or invitation protocols) may be used to
  268.    establish a dynamic mapping between a payload type drawn from the
  269.    range
  270.  
  271.  
  272.    and an encoding. For implementor convenience, this profile contains
  273.    descriptions of encodings which do not currently have a static
  274.    payload type assigned to them.
  275.  
  276.    Note that dynamic payload types should not be used without a well-
  277.    defined mechanism to indicate the mapping. Systems that expect to
  278.    interoperate with others operating under this profile should not
  279.  
  280.  
  281.  
  282. Schulzrinne                                                   [Page 5]
  283.  
  284. Internet Draft                  Profile                   March 26, 1997
  285.  
  286.  
  287.    assign proprietary encodings to particular, fixed payload types in
  288.    the range reserved for dynamic payload types.
  289.  
  290.    The available payload type space is relatively small. Thus, new
  291.    static payload types are assigned only if the following conditions
  292.    are met:
  293.  
  294.         o The encoding is of interest to the Internet community at
  295.          large.
  296.  
  297.         o It offers benefits compared to existing encodings and/or is
  298.          required for interoperation with existing, widely deployed
  299.          conferencing or multimedia systems.
  300.  
  301.         o The description is sufficient to build a decoder.
  302.  
  303.    The four-character encoding names are those those by the Session
  304.    Description Protocol (SDP) (RFC XXXX) .
  305.  
  306. 4 Audio
  307.  
  308. 4.1 Encoding-Independent Rules
  309.  
  310.    For applications which send no packets during silence, the first
  311.    packet of a talkspurt, that is, the first packet after a silence
  312.    period, is distinguished by setting the marker bit in the RTP data
  313.    header. The beginning of a talkspurt may be used to adjust the
  314.    playout delay to reflect changing network delays.  Applications
  315.    without silence suppression set the bit to zero.
  316.  
  317.    The RTP clock rate used for generating the RTP timestamp is
  318.    independent of the number of channels and the encoding; it equals the
  319.    number of sampling periods per second. For
  320.  
  321.  
  322.    -channel encodings, each sampling period (say,
  323.  
  324.  
  325.    of a second) generates
  326.  
  327.  
  328.    samples. (This terminology is standard, but somewhat confusing, as
  329.    the total number of samples generated per second is then the sampling
  330.    rate times the channel count.)
  331.  
  332.    If multiple audio channels are used, channels are numbered left-to-
  333.    right, starting at one. In RTP audio packets, information from
  334.    lower-numbered channels precedes that from higher-numbered channels.
  335.  
  336.  
  337.  
  338. Schulzrinne                                                   [Page 6]
  339.  
  340. Internet Draft                  Profile                   March 26, 1997
  341.  
  342.  
  343.    For more than two channels, the convention followed by the AIFF-C
  344.    audio interchange format should be followed [1], using the following
  345.    notation:
  346.  
  347.  
  348.    l    left
  349.    r    right
  350.    c    center
  351.    S    surround
  352.    F    front
  353.    R    rear
  354.  
  355.  
  356.  
  357.    channels    description     channel
  358.                                   1       2     3     4     5     6
  359.    ________________________________________________________________
  360.    2           stereo             l       r
  361.    3                              l       r     c
  362.    4           quadrophonic      Fl       Fr    Rl    Rr
  363.    4                              l       c     r     S
  364.    5                             Fl       Fr    Fc    Sl    Sr
  365.    6                              l       lc    c     r     rc    S
  366.  
  367.  
  368.    Samples for all channels belonging to a single sampling instant must
  369.    be within the same packet. The interleaving of samples from different
  370.    channels depends on the encoding. General guidelines are given in
  371.    Section 4.3 and 4.4.
  372.  
  373.    The sampling frequency should be drawn from the set: 8000, 11025,
  374.    16000, 22050, 24000, 32000, 44100 and 48000 Hz. (The Apple Macintosh
  375.    computers have native sample rates of 22254.54 and 11127.27, which
  376.    can be converted to 22050 and 11025 with acceptable quality by
  377.    dropping 4 or 2 samples in a 20 ms frame.) However, most audio
  378.    encodings are defined for a more restricted set of sampling
  379.    frequencies. Receivers should be prepared to accept multi-channel
  380.    audio, but may choose to only play a single channel.
  381.  
  382. 4.2 Operating Recommendations
  383.  
  384.    The following recommendations are default operating parameters.
  385.    Applications should be prepared to handle other values. The ranges
  386.    given are meant to give guidance to application writers, allowing a
  387.    set of applications conforming to these guidelines to interoperate
  388.    without additional negotiation. These guidelines are not intended to
  389.    restrict operating parameters for applications that can negotiate a
  390.    set of interoperable parameters, e.g., through a conference control
  391.    protocol.
  392.  
  393.  
  394. Schulzrinne                                                   [Page 7]
  395.  
  396. Internet Draft                  Profile                   March 26, 1997
  397.  
  398.  
  399.    For packetized audio, the default packetization interval should have
  400.    a duration of 20 ms or one frame, whichever is longer, unless
  401.    otherwise noted in Table 1 (column "ms/packet"). The packetization
  402.    interval determines the minimum end-to-end delay; longer packets
  403.    introduce less header overhead but higher delay and make packet loss
  404.    more noticeable. For non-interactive applications such as lectures or
  405.    links with severe bandwidth constraints, a higher packetization delay
  406.    may be appropriate. A receiver should accept packets representing
  407.    between 0 and 200 ms of audio data. (For framed audio encodings, a
  408.    receiver should accept packets with 200 ms divided by the frame
  409.    duration, rounded up.) This restriction allows reasonable buffer
  410.    sizing for the receiver.
  411.  
  412. 4.3 Guidelines for Sample-Based Audio Encodings
  413.  
  414.    In sample-based encodings, each audio sample is represented by a
  415.    fixed number of bits. Within the compressed audio data, codes for
  416.    individual samples may span octet boundaries. An RTP audio packet may
  417.    contain any number of audio samples, subject to the constraint that
  418.    the number of bits per sample times the number of samples per packet
  419.    yields an integral octet count. Fractional encodings produce less
  420.    than one octet per sample.
  421.  
  422.    The duration of an audio packet is determined by the number of
  423.    samples in the packet.
  424.  
  425.    For sample-based encodings producing one or more octets per sample,
  426.    samples from different channels sampled at the same sampling instant
  427.    are packed in consecutive octets. For example, for a two-channel
  428.    encoding, the octet sequence is (left channel, first sample), (right
  429.    channel, first sample), (left channel, second sample), (right
  430.    channel, second sample), .... For multi-octet encodings, octets are
  431.    transmitted in network byte order (i.e., most significant octet
  432.    first).
  433.  
  434.    The packing of sample-based encodings producing less than one octet
  435.    per sample is encoding-specific.
  436.  
  437. 4.4 Guidelines for Frame-Based Audio Encodings
  438.  
  439.    Frame-based encodings encode a fixed-length block of audio into
  440.    another block of compressed data, typically also of fixed length. For
  441.    frame-based encodings, the sender may choose to combine several such
  442.    frames into a single RTP packet. The receiver can tell the number of
  443.    frames contained in an RTP packet since the audio frame duration (in
  444.    octets) is defined as part of the encoding, as long as all frames
  445.    have the same length measured in octets. This does not work when
  446.    carrying frames of different sizes unless the frame sizes are
  447.  
  448.  
  449.  
  450. Schulzrinne                                                   [Page 8]
  451.  
  452. Internet Draft                  Profile                   March 26, 1997
  453.  
  454.  
  455.    relatively prime.
  456.  
  457.    For frame-based codecs, the channel order is defined for the whole
  458.    block. That is, for two-channel audio, right and left samples are
  459.    coded independently, with the encoded frame for the left channel
  460.    preceding that for the right channel.
  461.  
  462.    All frame-oriented audio codecs should be able to encode and decode
  463.    several consecutive frames within a single packet. Since the frame
  464.    size for the frame-oriented codecs is given, there is no need to use
  465.    a separate designation for the same encoding, but with different
  466.    number of frames per packet.
  467.  
  468.    RTP packets shall contain a whole number of frames, with frames
  469.    inserted according to age within a packet, so that the oldest frame
  470.    (to be played first) occurs immediately after the RTP packet header.
  471.    The RTP timestamp reflects the capturing time of the first sample in
  472.    the first frame, that is, the oldest information in the packet.
  473.  
  474. 4.5 Audio Encodings
  475.  
  476.  
  477.      encoding    sample/frame    bits/sample    ms/frame    ms/packet
  478.      ________________________________________________________________
  479.      1016        frame           N/A                  30           30
  480.      DVI4        sample          4                                 20
  481.      G721        sample          4                                 20
  482.      G722        sample          8                                 20
  483.      G723        frame           N/A                  30           30
  484.      G728        frame           N/A                 2.5           20
  485.      G729        frame           N/A                  10           20
  486.      GSM         frame           N/A                  20           20
  487.      L8          sample          8                                 20
  488.      L16         sample          16                                20
  489.      LPC         frame           N/A                  20           20
  490.      MPA         frame           N/A                               20
  491.      PCMA        sample          8                                 20
  492.      PCMU        sample          8                                 20
  493.      VDVI        sample          var.                              20
  494.  
  495.  
  496.    Table 1: Properties of Audio Encodings
  497.  
  498.  
  499.    The characteristics of standard audio encodings are shown in Table 1
  500.    and their payload types are listed in Table 4.
  501.  
  502. 4.5.1 1016
  503.  
  504.  
  505.  
  506. Schulzrinne                                                   [Page 9]
  507.  
  508. Internet Draft                  Profile                   March 26, 1997
  509.  
  510.  
  511.    Encoding 1016 is a frame based encoding using code-excited linear
  512.    prediction (CELP) and is specified in Federal Standard FED-STD 1016
  513.    [2,3,4,5].
  514.  
  515.    The U. S. DoD's Federal-Standard-1016 based 4800 bps code excited
  516.    linear prediction voice coder version 3.2 (CELP 3.2) Fortran and C
  517.    simulation source codes are available for worldwide distribution at
  518.    no charge (on DOS diskettes, but configured to compile on Sun SPARC
  519.    stations) from: Bob Fenichel, National Communications System,
  520.    Washington, D.C. 20305, phone +1-703-692-2124, fax +1-703-746-4960.
  521.  
  522. 4.5.2 CN
  523.  
  524.    The G.764-based VAD (voice activity detector) noise level packet
  525.    contains a single-octet message to the receiver to play comfort noise
  526.    at the absolute dBmO level specified by the G.764 level index. This
  527.    message would normally be sent once at the beginning of a silence
  528.    period (which also indicates the transition from speech to silence),
  529.    but rate of noise level updates is implementation specific. The
  530.    mapping of the index to absolute noise levels measured on the
  531.    transmit side is given in Table 2, with the level index packed into
  532.    the least significant bits of the noise-level payload, as shown
  533.    below.
  534.  
  535.  
  536.  
  537.      0
  538.      0 1 2 3 4 5 6 7
  539.      +-+-+-+-+-+-+-+-+
  540.      |0 0 0 0| level |
  541.      +-+-+-+-+-+-+-+-+
  542.  
  543.  
  544.  
  545.    The RTP header for the comfort noise packet should be constructed as
  546.    if the VAD noise were an independent codec, but sharing the media
  547.    clock and sequence number space with the associated voice codec.
  548.    Thus, the RTP timestamp designates the beginning of the silence
  549.    period, using the timestamp frequency of the payload type immediately
  550.    preceding the CN packet. The RTP packet should not have the marker
  551.    bit set.
  552.  
  553.  
  554.    Note: dBrnc0 is the noise power measured in dBrnC, but referenced to
  555.    the zero-level transmission level point (TLP). Typically, the two-
  556.    wire interface in telephony is at the zero-level TLP of 0 dBm. dBrnC
  557.    is the power level of noise with C-message weighting expressed in
  558.    decibels relative to reference noise. Reference noise power is -90
  559.  
  560.  
  561.  
  562. Schulzrinne                                                  [Page 10]
  563.  
  564. Internet Draft                  Profile                   March 26, 1997
  565.  
  566.  
  567.  
  568.                        Index    Noise Level (dBrncO)
  569.                        _____________________________
  570.                            0               Idle Code
  571.                            1                    16.6
  572.                            2                    19.7
  573.                            3                    22.6
  574.                            4                    24.9
  575.                            5                    26.9
  576.                            6                    29.0
  577.                            7                    31.0
  578.                            8                    32.8
  579.                            9                    34.6
  580.                           10                    36.2
  581.                           11                    37.9
  582.                           12                    39.7
  583.                           13                    41.6
  584.                           14                    43.8
  585.                           15                    46.6
  586.  
  587.  
  588.    Table 2: G.764 noise level mapping
  589.  
  590.    dBm or 1 pW.  (dBm is the power level in decibels relative to 1 mW,
  591.    with an impedance of 600 Ohms.) The C-message weighting is described
  592.    in [6]. To obtain dBmC0 levels, subtract 90 dB from the values
  593.    listed.
  594.  
  595. 4.5.3 DVI4
  596.  
  597.    DVI4 is specified, with pseudo-code, in [7] as the IMA ADPCM wave
  598.    type.
  599.  
  600.    However, the encoding defined here as DVI4 differs in three respects
  601.    from this recommendation:
  602.  
  603.         o The header contains the predicted value rather than the first
  604.          sample value.
  605.  
  606.         o IMA ADPCM blocks contain an odd number of samples, since the
  607.          first sample of a block is contained just in the header
  608.          (uncompressed), followed by an even number of compressed
  609.          samples. DVI4 has an even number of compressed samples only,
  610.          using the 'predict' word from the header to decode the first
  611.          sample.
  612.  
  613.         o For DVI4, the 4-bit samples are packed with the first sample
  614.          in the four most significant bits and the second sample in the
  615.          four least significant bits. In the IMA ADPCM codec, the
  616.  
  617.  
  618. Schulzrinne                                                  [Page 11]
  619.  
  620. Internet Draft                  Profile                   March 26, 1997
  621.  
  622.  
  623.          samples are packed in little-endian order.
  624.  
  625.    Each packet contains a single DVI block. This profile only defines
  626.    the 4-bit-per-sample version, while IMA also specifies a 3-bit-per-
  627.    sample encoding.
  628.  
  629.    The "header" word for each channel has the following structure:
  630.  
  631.      int16  predict;  /* predicted value of first sample
  632.                          from the previous block (L16 format) */
  633.      u_int8 index;    /* current index into stepsize table */
  634.      u_int8 reserved; /* set to zero by sender, ignored by receiver */
  635.  
  636.  
  637.  
  638.    Each octet following the header contains two 4-bit samples, thus the
  639.    number of samples per packet must be even..
  640.  
  641.    Packing of samples for multiple channels is for further study.
  642.  
  643.    The document IMA Recommended Practices for Enhancing Digital Audio
  644.    Compatibility in Multimedia Systems (version 3.0) contains the
  645.    algorithm description. It is available from
  646.  
  647.    Interactive Multimedia Association
  648.    48 Maryland Avenue, Suite 202
  649.    Annapolis, MD 21401-8011
  650.    USA
  651.    phone: +1 410 626-1380
  652.  
  653. 4.5.4 G721
  654.  
  655.    G721 is specified in ITU recommendation G.721. Reference
  656.    implementations for G.721 are available as part of the CCITT/ITU-T
  657.    Software Tool Library (STL) from the ITU General Secretariat, Sales
  658.    Service, Place du Nations, CH-1211 Geneve 20, Switzerland. The
  659.    library is covered by a license.
  660.  
  661. 4.5.5 G722
  662.  
  663.    G722 is specified in ITU-T recommendation G.722, "7 kHz audio-coding
  664.    within 64 kbit/s".
  665.  
  666. 4.5.6 G723
  667.  
  668.    G.723.1 is specified in ITU recommendation G.723.1, "Dual-rate speech
  669.    coder for multimedia communications transmitting at 5.3 and 6.3
  670.    kbit/s". Audio is encoded in 30 ms frames, with an additional delay
  671.  
  672.  
  673.  
  674. Schulzrinne                                                  [Page 12]
  675.  
  676. Internet Draft                  Profile                   March 26, 1997
  677.  
  678.  
  679.    of 7.5 ms due to look-ahead. A G.723.1 frame can be one of three
  680.    sizes:  24 octets (6.3 kb/s frame), 20 octets (5.3 kb/s frame), or 4
  681.    octets.  These 4-octet frames are called SID frames (Silence
  682.    Insertion Descriptor) and are used to specify comfort noise
  683.    parameters. There is no restriction on how 4, 20, and 24 octet frames
  684.    are intermixed. The least significant two bits of the first octet in
  685.    the frame determine the frame size and codec type:
  686.  
  687.  
  688.    bits    content                        octets/frame
  689.    00      high-rate speech (6.3 kb/s)              24
  690.    01      low-rate speech (5.3 kb/s)               20
  691.    10      SID frame                                 4
  692.    11      reserved
  693.  
  694.  
  695.    It is possible to switch between the two rates at any 30 ms frame
  696.    boundary. Both (5.3 kb/s and 6.3 kb/s) rates are a mandatory part of
  697.    the encoder and decoder.
  698.  
  699. 4.5.7 G726-32
  700.  
  701.    ITU-T Recommendation G.726 describes, among others, the algorithm
  702.    recommended for conversion of a single 64 kbit/s A-law or mu-law PCM
  703.    channel encoded at 8000 samples/sec to and from a 32 kbit/s channel.
  704.    The conversion is applied to the PCM stream using an Adaptive
  705.    Differential Pulse Code Modulation (ADPCM) transcoding technique.
  706.    G.726 is a backwards-compatible superset of G.721, a recommendation
  707.    which is no longer in force. G.726 also describes codecs operating at
  708.    40 (5 bits/sample), 24 (3 bits/sample) and 16 kb/s (2 bits/sample).
  709.    These are labeled G726-40, G726-24 and G726-16, respectively.
  710.  
  711.    No header information shall be included as part of the audio data.
  712.    The 4-bit code words of the G.726 encoding MUST be packed into octets
  713.    as follows: the first code word is placed in the four least
  714.    significant bits of the first octet, with the least significant bit
  715.    of the code word in the least significant bit of the octet; the
  716.    second code word is placed in the four most significant bits of the
  717.    first octet, with the most significant bit of the code word in the
  718.    most significant bit of the octet. Subsequent pairs of the code words
  719.    shall be packed in the same way into successive octets, with the
  720.    first code word of each pair placed in the least significant four
  721.    bits of the octet. It is prefered that the voice sample be extended
  722.    with silence such that the encoded value comprises an even number of
  723.    code words.
  724.  
  725. 4.5.8 G728
  726.  
  727.  
  728.  
  729.  
  730. Schulzrinne                                                  [Page 13]
  731.  
  732. Internet Draft                  Profile                   March 26, 1997
  733.  
  734.  
  735.    G728 is specified in ITU-T recommendation G.728, "Coding of speech at
  736.    16 kbit/s using low-delay code excited linear prediction".
  737.  
  738.    A G.278 encoder translates 5 consecutive audio samples into a 10-bit
  739.    codebook index, resulting in a bit rate of 16 kb/s for audio sampled
  740.    at 8,000 samples per second. The group of five consecutive samples is
  741.    called a vector. Four consecutive vectors, labeled V1-V4 (where V1 is
  742.    to be played first by the receiver), build one G.728 frame. The four
  743.    vectors of 40 bits are packed into 5 octets, labeled B1 through B5.
  744.  
  745.    Referring to the figure below, the principle for bit order is
  746.    "maintenance of bit significance". Bits from an older vector are more
  747.    significant than bits from newer vectors. The MSB of the frame goes
  748.    to the MSB of B1 and the LSB of the frame goes to LSB of B5.
  749.  
  750.  
  751.              1         2         3        3
  752.    0         0         0         0        9
  753.    ++++++++++++++++++++++++++++++++++++++++
  754.    <---V1---><---V2---><---V3---><---V4--->
  755.    <--B1--><--B2--><--B3--><--B4--><--B5-->
  756.    <--------------Frame 1----------------->
  757.  
  758.  
  759.  
  760.    In particular, B1 contains the eight most significant bits of V1,
  761.    with the MSB of V1 being the MSB of B1. B2 contains the two least
  762.    significant bits of V1, the more significant of the two in its MSB,
  763.    and the six most significant bits of V2. B1 shall be placed first in
  764.    the RTP packet and B5 last.
  765.  
  766. 4.5.9 G729
  767.  
  768.    G.729 and G.729A are defined in ITU-T Recommendation G.729, "Coding
  769.    of Speech at 8 kbit/s using Conjugate Structure-Algebraic Code
  770.    Excited Linear Predictive (CS-ACELP) Coding" and its Annex A,
  771.    respectively.  These two audio codecs are compatible with each other
  772.    on the wire so there is no need to distinguish further between them.
  773.    The codecs were optimized to represent speech with a high quality;
  774.    G.729A achieves this with very low complexity.
  775.  
  776.    A voice activity detector (VAD) and comfort noise generator (CNG) is
  777.    defined in G.729 Annex B (G.729B). It can be used in conjunction with
  778.    either G.729 or G.729A. A G.729 or G.729A frame contains 10 octets,
  779.    while the G.729B comfort noise frame contains 4 octets.
  780.  
  781.    An RTP packet may consist of zero or more G.729 or G.729A frames,
  782.    followed by zero or one G.729B payload.
  783.  
  784.  
  785.  
  786. Schulzrinne                                                  [Page 14]
  787.  
  788. Internet Draft                  Profile                   March 26, 1997
  789.  
  790.  
  791.    The transmitted parameters of a G.729/G.729A 10-ms frame, consisting
  792.    of 80 bits, are defined in Recommendation G.729, Table 8/G.729.
  793.  
  794.    The mapping of the these parameters is given below. Bits are numbered
  795.    as Internet order, that is, the most significant bit is bit 0.
  796.  
  797.  
  798.     0                     1                 2                   3
  799.     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
  800.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  801.    |L|      L1     |    L2   |    L3   |        P1     |P|    C1   |
  802.    |0|             |         |         |               |0|         |
  803.    | |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|
  804.    | |             |         |         |               | |         |
  805.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  806.  
  807.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  808.    |       C1      |  S1   | GA1 |  GB1  |    P2   |      C2       |
  809.    |               |       |     |       |         |               |
  810.    |5 6 7 8 9 1 1 1|3 2 1 0|2 1 0|3 2 1 0|4 3 2 1 0|0 1 2 3 4 5 6 7|
  811.    |          0 1 2|       |     |       |         |               |
  812.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  813.  
  814.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  815.    |   C2    |  S2   | GA2 |  GB2  |
  816.    |         |       |     |       |
  817.    |8 9 1 1 1|0 1 2 3|0 1 2|0 1 2 3|
  818.    |    0 1 2|       |     |       |
  819.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  820.  
  821.  
  822.  
  823. 4.5.10 GSM
  824.  
  825.    GSM (group speciale mobile) denotes the European GSM 06.10
  826.    provisional standard for full-rate speech transcoding, prI-ETS 300
  827.    036, which is based on RPE/LTP (residual pulse excitation/long term
  828.    prediction) coding at a rate of 13 kb/s [8,9,10]. The standard can be
  829.    obtained from
  830.  
  831.    ETSI (European Telecommunications Standards Institute)
  832.    ETSI Secretariat: B.P.152
  833.    F-06561 Valbonne Cedex
  834.    France
  835.    Phone: +33 92 94 42 00
  836.    Fax: +33 93 65 47 16
  837.  
  838.    Blocks of 160 audio samples are compressed into 33 octets, for an
  839.  
  840.  
  841.  
  842. Schulzrinne                                                  [Page 15]
  843.  
  844. Internet Draft                  Profile                   March 26, 1997
  845.  
  846.  
  847.    effective data rate of 13,200 b/s.
  848.  
  849. 4.5.10.1 General Packaging Issues
  850.  
  851.    The GSM standard specifies the bit stream produced by the codec, but
  852.    does not specify how these bits should be packed for transmission.
  853.    Some software implementations of the GSM codec use a different
  854.    packing than that specified here.
  855.  
  856.    In the GSM encoding used by RTP, the bits are packed beginning from
  857.    the most significant bit. Every 160 sample GSM frame is coded into
  858.    one 33 octet (264 bit) buffer. Every such buffer begins with a 4 bit
  859.    signature (0xD), followed by the MSB encoding of the fields of the
  860.    frame. The first octet thus contains 1101 in the 4 most significant
  861.    bits (4-7) and the 4 most significant bits of F1 (2-5) in the 4 least
  862.    significant bits (0-3). The second octet contains the 2 least bits of
  863.    F1 in bits 6-7, and F2 in bits 0-5, and so on. The order of the
  864.    fields in the frame is as follows:
  865.  
  866. 4.5.10.2 GSM variable names and numbers
  867.  
  868.  
  869.    So if F.i signifies the ith bit of the field F, and bit 0 is the most
  870.    significant bit, and the bits of every octet are numbered from 0 to 7
  871.    from most to least significant, then in the RTP encoding we have:
  872.  
  873.  
  874. 4.5.11 L8
  875.  
  876.    L8 denotes linear audio data, using 8-bits of precision with an
  877.    offset of 128, that is, the most negative signal is encoded as zero.
  878.  
  879. 4.5.12 L16
  880.  
  881.    L16 denotes uncompressed audio data, using 16-bit signed
  882.    representation with 65535 equally divided steps between minimum and
  883.    maximum signal level, ranging from
  884.  
  885.  
  886.    to
  887.  
  888.  
  889.    represented in two's complement notation and network byte order.
  890.  
  891. 4.5.13 LPC
  892.  
  893.    LPC designates an experimental linear predictive encoding contributed
  894.    by Ron Frederick, Xerox PARC, which is based on an implementation
  895.  
  896.  
  897.  
  898. Schulzrinne                                                  [Page 16]
  899.  
  900. Internet Draft                  Profile                   March 26, 1997
  901.  
  902.  
  903.  
  904.         field    field name    bits    field    field name    bits
  905.         __________________________________________________________
  906.         1        LARc[0]       6       39       xmc[22]       3
  907.         2        LARc[1]       6       40       xmc[23]       3
  908.         3        LARc[2]       5       41       xmc[24]       3
  909.         4        LARc[3]       5       42       xmc[25]       3
  910.         5        LARc[4]       4       43       Nc[2]         7
  911.         6        LARc[5]       4       44       bc[2]         2
  912.         7        LARc[6]       3       45       Mc[2]         2
  913.         8        LARc[7]       3       46       xmaxc[2]      6
  914.         9        Nc[0]         7       47       xmc[26]       3
  915.         10       bc[0]         2       48       xmc[27]       3
  916.         11       Mc[0]         2       49       xmc[28]       3
  917.         12       xmaxc[0]      6       50       xmc[29]       3
  918.         13       xmc[0]        3       51       xmc[30]       3
  919.         14       xmc[1]        3       52       xmc[31]       3
  920.         15       xmc[2]        3       53       xmc[32]       3
  921.         16       xmc[3]        3       54       xmc[33]       3
  922.         17       xmc[4]        3       55       xmc[34]       3
  923.         18       xmc[5]        3       56       xmc[35]       3
  924.         19       xmc[6]        3       57       xmc[36]       3
  925.         20       xmc[7]        3       58       xmc[37]       3
  926.         21       xmc[8]        3       59       xmc[38]       3
  927.         22       xmc[9]        3       60       Nc[3]         7
  928.         23       xmc[10]       3       61       bc[3]         2
  929.         24       xmc[11]       3       62       Mc[3]         2
  930.         25       xmc[12]       3       63       xmaxc[3]      6
  931.         26       Nc[1]         7       64       xmc[39]       3
  932.         27       bc[1]         2       65       xmc[40]       3
  933.         28       Mc[1]         2       66       xmc[41]       3
  934.         29       xmaxc[1]      6       67       xmc[42]       3
  935.         30       xmc[13]       3       68       xmc[43]       3
  936.         31       xmc[14]       3       69       xmc[44]       3
  937.         32       xmc[15]       3       70       xmc[45]       3
  938.         33       xmc[16]       3       71       xmc[46]       3
  939.         34       xmc[17]       3       72       xmc[47]       3
  940.         35       xmc[18]       3       73       xmc[48]       3
  941.         36       xmc[19]       3       74       xmc[49]       3
  942.         37       xmc[20]       3       75       xmc[50]       3
  943.         38       xmc[21]       3       76       xmc[51]       3
  944.  
  945.  
  946.    Table 3: Ordering of GSM variables
  947.  
  948.    written by Ron Zuckerman, Motorola, posted to the Usenet group
  949.    comp.dsp on June 26, 1992. The codec generates 14 octets for every
  950.    frame. The framesize is set to 20 ms, resulting in a bit rate of
  951.    5,600 b/s.
  952.  
  953.  
  954. Schulzrinne                                                  [Page 17]
  955.  
  956. Internet Draft                  Profile                   March 26, 1997
  957.  
  958.  
  959.  
  960.    Octet     Bit 0      Bit 1      Bit 2      Bit 3      Bit 4      Bit 5      Bit 6      Bit 7
  961.    _____________________________________________________________________________________________
  962.        0       1          1          0          1       LARc0.0    LARc0.1    LARc0.2    LARc0.3
  963.        1    LARc0.4    LARc0.5    LARc1.0    LARc1.1    LARc1.2    LARc1.3    LARc1.4    LARc1.5
  964.        2    LARc2.0    LARc2.1    LARc2.2    LARc2.3    LARc2.4    LARc3.0    LARc3.1    LARc3.2
  965.        3    LARc3.3    LARc3.4    LARc4.0    LARc4.1    LARc4.2    LARc4.3    LARc5.0    LARc5.1
  966.        4    LARc5.2    LARc5.3    LARc6.0    LARc6.1    LARc6.2    LARc7.0    LARc7.1    LARc7.2
  967.        5     Nc0.0      Nc0.1      Nc0.2      Nc0.3      Nc0.4      Nc0.5      Nc0.6     bc0.0
  968.        6     bc0.1      Mc0.0      Mc0.1     xmaxc00    xmaxc01    xmaxc02    xmaxc03    xmaxc04
  969.        7    xmaxc05    xmc0.0     xmc0.1     xmc0.2     xmc1.0     xmc1.1     xmc1.2     xmc2.0
  970.        8    xmc2.1     xmc2.2     xmc3.0     xmc3.1     xmc3.2     xmc4.0     xmc4.1     xmc4.2
  971.        9    xmc5.0     xmc5.1     xmc5.2     xmc6.0     xmc6.1     xmc6.2     xmc7.0     xmc7.1
  972.       10    xmc7.2     xmc8.0     xmc8.1     xmc8.2     xmc9.0     xmc9.1     xmc9.2     xmc10.0
  973.       11    xmc10.1    xmc10.2    xmc11.0    xmc11.1    xmc11.2    xmc12.0    xmc12.1    xcm12.2
  974.       12     Nc1.0      Nc1.1      Nc1.2      Nc1.3      Nc1.4      Nc1.5      Nc1.6      bc1.0
  975.       13     bc1.1      Mc1.0      Mc1.1     xmaxc10    xmaxc11    xmaxc12    xmaxc13    xmaxc14
  976.       14    xmax15     xmc13.0    xmc13.1    xmc13.2    xmc14.0    xmc14.1    xmc14.2    xmc15.0
  977.       15    xmc15.1    xmc15.2    xmc16.0    xmc16.1    xmc16.2    xmc17.0    xmc17.1    xmc17.2
  978.       16    xmc18.0    xmc18.1    xmc18.2    xmc19.0    xmc19.1    xmc19.2    xmc20.0    xmc20.1
  979.       17    xmc20.2    xmc21.0    xmc21.1    xmc21.2    xmc22.0    xmc22.1    xmc22.2    xmc23.0
  980.       18    xmc23.1    xmc23.2    xmc24.0    xmc24.1    xmc24.2    xmc25.0    xmc25.1    xmc25.2
  981.       19     Nc2.0      Nc2.1      Nc2.2      Nc2.3      Nc2.4      Nc2.5      Nc2.6      bc2.0
  982.       20     bc2.1      Mc2.0      Mc2.1     xmaxc20    xmaxc21    xmaxc22    xmaxc23    xmaxc24
  983.       21    xmaxc25    xmc26.0    xmc26.1    xmc26.2    xmc27.0    xmc27.1    xmc27.2    xmc28.0
  984.       22    xmc28.1    xmc28.2    xmc29.0    xmc29.1    xmc29.2    xmc30.0    xmc30.1    xmc30.2
  985.       23    xmc31.0    xmc31.1    xmc31.2    xmc32.0    xmc32.1    xmc32.2    xmc33.0    xmc33.1
  986.       24    xmc33.2    xmc34.0    xmc34.1    xmc34.2    xmc35.0    xmc35.1    xmc35.2    xmc36.0
  987.       25    Xmc36.1    xmc36.2    xmc37.0    xmc37.1    xmc37.2    xmc38.0    xmc38.1    xmc38.2
  988.       26     Nc3.0      Nc3.1      Nc3.2      Nc3.3      Nc3.4      Nc3.5      Nc3.6      bc3.0
  989.       27     bc3.1      Mc3.0      Mc3.1     xmaxc30    xmaxc31    xmaxc32    xmaxc33    xmaxc34
  990.       28    xmaxc35    xmc39.0    xmc39.1    xmc39.2    xmc40.0    xmc40.1    xmc40.2    xmc41.0
  991.       29    xmc41.1    xmc41.2    xmc42.0    xmc42.1    xmc42.2    xmc43.0    xmc43.1    xmc43.2
  992.       30    xmc44.0    xmc44.1    xmc44.2    xmc45.0    xmc45.1    xmc45.2    xmc46.0    xmc46.1
  993.       31    xmc46.2    xmc47.0    xmc47.1    xmc47.2    xmc48.0    xmc48.1    xmc48.2    xmc49.0
  994.       32    xmc49.1    xmc49.2    xmc50.0    xmc50.1    xmc50.2    xmc51.0    xmc51.1    xmc51.2
  995.  
  996.  
  997. 4.5.14 MPA
  998.  
  999.    MPA denotes MPEG-I or MPEG-II audio encapsulated as elementary
  1000.    streams.  The encoding is defined in ISO standards ISO/IEC 11172-3
  1001.    and 13818-3.  The encapsulation is specified in RFC 2038 [11].
  1002.  
  1003.    Sampling rate and channel count are contained in the payload. MPEG-I
  1004.    audio supports sampling rates of 32000, 44100, and 48000 Hz (ISO/IEC
  1005.    11172-3, section 1.1; "Scope"). MPEG-II additionally supports ISO/IEC
  1006.    11172-3 Audio...").
  1007.  
  1008.  
  1009.  
  1010. Schulzrinne                                                  [Page 18]
  1011.  
  1012. Internet Draft                  Profile                   March 26, 1997
  1013.  
  1014.  
  1015. 4.5.15 PCMA
  1016.  
  1017.    PCMA is specified in CCITT/ITU-T recommendation G.711. Audio data is
  1018.    encoded as eight bits per sample, after logarithmic scaling. Code to
  1019.    convert between linear and A-law companded data is available in [7].
  1020.    A detailed description is given by Jayant and Noll [12].
  1021.  
  1022. 4.5.16 PCMU
  1023.  
  1024.    PCMU is specified in CCITT/ITU-T recommendation G.711. Audio data is
  1025.    encoded as eight bits per sample, after logarithmic scaling. Code to
  1026.    convert between linear and mu-law companded data is available in [7].
  1027.    PCMU is the encoding used for the Internet media type audio/basic. A
  1028.    detailed description is given by Jayant and Noll [12].
  1029.  
  1030. 4.5.17 RED
  1031.  
  1032.    The redundant audio payload format "RED" is specified by RFC XXX. It
  1033.    defines a means by which multiple redundant copies of an audio packet
  1034.    may be transmitted in a single RTP stream. Each packet in such a
  1035.    stream contains, in addition to the audio data for that packetization
  1036.    interval, a (more heavily compressed) copy of the data from the
  1037.    previous packetization interval. This allows an approximation of the
  1038.    data from lost packets to be recovered upon decoding of the following
  1039.    packet, giving much improved sound quality when compared with silence
  1040.    substitution for lost packets.
  1041.  
  1042. 4.5.18 VDVI
  1043.  
  1044.    VDVI is a variable-rate version of DVI4, yielding speech bit rates of
  1045.    between 10 and 25 kb/s. It is specified for single-channel operation
  1046.    only.  Samples are packed into octets starting at the most-
  1047.    significant bit.
  1048.  
  1049.    It uses the following encoding:
  1050.  
  1051.  
  1052.                      DVI4 codeword    VDVI bit pattern
  1053.                      _________________________________
  1054.                                  0    00
  1055.                                  1    010
  1056.                                  2    1100
  1057.                                  3    11100
  1058.                                  4    111100
  1059.                                  5    1111100
  1060.                                  6    11111100
  1061.                                  7    11111110
  1062.                                  8    10
  1063.                                  9    011
  1064.  
  1065.  
  1066. Schulzrinne                                                  [Page 19]
  1067.  
  1068. Internet Draft                  Profile                   March 26, 1997
  1069.  
  1070.  
  1071.                                 10    1101
  1072.                                 11    11101
  1073.                                 12    111101
  1074.                                 13    1111101
  1075.                                 14    11111101
  1076.                                 15    11111111
  1077.  
  1078.  
  1079. 5 Video
  1080.  
  1081.    The following video encodings are currently defined, with their
  1082.    abbreviated names used for identification:
  1083.  
  1084. 5.1 CelB
  1085.  
  1086.    The CELL-B encoding is a proprietary encoding proposed by Sun
  1087.    Microsystems. The byte stream format is described in RFC 2029 [13].
  1088.  
  1089. 5.2 JPEG
  1090.  
  1091.    The encoding is specified in ISO Standards 10918-1 and 10918-2. The
  1092.    RTP payload format is as specified in RFC 2035 [14].
  1093.  
  1094. 5.3 H261
  1095.  
  1096.    The encoding is specified in CCITT/ITU-T standard H.261. The
  1097.    packetization and RTP-specific properties are described in RFC 2032
  1098.    [15].
  1099.  
  1100. 5.4 MPV
  1101.  
  1102.    MPV designates the use MPEG-I and MPEG-II video encoding elementary
  1103.    streams as specified in ISO Standards ISO/IEC 11172 and 13818-2,
  1104.    respectively. The RTP payload format is as specified in RFC 2038
  1105.    [11], Section 3.
  1106.  
  1107. 5.5 MP2T
  1108.  
  1109.    MP2T designates the use of MPEG-II transport streams, for either
  1110.    audio or video. The encapsulation is described in RFC 2038 [11],
  1111.    Section 2. See the description of the MPA audio encoding for contact
  1112.    information.
  1113.  
  1114. 5.6 nv
  1115.  
  1116.    The encoding is implemented in the program 'nv', version 4, developed
  1117.    at Xerox PARC by Ron Frederick. Further information is available from
  1118.    the author:
  1119.  
  1120.  
  1121.  
  1122. Schulzrinne                                                  [Page 20]
  1123.  
  1124. Internet Draft                  Profile                   March 26, 1997
  1125.  
  1126.  
  1127.    Ron Frederick
  1128.    Xerox Palo Alto Research Center
  1129.    3333 Coyote Hill Road
  1130.    Palo Alto, CA 94304
  1131.    United States
  1132.    electronic mail: frederic@parc.xerox.com
  1133.  
  1134. 6 Payload Type Definitions
  1135.  
  1136.    Table 4 defines this profile's static payload type values for the PT
  1137.    field of the RTP data header. A new RTP payload format specification
  1138.    may be registered with the IANA by name, and may also be assigned a
  1139.    static payload type value from the range marked in Section 3.
  1140.  
  1141.    In addition, payload type values in the range
  1142.  
  1143.  
  1144.    may be defined dynamically through a conference control protocol,
  1145.    which is beyond the scope of this document. For example, a session
  1146.    directory could specify that for a given session, payload type 96
  1147.    indicates PCMU encoding, 8,000 Hz sampling rate, 2 channels. The
  1148.    payload type range marked 'reserved' has been set aside so that RTCP
  1149.    and RTP packets can be reliably distinguished (see Section "Summary
  1150.    of Protocol Constants" of the RTP protocol specification).
  1151.  
  1152.    An RTP source emits a single RTP payload type at any given instant.
  1153.    The interleaving or multiplexing of several RTP media types within a
  1154.    single RTP session is not allowed, but multiple RTP sessions may be
  1155.    used in parallel to send multiple media types. An RTP source may
  1156.    change payload types during a session.
  1157.  
  1158.    The payload types currently defined in this profile are assigned to
  1159.    exactly one of three categories or media types : audio only, video
  1160.    only and those combining audio and video. A single RTP session
  1161.    consists of payload types of one and only media type.
  1162.  
  1163.    Session participants agree through mechanisms beyond the scope of
  1164.    this specification on the set of payload types allowed in a given
  1165.    session.  This set may, for example, be defined by the capabilities
  1166.    of the applications used, negotiated by a conference control protocol
  1167.    or established by agreement between the human participants. The media
  1168.    types in Table 4 are marked as "A" for audio, "V" for video and "AV"
  1169.    for combined audio/video streams.
  1170.  
  1171.    Audio applications operating under this profile should, at minimum,
  1172.    be able to send and receive payload types 0 (PCMU) and 5 (DVI4). This
  1173.    allows interoperability without format negotiation and successful
  1174.    negotation with a conference control protocol.
  1175.  
  1176.  
  1177.  
  1178. Schulzrinne                                                  [Page 21]
  1179.  
  1180. Internet Draft                  Profile                   March 26, 1997
  1181.  
  1182.  
  1183.    All current video encodings use a timestamp frequency of 90,000 Hz,
  1184.    the same as the MPEG presentation time stamp frequency. This
  1185.    frequency yields exact integer timestamp increments for the typical
  1186.    24 (HDTV), 25 (PAL), and 29.97 (NTSC) and 30 Hz (HDTV) frame rates
  1187.    and 50, 59.94 and 60 Hz field rates. While 90 kHz is the recommended
  1188.    rate for future video encodings used within this profile, other rates
  1189.    are possible.  However, it is not sufficient to use the video frame
  1190.    rate (typically between 15 and 30 Hz) because that does not provide
  1191.    adequate resolution for typical synchronization requirements when
  1192.    calculating the RTP timestamp corresponding to the NTP timestamp in
  1193.    an RTCP SR packet. The timestamp resolution must also be sufficient
  1194.    for the jitter estimate contained in the receiver reports.
  1195.  
  1196.    The standard video encodings and their payload types are listed in
  1197.    Table 4.
  1198.  
  1199.  
  1200. 7 Port Assignment
  1201.  
  1202.    As specified in the RTP protocol definition, RTP data is to be
  1203.    carried on an even UDP port number and the corresponding RTCP packets
  1204.    are to be carried on the next higher (odd) port number.
  1205.  
  1206.    Applications operating under this profile may use any such UDP port
  1207.    pair. For example, the port pair may be allocated randomly by a
  1208.    session management program. A single fixed port number pair cannot be
  1209.    required because multiple applications using this profile are likely
  1210.    to run on the same host, and there are some operating systems that do
  1211.    not allow multiple processes to use the same UDP port with different
  1212.    multicast addresses.
  1213.  
  1214.    However, port numbers 5004 and 5005 have been registered for use with
  1215.    this profile for those applications that choose to use them as the
  1216.    default pair. Applications that operate under multiple profiles may
  1217.    use this port pair as an indication to select this profile if they
  1218.    are not subject to the constraint of the previous paragraph.
  1219.    Applications need not have a default and may require that the port
  1220.    pair be explicitly specified. The particular port numbers were chosen
  1221.    to lie in the range above 5000 to accomodate port number allocation
  1222.    practice within the Unix operating system, where port numbers below
  1223.    1024 can only be used by privileged processes and port numbers
  1224.    between 1024 and 5000 are automatically assigned by the operating
  1225.    system.
  1226.  
  1227. 8 Bibliography
  1228.  
  1229.    [1] Apple Computer, "Audio interchange file format AIFF-C," Aug.
  1230.    1991.  (also ftp://ftp.sgi.com/sgi/aiff-c.9.26.91.ps.Z).
  1231.  
  1232.  
  1233.  
  1234. Schulzrinne                                                  [Page 22]
  1235.  
  1236. Internet Draft                  Profile                   March 26, 1997
  1237.  
  1238.  
  1239.  
  1240.       PT         encoding      media type    clock rate    channels
  1241.                  name                        (Hz)          (audio)
  1242.       _______________________________________________________________
  1243.       0          PCMU          A             8000          1
  1244.       1          1016          A             8000          1
  1245.       2          G721          A             8000          1
  1246.       3          GSM           A             8000          1
  1247.       4          G.723.1       A             8000          1
  1248.       5          DVI4          A             8000          1
  1249.       6          DVI4          A             16000         1
  1250.       7          LPC           A             8000          1
  1251.       8          PCMA          A             8000          1
  1252.       9          G722          A             16000         1
  1253.       10         L16           A             44100         2
  1254.       11         L16           A             44100         1
  1255.       12         G723          A             8000          1
  1256.       13         CN            A
  1257.       14         MPA           A             90000         (see text)
  1258.       15         G728          A             8000          1
  1259.       16         DVI4          A             11025         1
  1260.       17         DVI4          A             22050         1
  1261.       18         G729          A             8000          1
  1262.       19--22     unassigned    A
  1263.       24         unassigned    V
  1264.       25         CelB          V             90000
  1265.       26         JPEG          V             90000
  1266.       27         unassigned    V
  1267.       28         nv            V             90000
  1268.       29         unassigned    V
  1269.       30         unassigned    V
  1270.       31         H261          V             90000
  1271.       32         MPV           V             90000
  1272.       33         MP2T          AV            90000
  1273.       34         H263          V             90000
  1274.       35--71     unassigned    ?
  1275.       72--76     reserved      N/A           N/A           N/A
  1276.       77         RED           A             N/A           N/A
  1277.       78--95     unassigned    ?
  1278.       96--127    dynamic       ?
  1279.  
  1280.  
  1281.    Table 4: Payload types (PT) for standard audio and video encodings
  1282.  
  1283.    [2] Office of Technology and Standards, "Telecommunications: Analog
  1284.    to digital conversion of radio voice by 4,800 bit/second code excited
  1285.    linear prediction (celp)," Federal Standard FS-1016, GSA, Room 6654;
  1286.    7th & D Street SW; Washington, DC 20407 (+1-202-708-9205), 1990.
  1287.  
  1288.  
  1289.  
  1290. Schulzrinne                                                  [Page 23]
  1291.  
  1292. Internet Draft                  Profile                   March 26, 1997
  1293.  
  1294.  
  1295.    [3] J. P. Campbell, Jr., T. E. Tremain, and V. C. Welch, "The
  1296.    proposed Federal Standard 1016 4800 bps voice coder: CELP," Speech
  1297.    Technology , vol. 5, pp. 58--64, April/May 1990.
  1298.  
  1299.    [4] J. P. Campbell, Jr., T. E. Tremain, and V. C. Welch, "The federal
  1300.    standard 1016 4800 bps CELP voice coder," Digital Signal Processing ,
  1301.    vol. 1, no. 3, pp. 145--155, 1991.
  1302.  
  1303.    [5] J. P. Campbell, Jr., T. E. Tremain, and V. C. Welch, "The dod 4.8
  1304.    kbps standard (proposed federal standard 1016)," in Advances in
  1305.    Speech Coding (B. Atal, V. Cuperman, and A. Gersho, eds.), ch. 12,
  1306.    pp. 121--133, Kluwer Academic Publishers, 1991.
  1307.  
  1308.    [6] J. Bellamy, Digital Telephony New York: John Wiley & Sons, 1991.
  1309.  
  1310.    [7] IMA Digital Audio Focus and Technical Working Groups,
  1311.    "Recommended practices for enhancing digital audio compatibility in
  1312.    multimedia systems (version 3.00)," tech. rep., Interactive
  1313.    Multimedia Association, Annapolis, Maryland, Oct. 1992.
  1314.  
  1315.    [8] M. Mouly and M.-B. Pautet, The GSM system for mobile
  1316.    communications Lassay-les-Chateaux, France: Europe Media Duplication,
  1317.    1993.
  1318.  
  1319.    [9] J. Degener, "Digital speech compression," Dr. Dobb's Journal ,
  1320.    Dec.  1994.
  1321.  
  1322.    [10] S. M. Redl, M. K. Weber, and M. W. Oliphant, An Introduction to
  1323.    GSM Boston: Artech House, 1995.
  1324.  
  1325.    [11] D. Hoffman, G. Fernando, and V. Goyal, "RTP payload format for
  1326.    MPEG1/MPEG2 video," Request for Comments (Proposed Standard) RFC
  1327.    2038, Internet Engineering Task Force, Oct. 1996.
  1328.  
  1329.    [12] N. S. Jayant and P. Noll, Digital Coding of Waveforms--
  1330.    Principles and Applications to Speech and Video Englewood Cliffs, New
  1331.    Jersey: Prentice-Hall, 1984.
  1332.  
  1333.    [13] M. Speer and D. Hoffman, "RTP payload format of sun's CellB
  1334.    video encoding," Request for Comments (Proposed Standard) RFC 2029,
  1335.    Internet Engineering Task Force, Oct. 1996.
  1336.  
  1337.    [14] L. Berc, W. Fenner, R. Frederick, and S. McCanne, "RTP payload
  1338.    format for JPEG-compressed video," Request for Comments (Proposed
  1339.    Standard) RFC 2035, Internet Engineering Task Force, Oct. 1996.
  1340.  
  1341.    [15] T. Turletti and C. Huitema, "RTP payload format for H.261 video
  1342.    streams," Request for Comments (Proposed Standard) RFC 2032, Internet
  1343.  
  1344.  
  1345.  
  1346. Schulzrinne                                                  [Page 24]
  1347.  
  1348. Internet Draft                  Profile                   March 26, 1997
  1349.  
  1350.  
  1351.    Engineering Task Force, Oct. 1996.
  1352.  
  1353. 9 Acknowledgements
  1354.  
  1355.    The comments and careful review of Steve Casner are gratefully
  1356.    acknowledged. The GSM description was adopted from the IMTC Voice
  1357.    over IP Forum Service Interoperability Implementation Agreement
  1358.    (January 1997). Fred Burg helped with the G.729 description.
  1359.  
  1360. 10 Address of Author
  1361.  
  1362.    Henning Schulzrinne
  1363.    Dept. of Computer Science
  1364.    Columbia University
  1365.    1214 Amsterdam Avenue
  1366.    New York, NY 10027
  1367.    USA
  1368.    electronic mail: schulzrinne@cs.columbia.edu
  1369.  
  1370.  
  1371.    Current Locations of Related Resources
  1372.  
  1373.  
  1374.    UTF-8
  1375.  
  1376.    Information on the UCS Transformation Format 8 (UTF-8) is available
  1377.    at
  1378.  
  1379.             http://www.stonehand.com/unicode/standard/utf8.html
  1380.  
  1381.  
  1382.    1016
  1383.  
  1384.    An implementation is available at
  1385.  
  1386.               ftp://ftp.super.org/pub/speech/celp_3.2a.tar.Z
  1387.  
  1388.  
  1389.    DVI4
  1390.  
  1391.    An implementation is available from Jack Jansen at
  1392.  
  1393.                 ftp://ftp.cwi.nl/local/pub/audio/adpcm.shar
  1394.  
  1395.  
  1396.    G721
  1397.  
  1398.    An implementation is available at
  1399.  
  1400.  
  1401.  
  1402. Schulzrinne                                                  [Page 25]
  1403.  
  1404. Internet Draft                  Profile                   March 26, 1997
  1405.  
  1406.  
  1407.        ftp://gaia.cs.umass.edu/pub/hgschulz/ccitt/ccitt_tools.tar.Z
  1408.  
  1409.  
  1410.    G723
  1411.  
  1412.    Reference implementations for G.723.1 are available as part of the
  1413.    CCITT/ITU-T Software Tool Library (STL) from the ITU General
  1414.    Secretariat, Sales Service, Place du Nations, CH-1211 Geneve 20,
  1415.    Switzerland. The library is covered by a license.
  1416.  
  1417.    The specification also contains C source code. Source code files are
  1418.    available at
  1419.  
  1420.    http://www4.itu.ch/itudoc/itu-t/rec/g/g700-799/g723-1/723disk1_32415.html
  1421.  
  1422.    and test vectors at
  1423.    http://www4.itu.ch/itudoc/itu-t/rec/g/g700-799/g723-1/723disk2_32416.html
  1424.  
  1425.  
  1426.    G729
  1427.  
  1428.    Reference implementations for G.729, G.729A and G.729B are available
  1429.    as part of the ITU-T Software Tool Library from the ITU General
  1430.    Secretariat, Sales Service, Place de Nations, CH-1211 Geneve 20,
  1431.    Switzerland. The library is covered by a license.
  1432.  
  1433.  
  1434.    GSM
  1435.  
  1436.    A reference implementation was written by Carsten Borman and Jutta
  1437.    Degener (TU Berlin, Germany). It is available at
  1438.  
  1439.             ftp://ftp.cs.tu-berlin.de/pub/local/kbs/tubmik/gsm/
  1440.  
  1441.  
  1442.    LPC
  1443.  
  1444.    An implementation is available at
  1445.  
  1446.             ftp://parcftp.xerox.com/pub/net-research/lpc.tar.Z
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458. Schulzrinne                                                  [Page 26]
  1459.  
  1460.