1 EVRC
Protocol Evolution: 3558->4788->5188
EVRC0 net charge format see 3558
EVRC-WB net charge format see 5188
EVRC codec algorithm based on loose code excitation linear prediction (RCELP) algorithm, with linear pre-and error control functions, EVRC family of various codes see the following diagram:
2 Multi-frame format
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RTP Header [4] |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
| r| r| LLL | NNN | MMM | Count | TOC | ... | TOC |padding|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| One or more codec data frames, one per TOC entry |
| .... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Rr:reserved, two-bit reserved, temporarily unused;
LLL: Staggered length, 0 for a special staggered frame, bundle frame, that is, the frame spacing between the frames is 0;
NNN: Staggered frame index;
MMM: Description of the mode request number;
The number of COUNT:TOC, for example, C, the number of TOC is c+1
Padding: The fill bit that is introduced for byte alignment, it is obvious that if the TOC item is an odd number, do not fill the bit, and the even number is required;
TOC: Table entry, that is, the frame type, the following table is the value of the various rates, the current value is not within the frame of the table is illegal;
0 1 2 3
+-+-+-+-+
|FR type|
+-+-+-+-+
Value Rate Total Codec data frame size (in octets)
---------------------------------------------------------
0 Blank 0 (0 bit)
1 1/8 2 (BITS)
2 5 (valid; not EVRC)//3558 definition not, but the following protocol has been supported
3 (BITS)
4 1 (171 bits; 5 padded at end with zeros)
5 Erasure 0 (should not being transmitted by sender)
3 single Frame net charge does not take the lead field format
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RTP Header [4] |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
| |
+ Only one codec data frame +-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
By the length of the net charge in distinguishing which mode
4 Multi-frame multiplexing types
A. Staggered frame interleaving
Count>0,count+1 Frame multiplexing
Lll=l, every two frame interval l+1
First RTP Packet in Interleave Group:
Lll=l, nnn=0
Frame 0, Frame l+1, Frame 2 (l+1), Frame 3 (l+1), ... for a total of
B Frames
Second RTP Packet in Interleave Group:
Lll=l, Nnn=1
Frame 1, Frame 1+l+1, Frame 1+2 (l+1), Frame 1+3 (l+1), ... for a
Total of B Frames
As explained in the agreement, the use of staggered frames can reduce the rate of data loss, but if there are drops, sound quality is exponential decline, quality degradation can be understood, but why can reduce the data loss ratio, depending on where to come from. Faq
B. Bundle Frame
Count=0, with staggered frames, is only 0 frames in multi-frame intervals.
5 Letter of order negotiation content
M=audio 49120 RTP/AVP 97
a=rtpmap:97 evrc1/8000
a=fmtp:97 fixedrate=0.5//optional
a=maxptime:120//optional, multi-frame multiplexing frame number must be less than Maxptime value for package duration
FMTP properties that can be taken:
Maxinterleave, maximum staggered frame number;
Dtxmax,dtxmin,silencesupp,hangover for mute suppression, see 3551,3558;