Network Working Group                                         R. Gellens
Request for Comments: 3625                                  H. Garudadri
Updates: 3555                                                   Qualcomm
Category: Informational                                   September 2003
        
Network Working Group                                         R. Gellens
Request for Comments: 3625                                  H. Garudadri
Updates: 3555                                                   Qualcomm
Category: Informational                                   September 2003
        

The QCP File Format and Media Types for Speech Data

语音数据的QCP文件格式和媒体类型

Status of this Memo

本备忘录的状况

This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.

本备忘录为互联网社区提供信息。它没有规定任何类型的互联网标准。本备忘录的分发不受限制。

Copyright Notice

版权公告

Copyright (C) The Internet Society (2003). All Rights Reserved.

版权所有(C)互联网协会(2003年)。版权所有。

Abstract

摘要

RFC 2658 specifies the streaming format for 3GPP2 13K vocoder (High Rate Speech Service Option 17 for Wideband Spread Spectrum Communications Systems, also known as QCELP 13K vocoder) data, but does not specify a storage format. Many implementations have been using the "QCP" file format (named for its file extension) for exchanging QCELP 13K data as well as Enhanced Variable Rate Coder (EVRC) and Selectable Mode Vocoders (SMV) data. (For example, Eudora(r), QuickTime(r), and cmda2000(r) handsets).

RFC 2658指定3GPP2 13K声码器(宽带扩频通信系统的高速语音服务选项17,也称为QCELP 13K声码器)数据的流格式,但未指定存储格式。许多实现都使用“QCP”文件格式(以其文件扩展名命名)来交换QCELP 13K数据以及增强型变速率编码器(EVRC)和可选模式声码器(SMV)数据。(例如,Eudora(r)、QuickTime(r)和cmda2000(r)手机)。

This document specifies the QCP file format and updates the audio/qcelp media registration to specify this format for storage, and registers the audio/evrc-qcp and audio/smv-qcp media types for EVRC and SMV (respectively) data stored in this format.

本文件指定QCP文件格式,并更新音频/qcelp介质注册,以指定该存储格式,并为以该格式存储的evrc和smv(分别)数据注册音频/evrc QCP和音频/smv QCP介质类型。

Table of Contents

目录

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
   2.  Conventions Used in this Document. . . . . . . . . . . . . . .  2
   3.  QCP File Format. . . . . . . . . . . . . . . . . . . . . . . .  2
   4.  IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 10
       4.1.  Update of Media Type Audio/qcelp . . . . . . . . . . . . 10
       4.2.  Update of Media Type Audio/vnd.qcelp . . . . . . . . . . 10
       4.3.  Registration of Audio/EVRC-QCP . . . . . . . . . . . . . 11
       4.4.  Registration of Audio/SMV-QCP. . . . . . . . . . . . . . 12
   5.  Security Considerations. . . . . . . . . . . . . . . . . . . . 13
   6.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 13
   7.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 13
       7.1.  Normative References . . . . . . . . . . . . . . . . . . 13
       7.2.  Informative References . . . . . . . . . . . . . . . . . 13
   8.  Intellectual Property Statement. . . . . . . . . . . . . . . . 14
   9.  Editors' Addresses . . . . . . . . . . . . . . . . . . . . . . 14
   10. Full Copyright Statement . . . . . . . . . . . . . . . . . . . 15
        
   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
   2.  Conventions Used in this Document. . . . . . . . . . . . . . .  2
   3.  QCP File Format. . . . . . . . . . . . . . . . . . . . . . . .  2
   4.  IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 10
       4.1.  Update of Media Type Audio/qcelp . . . . . . . . . . . . 10
       4.2.  Update of Media Type Audio/vnd.qcelp . . . . . . . . . . 10
       4.3.  Registration of Audio/EVRC-QCP . . . . . . . . . . . . . 11
       4.4.  Registration of Audio/SMV-QCP. . . . . . . . . . . . . . 12
   5.  Security Considerations. . . . . . . . . . . . . . . . . . . . 13
   6.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 13
   7.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 13
       7.1.  Normative References . . . . . . . . . . . . . . . . . . 13
       7.2.  Informative References . . . . . . . . . . . . . . . . . 13
   8.  Intellectual Property Statement. . . . . . . . . . . . . . . . 14
   9.  Editors' Addresses . . . . . . . . . . . . . . . . . . . . . . 14
   10. Full Copyright Statement . . . . . . . . . . . . . . . . . . . 15
        
1. Introduction
1. 介绍

This document specifies the QCP format for storage of [QCELP] 13K, [EVRC], and [SMV] vocoder frames in files which may reside on network elements (e.g., media servers, Multimedia Messaging System (MMS) centers, etc.) and third-generation cellular (3G) handsets, or be transmitted via email or other mechanisms.

