📄 rfc741.txt
字号:
Following is the definition for the format of the SIMPLE-SIMPLE
coding, according to Tables-Set-#1:
For each parcel:
PITCH 6 bits (PITCH=0 for UNVOICED)
GAIN 5 bits
I(1) 7 bits
I(2) 7 bits
I(3) 6 bits
I(4) 6 bits
I(5) 5 bits
I(6) 5 bits
I(7) 5 bits
I(8) 5 bits
I(9) 5 bits
I(10) 5 bits
where each of the I(j) is an index for inverse sine coding. If
K(j)=arcsin(Theta(j)) and N bits are assigned for its transmission,
then I(j)=(Theta(j)/Pi)*2**N.
Hence at each transmission interval (128 samples times 150
microseconds) 67 bits are sent, which results in a data rate of 3490
bps. Since this bandwidth is well within the capabilities of the
network, SIMPLE-SIMPLE coding is used, which requires the least
computation by the hosts. Note that this data rate is a peak rate,
without the use of silence.
Cohen [Page 14]
NWG/RFC 741 DC 22 Nov 77 42444
Specifications for the Network Voice Protocol (NVP)
4. EXAMPLES FOR THE CONTROL PROTOCOL
Here is an example for a connection:
(377) C: 1,<WHO>,<WHOM>,340 Please talk to me on 340/341.
(340) A: 2,1 I refuse, since I'm busy.
Another example:
(377) C: 1,<WHO>,<WHOM>,360 Please talk to me on 360/361.
(360) A: 6,350 OK. You talk to me on 350/351.
(350) C: 1,<WHO>,<WHOM> I want to talk to you.
(360) A: 3,1,1,2 Can you do CVSD? (ANSWERER tries
to be the NEGOTIATION MASTER)
(350) C: 12,1 I want to be it.
(360) A: 13,1 That's OK with me.
(350) C: 3,1,1,2 Can you do CVSD?
(360) A: 5,1,1 No, but I can do LPC.
(350) C: 3,1,1,3 Can you do RELP?
(360) A: 5,1,1 No, but I can do LPC.
(350) C: 3,1,1,1 How about LPC?
(360) A: 4,1,1 LPC is fine with me.
(350) C: 3,2,1,150 Can you use 150 microseconds
sampling?
(360) A: 4,2,150 I can use 150 microseconds.
(350) C: 3,4,3,976,1040,2016 Can you use 976, 1040, or 2016
bits/msg?
(360) A: 4,4,976 I can use 976.
(350) C: 3,5,1,10 Can you send 10 coefficients?
(360) A: 4,5,10 I can send 10.
Cohen [Page 15]
NWG/RFC 741 DC 22 Nov 77 42444
Specifications for the Network Voice Protocol (NVP)
(350) C: 3,6,1,64 Can you use a 64 sample
transmission?
(360) A: 4,6,64 I can use 64.
(350) C: 3,7,2,1,2 SIMPLE or OPTIMIZED acoustic
coding?
(360) A: 4,7,2 OPTIMIZED!
(350) C: 3,8,1,1 Can you do SIMPLE info coding?
(360) A: 4,8,1 I can do SIMPLE.
(350) C: 3,9,1,58 mu = 0.90625?
(360) A: 4,9,58 Fine with me.
(350) C: 3,10,1 Table set #1?
(360) A: 4,10,1 Of course!
(350) C: 6 I am ready. (Note: No "RINGING"
sent)
(350) C: 8 And you?
(360) A: 6 I am ready, too.
....... Data is exchanged now,
....... on 351 and 361.
(350) C: 10,1234 Echo it, please.
(360) A: 11,1234 Here it comes!
.......
(360) A: 10,3333 Now ANSWERER wants to measure
(350) C: 11,3333 ...the delays, too.
.......
(???) X: 2,3 Termination by either user.
Cohen [Page 16]
NWG/RFC 741 DC 22 Nov 77 42444
Specifications for the Network Voice Protocol (NVP)
Another example:
(377) C: 1,<WHO>,<WHOM>,360 Please talk to me on 360/361.
(360) A: 6,340 Fine. You send on 340/341.
(340) C: 1,<WHO>,<WHOM> I want to talk to you.
(360) A: 3,3,1,1 Can you use V1?
(340) C: 4,3,1 Yes, V1 is OK.
(360) A: 3,4,1,1984 Can you use up to 1984 bits/msg?
(340) C: 5,4,976 No, but I can use 976.
(360) A: 3,4,1,976 Can you use up to 976 bits/msg?
(340) C: 4,4,976 I can use 976.
(360) A: 9 Ringing (note how short this
negotiation is!!).
.......
(340) C: 8 Still there?
(360) A: 9 Still ringing.
.......
(340) C: 8 Still there?
(360) A: 9 Still ringing.
.......
(340) C: 8 How about it?
(360) A: 9 Still ringing.
(340) C: 2 Forget it! (No reason given.)
Cohen [Page 17]
NWG/RFC 741 DC 22 Nov 77 42444
Specifications for the Network Voice Protocol (NVP)
APPENDIX 1
THE DEFINITION OF:
TABLES-SET-#1
by
John D. Markel
Speech Communication Research Laboratory
Santa Barbara, California
Cohen [Page 18]
NWG/RFC 741 DC 22 Nov 77 42444
Specifications for the Network Voice Protocol (NVP)
TABLES-SET-#1
This set includes tables for:
PITCH - 64 values, PITCH table
GAIN - 32 values, GAIN table
I( 1) - 128 values, INDEX7 table
I( 2) - 128 values, INDEX7 table
I( 3) - 64 values, INDEX6 table
I( 4) - 64 values, INDEX6 table
I( 5) - 32 values, INDEX5 table
I( 6) - 32 values, INDEX5 table
I( 7) - 32 values, INDEX5 table
I( 8) - 32 values, INDEX5 table
I( 9) - 32 values, INDEX5 table
I(10) - 32 values, INDEX5 table
These tables are defined specifically for a sampling period of 150
microseconds.
Cohen [Page 19]
NWG/RFC 741 DC 22 Nov 77 42444
Specifications for the Network Voice Protocol (NVP)
GENERAL COMMENTS
The following tables are arranged in three columns, {X(j)}, {j},
and {R(j)}. Note that the entries in the {X(j)} column are half a
step off the other columns. This is to indicate that INTERVALS
from X-domain (pitch, gain, and the Ks) are mapped into CODES {j},
which are transmitted over the network, to be translated by the
receiver into the {R(j)}. These intervals are defined as
OPEN-CLOSE intervals. For example, the PITCH value (at the
transmitter) of 4131 belongs to the interval "(4024,4131]", hence
it is coded as j=6 which is mapped by the receiver to the value
21. Similarly, the value of 2400 for INDEX7 is found to belong to
the interval "(2009,2811]", coded into the CODE 3 and mapped back
into 2411.
Note that if N bits are used by a certain CODE, then there are
2**N+1 entries in the X-table, but only 2**N entries in the
R-table.
The transformation values used for PITCH, GAIN, and the
K-parameters (in the X- and R-tables) are as defined in NSC Note
42.
Values above and below the range of the X-table are mapped into
the maximum and minimum table indices, respectively.
Note that R(J) of INDEX5 is identical to R(2J) of INDEX6, and that
R(J) of INDEX6 is identical to R(2J) of INDEX7. Therefore, it is
possible to store only the R-table of INDEX7, without the R-tables
of INDEX5 and INDEX6.
In the SPS-41 implementation there is no need to store any R-table
for the K-parameters. The transmitted index can be used directly
(with the appropriate scaling) as an index into the SPS built-in
TRIG tables.
COMMENTS ON THE PITCH TABLE
The level J=0 defines the UNVOICED condition. The receiver maps it
into the number of samples per frame (here 128).
This PITCH table differs significantly from previous tables and
supersedes the table published in NSC Note 36. Details of the
calculation of the table can be found in NSC Note 42. Immediate
questions should be referred to John Markel.
Cohen [Page 20]
NWG/RFC 741 DC 22 Nov 77 42444
Specifications for the Network Voice Protocol (NVP)
COMMENTS ON THE GAIN TABLE
The level J=0 defines absolute silence.
This table is designed for a maximum of 12-bit A/D input, and
allows for a dynamic range of 43.5 dB.
NSC Notes 36, 45, 56 and 58 supply background for the GAIN table.
Gain is the energy of the pre-emphasized, windowed signal.
This table is the NEW GAIN table. NSC Notes 56 and 58 explain the
reasoning behind the NEW GAIN.
COMMENTS ON THE INDEX7 TABLE
Positive values are coded into the range [0-63, decimal]. Negative
values are coded into the 7-bits two's complement of the codes of
their absolute value [65-127, decimal].
Note that all values -403 < V < 403 are coded as (and mapped into)
0. Note also that the code -64 (100 octal) is never used.
In SPS-41 implementation, the R-table is not needed, since
TRIG(2J) is the needed value R(J).
COMMENTS ON THE INDEX6 TABLE
Positive values are coded into the range [0-31, decimal]. Negative
values are coded into the 6-bits two's complement of the codes of
their absolute values [33-63, decimal].
Note that all values -805 < V < 805 are coded as (and mapped into)
0. Note also that the code -32 (40 octal) is never used.
In SPS-41 implementation, the R-table is not needed, since
TRIG(4J) is the needed value R(J).
COMMENTS ON THE INDEX5 TABLE
Positive numbers are coded into the range [0-15, decimal].
Negative numbers are coded into the 5-bits two's complement of
their absolute values, i.e., [17-31, decimal].
Note that all values -1609 < V < 1609 are coded as (and mapped
into) 0. Note also that the code -16 (20 octal) is never used.
In SPS-41 implementation, the R-table is not needed, since
TRIG(8J) is the needed value R(J).
Cohen [Page 21]
NWG/RFC 741 DC 22 Nov 77 42444
Specifications for the Network Voice Protocol (NVP)
THE PITCH TABLE (as of 10-29-74)
X(J) J R(J) X(J) J R(J) X(J) J R(J)
0 6002 10770
0 128* 21 33 42 61
0 6168 11080
1 18 22 34 43 63
3630 6338 11399
2 19 23 35 44 65
3724 6515 11728
3 19 24 36 45 67
3821 6696 12067
4 20 25 37 46 69
3921 6883 12417
5 20 26 38 47 71
4024 7075 12776
6 21 27 39 48 73
4131 7274 13147
7 22 28 40 49 75
4240 7478 13529
8 22 29 41 50 77
4353 7689 13922
9 23 30 43 51 80
4469 7905 14327
10 24 31 44 52 82
4588 8129 14745
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -