EVRC在RTP中的靜荷格式rfc3558,4788,5188

1 EVRC

協議演進:3558->4788->5188

EVRC0淨荷格式見3558

EVRC-WB淨荷格式見5188

EVRC編解碼算法以鬆散碼激勵線性預測(RCELP)算法爲基礎,具有線性預性和差錯控制功能,EVRC家庭各種編碼見下圖:

 

 

2 多幀格式

    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       |

   |                             ....                              |

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

RRReserved,兩位保留位,暫未用;

LLL:交錯長度,爲0表示一種特殊的交錯幀,捆綁幀,即多幀之間的幀距爲0

NNN:交錯幀索引;

MMM:模式請求號說明;

CountTOC數量,例如取值爲c,則TOC數量則爲c+1

Padding:爲字節對齊而引入的填充位,顯然,TOC項如果爲爲奇數則不要填充位,爲偶數則需要;

TOC:表項,即幀類型,取值如下表各種速率,目前取值不在該表內的幀非法;

       0 1 2 3

      +-+-+-+-+

      |fr type|

      +-+-+-+-+

 

   Value   Rate      Total codec data frame size (in octets)

   ---------------------------------------------------------

     0     Blank      0    (0 bit)

     1     1/8        2    (16 bits)

     2     1/4        5    (40 bits; not valid for EVRC) //3558定義沒有,但後面的協議已經支持

     3     1/2       10    (80 bits)

     4     1         22    (171 bits; 5 padded at end with zeros)

     5     Erasure    0    (SHOULD NOT be transmitted by sender)

 

3 單幀淨荷不帶頭域格式

 

    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            +-+-+-+-+-+-+-+-+

   |                                               |

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

通過淨荷的長度在區分是哪個模式

 

4 多幀複用類型

a. 交錯幀Interleaving

Count>0Count+1幀複用

LLL=L,每兩個幀間隔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

按協議裏的說明,使用交錯幀可以把降低數據丟失的比率,但如果有丟包,聲音質量呈指數下降,質量下降可以理解,但爲什麼可以降低數據丟失的比率,根據從何而來?//待解惑

 

b. 捆綁幀

Count=0,同交錯幀,只是多幀中幀間間隔爲0

 

 

5 信令協商內容

m=audio 49120 RTP/AVP 97

a=rtpmap:97 EVRC1/8000

a=fmtp:97 fixedrate=0.5 //可選

a=maxptime:120  //可選,多幀複用的幀數折算成打包時長必須小於maxptime的值

 

fmtp可帶的屬性:

maxinterleave,最大交錯幀數;

dtxmaxdtxminsilencesupphangover等用於靜音抑制,見3551,3558

 

 

 

發佈了39 篇原創文章 · 獲贊 9 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章