本文件规定了用于将[QCELP]13K、[EVRC]和[SMV]声码器帧存储在文件中的QCP格式,这些文件可能位于网络元件(如媒体服务器、彩信系统(MMS)中心等)和第三代蜂窝(3G)手机上,或通过电子邮件或其他机制传输。

Vocoder frames read from a QCP file may be streamed using protocols and formats outside the scope of this document, delivered to an [EVRC], [SMV], or [QCELP] 13K decoder, or otherwise processed.

从QCP文件读取的声码器帧可以使用本文件范围之外的协议和格式进行流式传输,传送到[EVRC]、[SMV]或[QCELP]13K解码器,或以其他方式进行处理。

The QCP format supports [QCELP] 13K as well as [EVRC] and [SMV] data. Note that this format is different from the EVRC and SMV storage format specified in [EVRC-SMV].

QCP格式支持[QCELP]13K以及[EVRC]和[SMV]数据。请注意,此格式不同于[EVRC-SMV]中指定的EVRC和SMV存储格式。

2. Conventions Used in this Document
2. 本文件中使用的公约

The key words "REQUIRED", "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" in this document are to be interpreted as described in BCP 14, RFC 2119 [KEYWORDS].

本文件中的关键词“必需”、“必须”、“不得”、“应该”、“不应该”和“可能”应按照BCP 14、RFC 2119[关键词]中的描述进行解释。

3. QCP File Format
3. QCP文件格式

The following describes the QCP file format using [ABNF].

以下使用[ABNF]描述QCP文件格式。

A qcp file contains data frames generated by the [QCELP], [EVRC], or [SMV] vocoders.

qcp文件包含由[QCELP]、[EVRC]或[SMV]声码器生成的数据帧。

qcp-file = riff-qlcm fmt vrat [labl] [offs] data [cnfg] [text]

qcp文件=riff qlcm fmt vrat[LAL][OFF]数据[cnfg][text]

   riff-qlcm       = RIFF riff-size QLCM
        
   riff-qlcm       = RIFF riff-size QLCM
        
   fmt             = FMT chunk-size major minor codec-info
                     ; major and minor are set to the version of
                     ; the QCP file format used to generate the
                     ; file - currently, the following versions
                     ; are defined:
                     ;
                     ; major = 2, minor = 0
                     ;    used for SMV.
                     ; major = 1, minor = 0
                     ;    used for QCELP-13K and EVRC
        
   fmt             = FMT chunk-size major minor codec-info
                     ; major and minor are set to the version of
                     ; the QCP file format used to generate the
                     ; file - currently, the following versions
                     ; are defined:
                     ;
                     ; major = 2, minor = 0
                     ;    used for SMV.
                     ; major = 1, minor = 0
                     ;    used for QCELP-13K and EVRC
        

vrat = VRAT chunk-size var-rate-flag size-in-packets

vrat=vrat数据块大小var速率标志大小(以数据包为单位)

   labl            = LABL chunk-size label
        
   labl            = LABL chunk-size label
        

offs = OFFS chunk-size step-size num-offsets *offset ; number of repetitions of offset must equal ; num-offsets

offs=offs块大小步长num offset*offset;偏移的重复次数必须相等;数值偏移量

   data            = DATA chunk-size *packet [pad]
                     ; repetitions of packet contain the actual
                     ; packet data -- there should be as many
                     ; packets as indicated by the size-in-packets
                     ; element found elsewhere in this file format
        
   data            = DATA chunk-size *packet [pad]
                     ; repetitions of packet contain the actual
                     ; packet data -- there should be as many
                     ; packets as indicated by the size-in-packets
                     ; element found elsewhere in this file format
        
   cnfg            = CNFG chunk-size config
        
   cnfg            = CNFG chunk-size config
        

text = TEXT chunk-size string [pad] ; string contains any information defined ; by the application

text=文本块大小字符串[pad];字符串包含定义的任何信息;根据申请

   riff-size       = UINT32
                     ; riff-size should equal total size of file
                     ; in bytes, excluding the size of RIFF and
                     ; riff-size
        
   riff-size       = UINT32
                     ; riff-size should equal total size of file
                     ; in bytes, excluding the size of RIFF and
                     ; riff-size
        
   chunk-size      = UINT32
                     ; chunk-size should equal the total size of
                     ; the chunk described by the rule containing
                     ; chunk-size, excluding the size of
                     ; chunk-size itself and any elements that
                     ; come before it in the rule, as well as
                     ; the pad element, if present
        
   chunk-size      = UINT32
                     ; chunk-size should equal the total size of
                     ; the chunk described by the rule containing
                     ; chunk-size, excluding the size of
                     ; chunk-size itself and any elements that
                     ; come before it in the rule, as well as
                     ; the pad element, if present
        
   major           = OCTET
                     ; major version number of QCP format --
                     ; currently set as "2" -- however, "1" should
                     ; be used instead for QCELP-13K and EVRC, to
                     ; maintain compatibility with older software
                     ; platforms
        
   major           = OCTET
                     ; major version number of QCP format --
                     ; currently set as "2" -- however, "1" should
                     ; be used instead for QCELP-13K and EVRC, to
                     ; maintain compatibility with older software
                     ; platforms
        

