语音编码发送方法和装置的制造方法_3

文档序号:9846547阅读:来源:国知局
要分组中的丢包数不超过M个,就可以完全恢复数据包。因此要求MaX_lost〈 = M/(N+M),只有丢包率小于最大能容忍的丢包率,才可能恢复丢包。
[0066]如图8所示,在一个实施例中,根据综合网络状况信息调整QoS参数的步骤,包括:
[0067]步骤802,获取最大网络抖动和最大网络延迟。
[0068]本实施例中,由于计算得到的网络抖动和网络延迟是最近预设时间内的综合网络抖动和网络延迟,可以获取统计得到的多个综合网络抖动和网络延迟中的最大网络抖动和最大网络延迟,最大网络抖动和最大网络延迟能够反映出最差网络情况,因此使用最大网络抖动和最大网络延迟参与计算可以得到更好的结果。
[0069]步骤804,根据最大网络抖动和最大网络延迟判断网络可用带宽是否足够,若否,则降低编码码率和调整组帧数目。
[0070]本实施例中,可预先设置网络抖动阈值和网络延迟阈值,网络抖动阈值是发送带宽超过网络最大带宽情况下的网络抖动,网络延迟阈值是发送带宽超过网络最大带宽情况下的网络延迟。当最大网络抖动大于网络抖动阈值且最大网络延迟大于网络延迟阈值,则表明当前网络可用带宽不足。可以通过降低编码码率和组帧数目使得网络可用带宽足够。
[0071]进一步的,在一个实施例中,如图9所述,根据综合网络状况信息降低编码码率和组帧数目的具体过程包括:
[0072]步骤902,获取最大网络抖动和最大网络延迟。
[0073]步骤904,根据最大网络抖动和最大网络延迟判断网络可用带宽是否足够,若是,则进入步骤906,否则进入步骤908。
[0074]本实施例中,设置发送带宽超过网络最大带宽情况下的网络抖动为网络抖动阈值,设置发送带宽超过网络最大带宽情况下的网络延迟为网络延迟阈值。当最大网络抖动大于网络抖动阈值且最大网络延迟大于网络延迟阈值,则表明当前网络可用带宽不足。
[0075]步骤906,不降低编码码率和调整组帧数目。
[0076]如果当前网络可用带宽足够,则不需要降低编码码率和组帧数目。
[0077]步骤908,获取当前网络类型。
[0078]本实施例中,网络类型包括局域网和无线移动网络,局域网包括有线网络和无线网络,优选为无线局域网,比如W1-Fi网络。不同的网络类型其调整OoS参数的策略将有所不同。
[0079]步骤910,判断当前网络类型是否为局域网还是无线移动网络,若是局域网,则进入步骤912,若是无线移动网络,则进入步骤914。
[0080]步骤912,调整组帧数目为I,并按照预设幅度逐步降低编码码率,直到网络可用带宽足够。
[0081 ] 本实施例中,如果当前网络类型是局域网,比如当前网络是W1-Fi网络,如果在W1-Fi 网络下的网络带宽不足,则只需要降低编码码率,不进行组帧 ,即组帧数目为I。其中 ,组帧数目控制多少音频帧作为一个网络包发送,组帧数目越大,网络带宽利用率越高。进一步的,可按照预设幅度逐步降低编码码率,比如预设幅度系数可为0.1,直到根据反馈的最大网络抖动和最大网络延迟判断到网络可用带宽足够。通过降低的编码码率可实时控制编码器的输出比特率,从而使得网络可用带宽逐渐足够。
[0082]步骤914,调整组帧数目为小于等于3的整数。
[0083]本实施例中,如果当前网络类型不是W1-Fi网络,比如可能是2G、3G和4G等无线移动网络,则需要优先组帧。具体的,组帧数目可为小于等于3的整数。优选的,在2G移动网络下组帧数目可调整为3,在其它移动网络下组帧数目可调整为2。
[0084]步骤916,根据调整后的组帧数目判断网络可用带宽是否足够,若是,则结束,否则进入步骤918。
[0085]步骤918,按照预设幅度降低编码码率,直到网络可用带宽足够。
[0086]本实施例中,组帧后如果网络可用带宽仍然不足,则需要降低编码码率。具体的,可按照预设幅度逐步降低编码码率,比如预设幅度系数可为0.1,直到根据反馈的最大网络抖动和最大网络延迟判断到网络可用带宽足够。通过降低的编码码率可实时控制编码器的输出比特率,从而使得网络可用带宽逐渐足够。
[0087]如上所述,根据调整后的QoS参数,使用编码码率可实时控制编码器的输出比特率,组帧数目可以控制多少音频帧作为一个网络包发送,组帧数目越大,网络带宽利用率越高,可以降低各种包头占用的带宽,同时丢包的影响会增大,延迟也会增大。进一步的,根据分组长度N和冗余包数M,确定是否需要发冗余包,如果M〈 = 0,则不需要发冗余包,否则每N个数据包,则根据冗余包数的计算方法,产生M个冗余包并发送。
[0088]本发明实施例根据接收方反馈的网络状况来调整Qos参数,通过调整后的Qos参数来对语音进行编码发送,这种自适应调整的方法能够改善语音质量。
[0089]如图10所示,在一个实施例中,提供了一种语音编码发送装置,该装置包括接收模块1002、解析模块1004、统计模块1006和调整模块1008,其中:
[0090 ]接收模块1002用于接收至少一路的RTCP包。
[0091]解析模块1004用于解析RTCP包,得到网络状况信息。
[0092]统计模块1006用于根据网络状况信息统计得到综合网络状况信息。
[0093]调整模块1008用于根据综合网络状况信息调整QoS参数,并根据调整后的QoS参数进行语音编码发送。
[0094]在一个实施例中,综合网络状况信息包括丢包率、网络延迟和网络抖动中的至少一种。
[0095]在一个实施例中,如图11所示,调整模块1008包括分组调整模块1018、冗余调整模块1028、编码组帧调整模块1038,其中:
[0096]分组调整模块1018,用于获取最大网络抖动,判断最大网络抖动是否超过网络抖动阈值,若是,则调整数据包的分组长度。
[0097]优选的,所述分组长度为3?5。
[0098]冗余调整模块1028,用于获取最大丢包率,根据最大丢包率和分组长度,计算得到每个分组的冗余包数,其中,最大丢包率小于等于每个分组的冗余包数与每个分组的冗余包数和分组长度的和的比值。
[0099]编码组帧调整模块1038,用于获取最大网络抖动和最大网络延迟,根据最大网络抖动和最大网络延迟判断网络可用带宽是否足够,若否,则降低编码码率和调整组帧数目。
[0100]进一步的,编码组帧调整模块1038用于获取当前网络类型;若当前网络类型为局域网,则调整组帧数目为I,并按照预设幅度逐步降低编码码率,直到网络可用带宽足够。
[0101]编码组帧调整模块1038还用于获取当前网络类型,若当前网络类型为无线移动网络,则调整组帧数目为小于等于3的整数,根据调整后的组帧数目判断网络可用带宽是否足够,若否,则进一步按照预设幅度逐步降低编码码率,直到网络可用带宽足够。
[0102]可以理解,在其它实施例中,调整模块1008可包含分组调整模块1018、冗余调整模块1028、编码组帧调整模块1038中的至少一个。
[0103]在一个实施例中,统计模块1006用于获取最近预设时间内接收到的网络状况信息,根据最近预设时间内获取到的网络状况信息统计得到综合网络状况信息。
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1