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

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值