minor = OCTET ; minor version number: currently set to "0"

小调=八位组;次要版本号:当前设置为“0”

   codec-info      = codec-guid codec-version codec-name
                             average-bps packet-size
                             block-size sampling-rate
                             sample-size variable-rate 5*UINT32
                     ; this identifies the codec used to encode
                     ; the speech in this file, and any parameters
                     ; needed in order to decode the speech
        
   codec-info      = codec-guid codec-version codec-name
                             average-bps packet-size
                             block-size sampling-rate
                             sample-size variable-rate 5*UINT32
                     ; this identifies the codec used to encode
                     ; the speech in this file, and any parameters
                     ; needed in order to decode the speech
        
                     ; the five UINT32 elements are reserved for
                     ; use in future versions of this format,
                     ; should be set to zero for now, and readers
                     ; should allow non-zero values when reading
                     ; files in this format
        
                     ; the five UINT32 elements are reserved for
                     ; use in future versions of this format,
                     ; should be set to zero for now, and readers
                     ; should allow non-zero values when reading
                     ; files in this format
        
   var-rate-flag   = UINT32
                     ; if zero, sizes of packets in data chunk are
                     ; fixed at the value indicated by the
                     ; packet-size field, found elsewhere in this
                     ; file format
        
   var-rate-flag   = UINT32
                     ; if zero, sizes of packets in data chunk are
                     ; fixed at the value indicated by the
                     ; packet-size field, found elsewhere in this
                     ; file format
        
                     ; if var-rate-flag is greater than zero but
                     ; less than %xFFFF0000, packets are variable
                     ; rate, and rate is determined by rate octet
                     ; in each packet -- to determine the size of
                     ; a packet, map the first octet (the rate
                     ; octet) to the size of the rest of the
                     ; packet, according to the rate-map-table
                     ; information found elsewhere in this file
        
                     ; if var-rate-flag is greater than zero but
                     ; less than %xFFFF0000, packets are variable
                     ; rate, and rate is determined by rate octet
                     ; in each packet -- to determine the size of
                     ; a packet, map the first octet (the rate
                     ; octet) to the size of the rest of the
                     ; packet, according to the rate-map-table
                     ; information found elsewhere in this file
        

; values %xFFFF0001 and higher are reserved ; for use in future versions of this format

; 保留%xFFFF0001及更高的值;用于此格式的未来版本

size-in-packets = UINT32 ; this is the total number of packets in the ; data chunk in the file

数据包大小=UINT32;这是数据包中的数据包总数;文件中的数据块

label = 48OCTET ; label is for generic storage for ; application use

标签=48八位字节;标签用于一般储存;应用程序使用

   step-size       = UINT32
                     ; difference in the times of sequential
                     ; application stored in this chunk, in
                     ; 100ms increments (step-size of 10 means
                     ; 1 second)
        
   step-size       = UINT32
                     ; difference in the times of sequential
                     ; application stored in this chunk, in
                     ; 100ms increments (step-size of 10 means
                     ; 1 second)
        
                     ; currently only a step-size of "10" is
                     ; guaranteed to be supported by software
                     ; capable of reading this file format
        
                     ; currently only a step-size of "10" is
                     ; guaranteed to be supported by software
                     ; capable of reading this file format
        
   num-offsets     = UINT32
                     ; number of offsets in offs chunk -- must
                     ; equal number of repetitions of offset
                     ; element
        
   num-offsets     = UINT32
                     ; number of offsets in offs chunk -- must
                     ; equal number of repetitions of offset
                     ; element
        
   offset          = UINT32
                     ; absolute octet offset in this QCP file
                     ; where the beginning of the packet that is
                     ; at a time index one step past the last
                     ; offset is located -- step size is given
                     ; in step-size
        
   offset          = UINT32
                     ; absolute octet offset in this QCP file
                     ; where the beginning of the packet that is
                     ; at a time index one step past the last
                     ; offset is located -- step size is given
                     ; in step-size
        
   packet          = [rate-octet] (1*OCTET)
                     ; the rate-octet element is present only if
                     ; the var-rate-flag found elsewhere in the file
                     ; indicates that the file contains
                     ; variable-rate packets - if it is present, the
                     ; octet is used to determine the size of the
                     ; remainder of the packet (the number of octets
                     ; which follow the rate-octet)
        
   packet          = [rate-octet] (1*OCTET)
                     ; the rate-octet element is present only if
                     ; the var-rate-flag found elsewhere in the file
                     ; indicates that the file contains
                     ; variable-rate packets - if it is present, the
                     ; octet is used to determine the size of the
                     ; remainder of the packet (the number of octets
                     ; which follow the rate-octet)
        
                     ; No rate-octet is present if the var-rate-flag
                     ; is set to zero, indicating a fixed size
                     ; packet file - in this case, the number of
                     ; octets in packet is equal to the value set
                     ; in packet-size, found elsewhere in this
                     ; file format
        
                     ; No rate-octet is present if the var-rate-flag
                     ; is set to zero, indicating a fixed size
                     ; packet file - in this case, the number of
                     ; octets in packet is equal to the value set
                     ; in packet-size, found elsewhere in this
                     ; file format
        
                     ; It should be noted that there is always a
                     ; codec rate octet in a packet, even if the
                     ; var-rate-flag is zero, indicating fixed size
                     ; packet files - in this case, although there
                     ; is no rate-octet element in this syntax, the
                     ; first octet in the packet is still considered
        
                     ; It should be noted that there is always a
                     ; codec rate octet in a packet, even if the
                     ; var-rate-flag is zero, indicating fixed size
                     ; packet files - in this case, although there
                     ; is no rate-octet element in this syntax, the
                     ; first octet in the packet is still considered
        

; the "rate" for the packet.

; 数据包的“速率”。

; Two examples follow to illustrate this.

; 下面有两个例子来说明这一点。

                     ; Example 1.  Variable-rate QCELP
                     ; var-rate-flag = %d1
                     ; variable-rate = %d5 %d34 %d4 %d16 %d3 %d7 %d2
                     ;                 %d3 %d1 %d0 %d0 3(%d0 %d0)
                     ; packet        = %d4 (34OCTET)
                     ; packet        = %d4 (34OCTET)
                     ; packet        = %d3 (16OCTET)
                     ; packet        = %d1 (3OCTET)
        
                     ; Example 1.  Variable-rate QCELP
                     ; var-rate-flag = %d1
                     ; variable-rate = %d5 %d34 %d4 %d16 %d3 %d7 %d2
                     ;                 %d3 %d1 %d0 %d0 3(%d0 %d0)
                     ; packet        = %d4 (34OCTET)
                     ; packet        = %d4 (34OCTET)
                     ; packet        = %d3 (16OCTET)
                     ; packet        = %d1 (3OCTET)
        
                     ; Example 2.  Fixed-rate, full-rate QCELP
                     ; var-rate-flag = %d0
                     ; packet-size   = %d35
                     ; packet        = (35OCTET)  ; first octet is %d4
                     ; packet        = (35OCTET)  ; first octet is %d4
                     ; packet        = (35OCTET)  ; first octet is %d4
                     ; packet        = (35OCTET)  ; first octet is %d4
        
                     ; Example 2.  Fixed-rate, full-rate QCELP
                     ; var-rate-flag = %d0
                     ; packet-size   = %d35
                     ; packet        = (35OCTET)  ; first octet is %d4
                     ; packet        = (35OCTET)  ; first octet is %d4
                     ; packet        = (35OCTET)  ; first octet is %d4
                     ; packet        = (35OCTET)  ; first octet is %d4
        
   pad             = %x00
                     ; pad is present only if the number of bytes in
                     ; the chunk described by the rule containing
                     ; pad would otherwise be odd - if present, its
                     ; size should NOT be included in the
                     ; calculation for any chunk-size element also
                     ; present in the chunk
        
   pad             = %x00
                     ; pad is present only if the number of bytes in
                     ; the chunk described by the rule containing
                     ; pad would otherwise be odd - if present, its
                     ; size should NOT be included in the
                     ; calculation for any chunk-size element also
                     ; present in the chunk
        

config = UINT16 ; config is a bitmapped configuration word, ; for application use

config=UINT16;config是一个位图配置字;供应用

   string          = *(%x01-FF) %x00
                     ; this is a zero-terminated string of octets --
                     ; although not limited to it, typically the
                     ; string consists of us-ascii characters
        
   string          = *(%x01-FF) %x00
                     ; this is a zero-terminated string of octets --
                     ; although not limited to it, typically the
                     ; string consists of us-ascii characters
        

codec-guid = UINT32 UINT16 UINT16 8OCTET ; this is the unique identifier for the codec ; used to encode the packets in the data chunk

编解码器guid=UINT32 UINT16 UINT16 8八位字节;这是编解码器的唯一标识符;用于对数据块中的数据包进行编码

                     ; The elements of this rule match the structure
                     ; defined for a GUID in other specifications
                     ; and formats.  The first three elements are
                     ; stored in little-endian octet order.
                     ; When values for a GUID are expressed, the
                     ; first three elements are expressed as a
        
                     ; The elements of this rule match the structure
                     ; defined for a GUID in other specifications
                     ; and formats.  The first three elements are
                     ; stored in little-endian octet order.
                     ; When values for a GUID are expressed, the
                     ; first three elements are expressed as a
        
                     ; sequence of hexadecimal digits in normal
                     ; network ordering (big-endian or most
                     ; significant digit first) while the eight
                     ; octet element is broken up into two groups,
                     ; the first having four hexadecimal digits,
                     ; and the second having twelve digits, all
                     ; expressed in network ordering.
        
                     ; sequence of hexadecimal digits in normal
                     ; network ordering (big-endian or most
                     ; significant digit first) while the eight
                     ; octet element is broken up into two groups,
                     ; the first having four hexadecimal digits,
                     ; and the second having twelve digits, all
                     ; expressed in network ordering.
        
                     ; For example, if the octets in a GUID as
                     ; stored in a file are:
                     ;   %12 %34 %56 %78 %9A %BC %DE %F0
                     ;   %0F %ED %CB %A9 %87 %65 %43 %21
                     ; then the GUID would have these values:
                     ;   UINT32 = %x78563412
                     ;   UINT16 = %xBC9A
                     ;   UINT16 = %xF0DE
                     ;   8OCTET = %x0F.ED.CB.A9.87.65.43.21
                     ; and the whole GUID would be expressed as:
                     ;   {78563412-BC9A-F0DE-0FED-CBA987654321}
        
                     ; For example, if the octets in a GUID as
                     ; stored in a file are:
                     ;   %12 %34 %56 %78 %9A %BC %DE %F0
                     ;   %0F %ED %CB %A9 %87 %65 %43 %21
                     ; then the GUID would have these values:
                     ;   UINT32 = %x78563412
                     ;   UINT16 = %xBC9A
                     ;   UINT16 = %xF0DE
                     ;   8OCTET = %x0F.ED.CB.A9.87.65.43.21
                     ; and the whole GUID would be expressed as:
                     ;   {78563412-BC9A-F0DE-0FED-CBA987654321}
        
                     ; The following codec GUIDs are currently
                     ; defined for QCP file format:
                     ;
                     ; QCELP-13K:
                     ;   {5E7F6D41-B115-11D0-BA91-00805FB4B97E}
                     ;   {5E7F6D42-B115-11D0-BA91-00805FB4B97E}
                     ; EVRC:
                     ;   {E689D48D-9076-46B5-91EF-736A5100CEB4}
                     ; SMV:
                     ;   {8D7C2B75-A797-ED49-985E-D53C8CC75F84}
        
                     ; The following codec GUIDs are currently
                     ; defined for QCP file format:
                     ;
                     ; QCELP-13K:
                     ;   {5E7F6D41-B115-11D0-BA91-00805FB4B97E}
                     ;   {5E7F6D42-B115-11D0-BA91-00805FB4B97E}
                     ; EVRC:
                     ;   {E689D48D-9076-46B5-91EF-736A5100CEB4}
                     ; SMV:
                     ;   {8D7C2B75-A797-ED49-985E-D53C8CC75F84}
        

codec-version = UINT16 ; version number of codec used to encode the ; packets in the data chunk

编解码器版本=UINT16;用于对数据进行编码的编解码器的版本号;数据块中的数据包

                     ; This value depends on the particular codec
                     ; used to encode the packets.  The following
                     ; versions are currently defined:
        
                     ; This value depends on the particular codec
                     ; used to encode the packets.  The following
                     ; versions are currently defined:
        
                     ; QCELP-13K:
                     ;   1 or 2
                     ; EVRC, and SMV:
                     ;   1
        
                     ; QCELP-13K:
                     ;   1 or 2
                     ; EVRC, and SMV:
                     ;   1
        

codec-name = 80OCTET ; the proper name of the codec, in us-ascii - ; unused octets after the name are set to zero

编解码器名称=80八位字节;编解码器的专有名称,单位为美国ascii-;名称后未使用的八位字节设置为零

average-bps = UINT16 ; average data rate, in bits per second, of ; the speech data represented in this file

平均bps=UINT16;的平均数据速率(以位/秒为单位);此文件中表示的语音数据

packet-size = UINT16 ; the size in octets of the largest possible ; packet in the data chunk

数据包大小=UINT16;最大可能值的大小(以八位字节为单位);数据块中的数据包

block-size = UINT16 ; the number of samples encoded in every packet ; in the data chunk

块大小=UINT16;每个包中编码的样本数;在数据块中

sampling-rate = UINT16 ; number of speech samples per second ; (typically 8000)

抽样率=UINT16;每秒的语音样本数;(通常为8000)

sample-size = UINT16 ; number of bits per speech sample ; (typically 16)

样本量=UINT16;每个语音样本的位数;(通常为16)

   variable-rate   = num-rates rate-map-table
                     ; if num-rates is zero, and major version
                     ; number of the QCP file is 2, then the
                     ; rate-map-table is not used - instead,
                     ; it is up to the decoder to determine the
                     ; sizes of packets in the data chunk, even
                     ; if var-rate-flag indicates the file uses
                     ; variable rate packets
        
   variable-rate   = num-rates rate-map-table
                     ; if num-rates is zero, and major version
                     ; number of the QCP file is 2, then the
                     ; rate-map-table is not used - instead,
                     ; it is up to the decoder to determine the
                     ; sizes of packets in the data chunk, even
                     ; if var-rate-flag indicates the file uses
                     ; variable rate packets
        
                     ; otherwise, num-rates specifies how many
                     ; different possible rate octets there are
                     ; for the packets in the data chunk, and
                     ; thus how many of the rate-map-entry elements
                     ; contain valid information
        
                     ; otherwise, num-rates specifies how many
                     ; different possible rate octets there are
                     ; for the packets in the data chunk, and
                     ; thus how many of the rate-map-entry elements
                     ; contain valid information
        

num-rates = UINT32 ; this is the number of possible rate octets ; used in the packets in the data chunk

num rates=UINT32;这是可能的速率八位字节数;在数据块中的数据包中使用

rate-map-table = 8rate-map-entry ; any unused entries SHOULD be filled with ; %d0 %d0

费率映射表=8费率映射条目;任何未使用的条目都应填写;%d0%d0

   rate-map-entry  = rate-size rate-octet
                     ; this maps a possible rate octet for a packet
                     ; to the size of the rest of the packet having
                     ; that value for the rate octet
        
   rate-map-entry  = rate-size rate-octet
                     ; this maps a possible rate octet for a packet
                     ; to the size of the rest of the packet having
                     ; that value for the rate octet
        

rate-size = OCTET ; this is the size of a packet, excluding the ; value for the rate octet

速率大小=八位字节;这是数据包的大小,不包括;速率八位字节的值

   rate-octet      = OCTET
                     ; this is the first octet of a packet in the
                     ; data chunk, when the var-rate-flag set for
                     ; the file indicates the file is variable rate
        
   rate-octet      = OCTET
                     ; this is the first octet of a packet in the
                     ; data chunk, when the var-rate-flag set for
                     ; the file indicates the file is variable rate
        
   UINT32          = 4OCTET
                     ; this field contains a 32-bit integer stored
                     ; as a sequence of four octets, in
                     ; little-endian order (least significant
                     ; octet first)
        
   UINT32          = 4OCTET
                     ; this field contains a 32-bit integer stored
                     ; as a sequence of four octets, in
                     ; little-endian order (least significant
                     ; octet first)
        
   UINT16          = 2OCTET
                     ; this field contains a 16-bit integer stored
                     ; as a sequence of two octets, in
                     ; little-endian order (least significant
                     ; octet first)
        
   UINT16          = 2OCTET
                     ; this field contains a 16-bit integer stored
                     ; as a sequence of two octets, in
                     ; little-endian order (least significant
                     ; octet first)
        
   OCTET           = %x00-FF
                     ; an octet, also called a byte - any possible
                     ; combination of eight bits, forming a single
                     ; integer or part of a larger integer having
                     ; more than eight bits
        
   OCTET           = %x00-FF
                     ; an octet, also called a byte - any possible
                     ; combination of eight bits, forming a single
                     ; integer or part of a larger integer having
                     ; more than eight bits
        
   RIFF            = %x52 %x49 %x46 %x46
        
   RIFF            = %x52 %x49 %x46 %x46
        
   QLCM            = %x51 %x4C %x43 %x4D
        
   QLCM            = %x51 %x4C %x43 %x4D
        
   FMT             = %x66 %x6D %x74 %x20
        
   FMT             = %x66 %x6D %x74 %x20
        
   LABL            = %x6C %x61 %x62 %x6C
        
   LABL            = %x6C %x61 %x62 %x6C
        
   OFFS            = %x6F %x66 %x66 %x73
        
   OFFS            = %x6F %x66 %x66 %x73
        
   DATA            = %x64 %x61 %x74 %x61
        
   DATA            = %x64 %x61 %x74 %x61
        
   CNFG            = %x63 %x6E %x66 %x67
        
   CNFG            = %x63 %x6E %x66 %x67
        
   TEXT            = %x74 %x65 %x78 %x74
        
   TEXT            = %x74 %x65 %x78 %x74
        
4. IANA Considerations
4. IANA考虑

IANA has updated the audio/qcelp and audio/vnd.qcelp registrations and has added the audio/evrc-qcp and audio/smv-qcp registrations as specified here.

IANA已更新音频/qcelp和音频/vnd.qcelp注册,并已添加此处指定的音频/evrc qcp和音频/smv qcp注册。

4.1. Update of Media Type Audio/qcelp
4.1. 更新媒体类型音频/qcelp

The audio/qcelp media registration has been updated to indicate that this specification is to be used for storage.

音频/qcelp媒体注册已更新,表明此规范将用于存储。

4.2. Update of Media Type Audio/vnd.qcelp
4.2. 更新媒体类型Audio/vnd.qcelp

The audio/vnd.qcelp media registration has been updated to indicate that use of this media type is deprecated and to note that the media type audio/qcelp should be used instead.

audio/vnd.qcelp媒体注册已更新,以表明不推荐使用此媒体类型,并注意应改用媒体类型audio/qcelp。

4.3. Registration of Audio/EVRC-QCP
4.3. 注册音频/EVRC-QCP

Media Type Name: audio

媒体类型名称:音频

Media Subtype Name: evrc-qcp

媒体子类型名称:evrc qcp

Required Parameter: none

必需参数:无

Optional parameters: none

可选参数:无

Encoding considerations: The storage format specified in this document may be used with any transport mechanism.

编码注意事项:本文档中指定的存储格式可用于任何传输机制。

Security considerations: See Section 5 "Security Considerations" of this document.

安全注意事项:见本文件第5节“安全注意事项”。

Public specification: this document

公共规范:本文件

Additional information: no

补充资料:没有

Magic number: First four octets: RIFF Octets 9-12: QLCM

幻数:前四个八位组:RIFF八位组9-12:QLCM

(Note: octets 5-8 constitute the riff-size field, which is the size of the file minus the RIFF header. Since this could be anything, it is not fixed and thus can not be used as part of the magic number.)

(注意:八位字节5-8构成riff大小字段,即文件大小减去riff头。由于这可以是任何内容,因此它不是固定的,因此不能用作幻数的一部分。)

File extensions: qcp, QCP Macintosh file type code: none Object identifier or OID: none

文件扩展名:qcp,qcp Macintosh文件类型代码:无对象标识符或OID:无

Intended usage: COMMON. This file format is already in wide use in Internet email user agents, multimedia authoring and playing software, and cdma2000(r) handsets.

预期用途:普通。这种文件格式已经在Internet电子邮件用户代理、多媒体创作和播放软件以及cdma2000(r)手机中广泛使用。

Person & email address to contact for further information: Harinath Garudadri hgarudad@qualcomm.com

联系人和电子邮件地址,以获取更多信息:Harinath Garudadrihgarudad@qualcomm.com

Change controller: The IETF

更改控制器:IETF

4.4. Registration of Audio/SMV-QCP
4.4. 注册音频/SMV-QCP

Media Type Name: audio

媒体类型名称:音频

Media Subtype Name: smv-qcp

媒体子类型名称:smv qcp

Required Parameter: none

必需参数:无

Optional parameters: none

可选参数:无

Encoding considerations: The storage format specified in this document may be used with any transport mechanism.

编码注意事项:本文档中指定的存储格式可用于任何传输机制。

Security considerations: See Section 5 "Security Considerations" of this document.

安全注意事项:见本文件第5节“安全注意事项”。

Public specification: this document

公共规范:本文件

Additional information: no

补充资料:没有

Magic number: First four octets: RIFF Octets 9-12: QLCM

幻数:前四个八位组:RIFF八位组9-12:QLCM

(Note: octets 5-8 constitute the riff-size field, which is the size of the file minus the RIFF header. Since this could be anything, it is not fixed and thus can not be used as part of the magic number.)

(注意:八位字节5-8构成riff大小字段,即文件大小减去riff头。由于这可以是任何内容,因此它不是固定的,因此不能用作幻数的一部分。)

File extensions: qcp, QCP Macintosh file type code: none Object identifier or OID: none

文件扩展名:qcp,qcp Macintosh文件类型代码:无对象标识符或OID:无

Intended usage: COMMON. This file format is already in wide use in Internet email user agents, multimedia authoring and playing software, and cdma2000(r) handsets.

预期用途:普通。这种文件格式已经在Internet电子邮件用户代理、多媒体创作和播放软件以及cdma2000(r)手机中广泛使用。

Person & email address to contact for further information: Harinath Garudadri hgarudad@qualcomm.com

联系人和电子邮件地址,以获取更多信息:Harinath Garudadrihgarudad@qualcomm.com

Change controller: The IETF

更改控制器:IETF

5. Security Considerations
5. 安全考虑

This document specifies a file format only, not a streaming protocol payload format, nor a transfer method. As such, it introduces no security risks aside from those associated with any audio codec or media file format (for example, denial of service by transmitting a file larger than the receiver can handle). Note that those security concerns should be understood before using the file format specified here.

本文档仅指定文件格式,而不是流协议有效负载格式,也不是传输方法。因此,除了与任何音频编解码器或媒体文件格式相关的安全风险(例如,通过传输大于接收器可以处理的文件来拒绝服务)之外,它不会带来任何安全风险。请注意,在使用此处指定的文件格式之前,应了解这些安全问题。

6. Acknowledgements
6. 致谢

Richard Walters created the ABNF notation for this specification and proof-read the text, among other helpful tasks.

Richard Walters为本规范创建了ABNF符号,并对文本进行了校对,以及其他一些有用的任务。

The qcp file format was originally developed by others within Qualcomm. The editor would like to thank Chuck Han and Livingstone Song for their contributions leading to this specification.

qcp文件格式最初由高通公司内部的其他人开发。编辑要感谢Chuck Han和Livingstone Song对本规范的贡献。

7. References
7. 工具书类
7.1. Normative References
7.1. 规范性引用文件

[ABNF] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 2234, November 1997.

[ABNF]Crocker,D.,Ed.和P.Overell,“语法规范的扩充BNF:ABNF”,RFC 2234,1997年11月。

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

[关键词]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[QCELP] 3GPP2 C.S0020 "High Rate Speech Service Option 17 for Wideband Spread Spectrum Communications Systems".

[QCELP]3GPP2 C.S0020“宽带扩频通信系统的高速语音服务选项17”。

[EVRC] 3GPP2 C.S0014 "Enhanced Variable Rate Codec, Speech Service Option 3 for Wideband Spread Spectrum Digital Systems ". (Used to be TIA/EIA/IS-127)

[EVRC]3GPP2 C.S0014“用于宽带扩频数字系统的增强型变速率编解码器、语音服务选项3”。(以前是TIA/EIA/IS-127)

[PureVoice] McKay, K., "RTP Payload Format for PureVoice(tm) Audio", RFC 2658, August 1999.

[PureVoice]McKay,K.,“PureVoice(tm)音频的RTP有效载荷格式”,RFC 26581999年8月。

[SMV] 3GPP2 C.S0030 "Selectable Mode Vocoder, Service Option for Wideband Spread Spectrum Communication Systems".

[SMV]3GPP2 C.S0030“可选模式声码器,宽带扩频通信系统的服务选项”。

7.2. Informative References
7.2. 资料性引用

[EVRC-SMV] Li, A., "RTP Payload Format for Enhanced Variable Rate Codecs (EVRC) and Selectable Mode Vocoders (SMV)", RFC 3558, July 2003.

[EVRC-SMV]Li,A.“增强型变速率编解码器(EVRC)和可选模式声码器(SMV)的RTP有效载荷格式”,RFC 3558,2003年7月。

8. Intellectual Property Statement
8. 知识产权声明

The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification can be obtained from the IETF Secretariat.

IETF对可能声称与本文件所述技术的实施或使用有关的任何知识产权或其他权利的有效性或范围,或此类权利下的任何许可可能或可能不可用的程度,不采取任何立场;它也不表示它已作出任何努力来确定任何此类权利。有关IETF在标准跟踪和标准相关文件中权利的程序信息,请参见BCP-11。可从IETF秘书处获得可供发布的权利声明副本和任何许可证保证,或本规范实施者或用户试图获得使用此类专有权利的一般许可证或许可的结果。

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director.

IETF邀请任何相关方提请其注意任何版权、专利或专利申请,或其他可能涉及实施本标准所需技术的专有权利。请将信息发送给IETF执行董事。

9. Editors' Addresses
9. 编辑地址

Randall Gellens QUALCOMM Incorporated 5775 Morehouse Drive San Diego, CA 92121 USA

美国加利福尼亚州圣地亚哥Morehouse大道5775号兰德尔盖伦高通公司,邮编92121

   EMail: randy@qualcomm.com
        
   EMail: randy@qualcomm.com
        

Harinath Garudadri QUALCOMM Incorporated 5775 Morehouse Drive San Diego, CA 92121 USA

Harinath Garudadri高通公司美国加利福尼亚州圣地亚哥Morehouse大道5775号,邮编92121

   EMail: hgarudad@qualcomm.com
        
   EMail: hgarudad@qualcomm.com
        
10. Full Copyright Statement
10. 完整版权声明

Copyright (C) The Internet Society (2003). All Rights Reserved.

版权所有(C)互联网协会(2003年)。版权所有。

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

本文件及其译本可复制并提供给他人,对其进行评论或解释或协助其实施的衍生作品可全部或部分编制、复制、出版和分发,不受任何限制,前提是上述版权声明和本段包含在所有此类副本和衍生作品中。但是,不得以任何方式修改本文件本身,例如删除版权通知或对互联网协会或其他互联网组织的引用,除非出于制定互联网标准的需要,在这种情况下,必须遵循互联网标准过程中定义的版权程序,或根据需要将其翻译成英语以外的其他语言。

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assignees.

上述授予的有限许可是永久性的,互联网协会或其继承人或受让人不会撤销。

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS 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.

本文件和其中包含的信息是按“原样”提供的,互联网协会和互联网工程任务组否认所有明示或暗示的保证,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。

Acknowledgement

确认

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC编辑功能的资金目前由互联网协会提供。